---
title: Google App Engine
description: |-
  Google App Engine: Platform as a Service by Google.
  Monitor your app running in the cloud.
breadcrumbs: Docs > Integrations > Google App Engine
---

# Google App Engine

## Overview{% #overview %}

Install the Google App Engine integration in your project to:

- See your Google App Engine services metrics: memcache, task queues, datastores.
- See metrics about requests: display percentiles, latency, cost.
- Tag Google App Engine metrics by version and compare the performance of different versions.

You can also send custom metrics to Datadog through the [API](https://docs.datadoghq.com/api/latest/using-the-api.md) or [DogStatsD](https://docs.datadoghq.com/developers/dogstatsd.md).

## Setup{% #setup %}

### Installation{% #installation %}

If you haven't already, set up the [Google Cloud Platform integration](https://docs.datadoghq.com/integrations/google-cloud-platform.md) first. There are no other installation steps.

### Log collection{% #log-collection %}

Google App Engine logs are collected with Google Cloud Logging and sent to a Dataflow job through a Cloud Pub/Sub topic. If you haven't already, [set up logging with the Datadog Dataflow template](https://docs.datadoghq.com/integrations/google-cloud-platform.md#log-collection).

Once this is done, export your Google App Engine logs from Google Cloud Logging to the Pub/Sub topic:

1. Go to the [Google Cloud Logging page](https://console.cloud.google.com/logs/viewer) and filter the Google App Engine logs.
1. Click **Create Export** and name the sink.
1. Choose "Cloud Pub/Sub" as the destination and select the Pub/Sub topic that was created for that purpose. **Note**: The Pub/Sub topic can be located in a different project.
1. Click **Create** and wait for the confirmation message to show up.

## Data Collected{% #data-collected %}

### Metrics{% #metrics %}

|  |
|  |
| **gcp.gae.flex.autoscaler.capacity**(gauge)                                  | Utilization capacity multiplied by the number of serving VMs.                                                                                                                                                          |
| **gcp.gae.flex.autoscaler.connections.current**(gauge)                       | The number of current reading and writing connections per App Engine flexible environment instance. Intended to be used for autoscaling.*Shown as connection*                                                          |
| **gcp.gae.flex.autoscaler.current\_utilization**(gauge)                      | The sum of the utilization of a specified metric for all serving VMs.                                                                                                                                                  |
| **gcp.gae.flex.autoscaler.server.request\_count**(count)                     | Request counts for an App Engine flexible environment instance. Intended to be used for autoscaling.                                                                                                                   |
| **gcp.gae.flex.connections.current**(gauge)                                  | The number of current active connections per App Engine flexible environment version.*Shown as connection*                                                                                                             |
| **gcp.gae.flex.cpu.reserved\_cores**(gauge)                                  | The total number of CPU cores allocated to an App Engine flexible environment version.*Shown as core*                                                                                                                  |
| **gcp.gae.flex.cpu.utilization**(gauge)                                      | Fractional utilization of allocated CPU across an AppEngine flexible environment version. Values are typically numbers between 0.0 and 1.0 (but some machine types allow bursting above 1.0).*Shown as percent*        |
| **gcp.gae.flex.disk.read\_bytes\_count**(count)                              | The count of bytes read from disk across an App Engine flexible environment version.*Shown as byte*                                                                                                                    |
| **gcp.gae.flex.disk.write\_bytes\_count**(count)                             | The count of bytes written from disk across an App Engine flexible environment version.*Shown as byte*                                                                                                                 |
| **gcp.gae.flex.instance.connections.current**(count)                         | The number of current active connections per App Engine flexible environment instance.*Shown as connection*                                                                                                            |
| **gcp.gae.flex.instance.container.cpu.limit**(gauge)                         | CPU time limit (where applicable).*Shown as unit*                                                                                                                                                                      |
| **gcp.gae.flex.instance.container.cpu.usage\_time**(gauge)                   | Per container CPU usage in CPU seconds.*Shown as second*                                                                                                                                                               |
| **gcp.gae.flex.instance.container.memory.limit**(gauge)                      | Total memory the container is allowed to use.*Shown as byte*                                                                                                                                                           |
| **gcp.gae.flex.instance.container.memory.usage**(gauge)                      | Total memory the container is using.*Shown as byte*                                                                                                                                                                    |
| **gcp.gae.flex.instance.container.network.received\_bytes\_count**(count)    | Bytes received by container over all network interfaces.*Shown as byte*                                                                                                                                                |
| **gcp.gae.flex.instance.container.network.sent\_bytes\_count**(count)        | Bytes sent by container over all network interfaces.*Shown as byte*                                                                                                                                                    |
| **gcp.gae.flex.instance.container.restart\_count**(count)                    | Number of times the container has been restarted.                                                                                                                                                                      |
| **gcp.gae.flex.instance.container.uptime**(gauge)                            | Time for which the container has been up.*Shown as second*                                                                                                                                                             |
| **gcp.gae.flex.instance.cpu.usage\_time**(count)                             | Delta vCPU usage for all vCPUs, in vCPU-seconds. This value is reported by the hypervisor for the VM and can differ from `agent.googleapis.com/cpu/usage_time`, which is reported from inside the VM.*Shown as second* |
| **gcp.gae.flex.instance.cpu.utilization**(gauge)                             | Fractional CPU utilization for all cores on a single AppEngine flexible instance. Values are typically numbers between 0.0 and 1.0 for a single core (but might exceed 1.0 in total).                                  |
| **gcp.gae.flex.instance.disk.io.read\_bytes\_count**(count)                  | The count of bytes read from disk.*Shown as byte*                                                                                                                                                                      |
| **gcp.gae.flex.instance.disk.io.write\_bytes\_count**(count)                 | The count of bytes written to disk.*Shown as byte*                                                                                                                                                                     |
| **gcp.gae.flex.instance.guest.disk.bytes\_used**(gauge)                      | The number of bytes used on disk for file systems.*Shown as byte*                                                                                                                                                      |
| **gcp.gae.flex.instance.guest.memory.bytes\_used**(gauge)                    | The memory usage by each memory state, in bytes. Summing values of all states yields the total memory on the machine.*Shown as byte*                                                                                   |
| **gcp.gae.flex.instance.healthcheck.liveness.request\_count**(count)         | The number of liveness health-check requests for a Flex instance with status and error code.*Shown as request*                                                                                                         |
| **gcp.gae.flex.instance.healthcheck.readiness.request\_count**(count)        | The number of readiness health-check requests for a Flex instance with status and error code.*Shown as request*                                                                                                        |
| **gcp.gae.flex.instance.jvm.gc.count**(count)                                | The total number of garbage collections that have occurred.*Shown as garbage collection*                                                                                                                               |
| **gcp.gae.flex.instance.jvm.gc.time**(count)                                 | The accumulated garbage collection elapsed time in milliseconds.*Shown as millisecond*                                                                                                                                 |
| **gcp.gae.flex.instance.jvm.memory.usage**(gauge)                            | The memory usage.                                                                                                                                                                                                      |
| **gcp.gae.flex.instance.jvm.os.cpu\_time**(count)                            | The CPU time used by the process on which the Java virtual machine is running.*Shown as nanosecond*                                                                                                                    |
| **gcp.gae.flex.instance.jvm.thread.num\_live**(gauge)                        | The current number of live threads.*Shown as thread*                                                                                                                                                                   |
| **gcp.gae.flex.instance.jvm.thread.peak**(gauge)                             | The peak number of live threads.*Shown as thread*                                                                                                                                                                      |
| **gcp.gae.flex.instance.jvm.uptime**(count)                                  | The uptime of the Java virtual machine.*Shown as millisecond*                                                                                                                                                          |
| **gcp.gae.flex.instance.log\_entry\_count**(count)                           | The count of log entries written by the Logging agent.*Shown as entry*                                                                                                                                                 |
| **gcp.gae.flex.instance.log\_entry\_retry\_count**(count)                    | The count of log-entry writes that were retried by the Logging agent.*Shown as write*                                                                                                                                  |
| **gcp.gae.flex.instance.network.received\_bytes\_count**(count)              | The count of incoming network bytes in an App Engine flexible instance.*Shown as byte*                                                                                                                                 |
| **gcp.gae.flex.instance.network.sent\_bytes\_count**(count)                  | The count of outgoing network bytes in an App Engine flexible instance.*Shown as byte*                                                                                                                                 |
| **gcp.gae.flex.instance.nginx.connections.accepted\_count**(count)           | The total connections accepted.*Shown as connection*                                                                                                                                                                   |
| **gcp.gae.flex.instance.nginx.connections.current**(gauge)                   | The number of connections currently attached to Nginx.*Shown as connection*                                                                                                                                            |
| **gcp.gae.flex.instance.nginx.connections.handled\_count**(count)            | The total connections handled.                                                                                                                                                                                         |
| **gcp.gae.flex.instance.uptime**(gauge)                                      | How long the VM has been running, in seconds.*Shown as second*                                                                                                                                                         |
| **gcp.gae.flex.instance.web\_socket.closed\_connections\_count**(count)      | Count of websocket connections closed.                                                                                                                                                                                 |
| **gcp.gae.flex.instance.web\_socket.durations.avg**(count)                   | The average the durations of websocket connections measured at nginx.*Shown as second*                                                                                                                                 |
| **gcp.gae.flex.instance.web\_socket.durations.samplecount**(count)           | The sample count for the durations of websocket connections measured at nginx.*Shown as second*                                                                                                                        |
| **gcp.gae.flex.instance.web\_socket.durations.sumsqdev**(count)              | The sum of squared deviation for the durations of websocket connections measured at nginx.*Shown as second*                                                                                                            |
| **gcp.gae.flex.instance.ws.avg\_duration**(gauge)                            | The average of websocket requests for a given App Engine Flexible instance.*Shown as second*                                                                                                                           |
| **gcp.gae.flex.network.received\_bytes\_count**(count)                       | The count of incoming network bytes across all VMs in an App Engine flexible environment version.*Shown as byte*                                                                                                       |
| **gcp.gae.flex.network.sent\_bytes\_count**(count)                           | The count of outgoing network bytes across all VMs in an App Engine flexible environment version.*Shown as byte*                                                                                                       |
| **gcp.gae.http.server.dos\_intercept\_count**(count)                         | The count of interceptions performed to prevent DoS attacks.*Shown as occurrence*                                                                                                                                      |
| **gcp.gae.http.server.quota\_denial\_count**(count)                          | The count of failed requests due to the app being over quota.*Shown as request*                                                                                                                                        |
| **gcp.gae.http.server.response\_count**(count)                               | The HTTP response count.*Shown as response*                                                                                                                                                                            |
| **gcp.gae.http.server.response\_latencies.avg**(gauge)                       | The average HTTP response latency.*Shown as millisecond*                                                                                                                                                               |
| **gcp.gae.http.server.response\_latencies.p95**(gauge)                       | The 95th percentile of HTTP response latency.*Shown as millisecond*                                                                                                                                                    |
| **gcp.gae.http.server.response\_latencies.p99**(gauge)                       | The 99th percentile of HTTP response latency.*Shown as millisecond*                                                                                                                                                    |
| **gcp.gae.http.server.response\_latencies.samplecount**(count)               | The sample count for HTTP response latency.*Shown as millisecond*                                                                                                                                                      |
| **gcp.gae.http.server.response\_latencies.sumsqdev**(gauge)                  | The sum of squared deviation for HTTP response latency.*Shown as millisecond*                                                                                                                                          |
| **gcp.gae.http.server.response\_style\_count**(count)                        | The count of HTTP responses by serve style.*Shown as response*                                                                                                                                                         |
| **gcp.gae.infrastructure.cloudsql.connection\_latencies.avg**(count)         | The average distribution of latency in microseconds for connections originating from App Engine to Cloud SQL.*Shown as microsecond*                                                                                    |
| **gcp.gae.infrastructure.cloudsql.connection\_latencies.samplecount**(count) | The sample count for distribution of latency in microseconds for connections originating from App Engine to Cloud SQL.*Shown as microsecond*                                                                           |
| **gcp.gae.infrastructure.cloudsql.connection\_latencies.sumsqdev**(count)    | The sum of squared deviation for distribution of latency in microseconds for connections originating from App Engine to Cloud SQL.*Shown as microsecond*                                                               |
| **gcp.gae.infrastructure.cloudsql.connection\_refused\_count**(count)        | Total number of connections refused originating from App Engine to Cloud SQL.                                                                                                                                          |
| **gcp.gae.infrastructure.cloudsql.connection\_request\_count**(count)        | Total number of connection requests originating from App Engine to Cloud SQL.                                                                                                                                          |
| **gcp.gae.infrastructure.cloudsql.received\_bytes\_count**(count)            | Number of bytes received by App Engine from Cloud SQL over the network.*Shown as byte*                                                                                                                                 |
| **gcp.gae.infrastructure.cloudsql.sent\_bytes\_count**(count)                | Number of bytes sent by App Engine to Cloud SQL over the network.*Shown as byte*                                                                                                                                       |
| **gcp.gae.memcache.access\_ages.avg**(count)                                 | The average ages of cached items when they are accessed.*Shown as second*                                                                                                                                              |
| **gcp.gae.memcache.access\_ages.samplecount**(count)                         | The sample count for ages of cached items when they are accessed.*Shown as second*                                                                                                                                     |
| **gcp.gae.memcache.access\_ages.sumsqdev**(count)                            | The sum of squared deviation for ages of cached items when they are accessed.*Shown as second*                                                                                                                         |
| **gcp.gae.memcache.backend\_request\_count**(count)                          | Count of cache requests as recorded by the backends.*Shown as request*                                                                                                                                                 |
| **gcp.gae.memcache.cache\_size\_limit**(gauge)                               | Expected maximum possible cache size based on app's configuration.*Shown as byte*                                                                                                                                      |
| **gcp.gae.memcache.centi\_mcu\_count**(count)                                | Memcache utilization as 1/100th Memcache Compute Units.*Shown as unit*                                                                                                                                                 |
| **gcp.gae.memcache.centi\_mcu\_limit**(gauge)                                | Expected maximum memcache size in one hundredth of Memcache Compute Units.*Shown as unit*                                                                                                                              |
| **gcp.gae.memcache.eviction\_count**(count)                                  | Rate of items evicted from the cache due to space constraints.*Shown as item*                                                                                                                                          |
| **gcp.gae.memcache.hit\_bytes\_count**(count)                                | Count of bytes served from cache hits.*Shown as byte*                                                                                                                                                                  |
| **gcp.gae.memcache.hit\_count**(count)                                       | Rate of cache hits.*Shown as request*                                                                                                                                                                                  |
| **gcp.gae.memcache.hit\_ratio**(gauge)                                       | The percentage of successful hits compared to all memcache operations.*Shown as hit*                                                                                                                                   |
| **gcp.gae.memcache.hot\_keys.avg**(count)                                    | The average distribution of hot key qps.*Shown as request*                                                                                                                                                             |
| **gcp.gae.memcache.hot\_keys.samplecount**(count)                            | The sample count for distribution of hot key qps.*Shown as request*                                                                                                                                                    |
| **gcp.gae.memcache.hot\_keys.sumsqdev**(count)                               | The sum of squared deviation for distribution of hot key qps.*Shown as request*                                                                                                                                        |
| **gcp.gae.memcache.miss\_count**(count)                                      | Rate of cache misses.*Shown as request*                                                                                                                                                                                |
| **gcp.gae.memcache.operation\_count**(count)                                 | The count of memcache key operations, grouped by command and status.*Shown as operation*                                                                                                                               |
| **gcp.gae.memcache.received\_bytes\_count**(count)                           | The number of bytes received by app from the memcache API, grouped by status and memcache command.*Shown as byte*                                                                                                      |
| **gcp.gae.memcache.sent\_bytes\_count**(count)                               | The number of bytes sent by app through the memcache API, grouped by memcache command.*Shown as byte*                                                                                                                  |
| **gcp.gae.memcache.set\_bytes\_count**(count)                                | Count of bytes received from sets.*Shown as byte*                                                                                                                                                                      |
| **gcp.gae.memcache.used\_cache\_size**(gauge)                                | The size of the cache, calculated as the total size of all items stored.                                                                                                                                               |
| **gcp.gae.system.billed\_instance\_estimate\_count**(gauge)                  | An estimate of the number of instances that the customer is charged for.*Shown as instance*                                                                                                                            |
| **gcp.gae.system.cpu.usage**(gauge)                                          | CPU usage in megacycles over all instances.                                                                                                                                                                            |
| **gcp.gae.system.cpu.utilization**(gauge)                                    | CPU utilization average over all active instances.                                                                                                                                                                     |
| **gcp.gae.system.instance\_count**(gauge)                                    | The number of instances that exist.*Shown as instance*                                                                                                                                                                 |
| **gcp.gae.system.memory.usage**(gauge)                                       | The total memory used by running instances.*Shown as byte*                                                                                                                                                             |
| **gcp.gae.system.network.received\_bytes\_count**(count)                     | The count of incoming network bandwidth.*Shown as byte*                                                                                                                                                                |
| **gcp.gae.system.network.sent\_bytes\_count**(count)                         | The count of outgoing network bandwidth.*Shown as byte*                                                                                                                                                                |
| **gcp.gae.system.pending\_queue.pending\_requests**(gauge)                   | Number of pending requests.                                                                                                                                                                                            |

### Events{% #events %}

The Google App Engine integration does not include any events.

### Service Checks{% #service-checks %}

The Google App Engine integration does not include any service checks.

## Troubleshooting{% #troubleshooting %}

Need help? Contact [Datadog support](https://docs.datadoghq.com/help/).
