Google Cloud SQL

Overview

Google Cloud SQL is a fully-managed database service that makes it easy to set up, maintain, manage, and administer your SQL databases in the cloud.

Get metrics from Google Cloud SQL to:

  • Visualize the performance of your Cloud SQL databases.
  • Correlate the performance of your Cloud SQL databases with your applications.

Setup

Installation

Metric collection

If you haven’t already, set up the Google Cloud Platform integration first. There are no other installation steps.

Configuration

To collect custom Cloud SQL labels as tags, enable the cloud asset inventory permission.

Log collection

Log collection is not supported for this site.

Google Cloud SQL 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.

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

  1. Go to the Google Cloud Logging page and filter Google Cloud SQL logs.
  2. Click Create Sink and name the sink accordingly.
  3. 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.
  4. Click Create and wait for the confirmation message to show up.

Data Collected

Metrics

gcp.cloudsql.database.auto_failover_request_count
(count)
Delta of number of instance auto-failover requests.
Shown as request
gcp.cloudsql.database.available_for_failover
(gauge)
This is > 0 if the failover operation is available on the instance.
gcp.cloudsql.database.cpu.reserved_cores
(gauge)
Number of cores reserved for the database.
Shown as core
gcp.cloudsql.database.cpu.usage_time
(gauge)
Cumulative CPU usage time
Shown as second
gcp.cloudsql.database.cpu.utilization
(gauge)
Fraction of the reserved CPU that is currently in use.
Shown as fraction
gcp.cloudsql.database.disk.bytes_used
(gauge)
Disk space used.
Shown as byte
gcp.cloudsql.database.disk.quota
(gauge)
Maximum data disk size in bytes.
Shown as byte
gcp.cloudsql.database.disk.read_ops_count
(count)
Disk read IO operations.
Shown as operation
gcp.cloudsql.database.disk.utilization
(gauge)
The fraction of the disk quota that is currently in use.
Shown as fraction
gcp.cloudsql.database.disk.write_ops_count
(count)
Disk write IO operations.
Shown as operation
gcp.cloudsql.database.instance_state
(gauge)
Serving state of the Cloud SQL instance
gcp.cloudsql.database.memory.quota
(gauge)
Maximum RAM in bytes
Shown as byte
gcp.cloudsql.database.memory.total_usage
(gauge)
Total RAM usage in bytes including buffer cache
Shown as byte
gcp.cloudsql.database.memory.usage
(gauge)
RAM usage in bytes
Shown as byte
gcp.cloudsql.database.memory.utilization
(gauge)
Fraction of memory quota currently in use
Shown as fraction
gcp.cloudsql.database.mysql.innodb_buffer_pool_pages_dirty
(gauge)
Number of unflushed pages in the InnoDB buffer pool.
Shown as page
gcp.cloudsql.database.mysql.innodb_buffer_pool_pages_free
(gauge)
Number of unused pages in the InnoDB buffer pool.
Shown as page
gcp.cloudsql.database.mysql.innodb_buffer_pool_pages_total
(gauge)
Total number of pages in the InnoDB buffer pool.
Shown as page
gcp.cloudsql.database.mysql.innodb_data_fsyncs
(count)
InnoDB fsync calls.
Shown as operation
gcp.cloudsql.database.mysql.innodb_os_log_fsyncs
(count)
InnoDB fsync calls to the log file.
Shown as operation
gcp.cloudsql.database.mysql.innodb_pages_read
(count)
InnoDB pages read.
Shown as page
gcp.cloudsql.database.mysql.innodb_pages_written
(count)
InnoDB pages written.
Shown as page
gcp.cloudsql.database.mysql.queries
(count)
Number of query statements executed by the server.
Shown as query
gcp.cloudsql.database.mysql.questions
(count)
Number of question statements executed by the server. Includes only statements sent to the server by clients and not statements executed within stored programs
Shown as question
gcp.cloudsql.database.mysql.received_bytes_count
(count)
Delta count of bytes received by MySQL process.
Shown as byte
gcp.cloudsql.database.mysql.replication.last_io_errno
(gauge)
Error number of most recent error that caused I/O thread to stop
Shown as second
gcp.cloudsql.database.mysql.replication.last_sql_errno
(gauge)
Error number of most recent error that caused SQL thread to stop
Shown as second
gcp.cloudsql.database.mysql.replication.seconds_behind_master
(gauge)
Approximate number of seconds the read replica is behind its' master.
Shown as second
gcp.cloudsql.database.mysql.replication.slave_io_running
(gauge)
Indicates whether the I/O thread for reading the master's binary log is running. Possible values are Yes, No, and Connecting.
gcp.cloudsql.database.mysql.replication.slave_io_running_state
(gauge)
Indicates whether the I/O thread for reading the master's binary log is running. Possible values are Yes, No, and Connecting, values exposed through 'state' field.
gcp.cloudsql.database.mysql.replication.slave_sql_running
(gauge)
Indicates whether the SQL thread for executing events in the relay log is running
gcp.cloudsql.database.mysql.replication.slave_sql_running_state
(gauge)
Indicates whether the SQL thread for executing events in the relay log is running, values exposed through 'state' field
gcp.cloudsql.database.mysql.sent_bytes_count
(count)
Delta count of bytes sent by MySQL process.
Shown as byte
gcp.cloudsql.database.network.connections
(gauge)
Number of connections to the Cloud SQL instance.
Shown as connection
gcp.cloudsql.database.network.received_bytes_count
(count)
Delta count of bytes received through the network.
Shown as byte
gcp.cloudsql.database.network.sent_bytes_count
(count)
Number of bytes sent through the network.
Shown as byte
gcp.cloudsql.database.postgresql.insights.aggregate.execution_time
(gauge)
Accumulated query execution time per user per database
Shown as microsecond
gcp.cloudsql.database.postgresql.insights.aggregate.io_time
(gauge)
Accumulated IO time per user per database
Shown as microsecond
gcp.cloudsql.database.postgresql.insights.aggregate.latencies.avg
(gauge)
Average Query latency distribution per user per database
Shown as microsecond
gcp.cloudsql.database.postgresql.insights.aggregate.latencies.p95
(gauge)
The 95th percentile of the Query latency distribution per user per database
Shown as microsecond
gcp.cloudsql.database.postgresql.insights.aggregate.latencies.p99
(gauge)
The 99th percentile of the Query latency distribution per user per database
Shown as microsecond
gcp.cloudsql.database.postgresql.insights.aggregate.latencies.sumsqdev
(gauge)
Sum of Squared Deviation for the Query latency distribution per user per database
Shown as microsecond
gcp.cloudsql.database.postgresql.insights.aggregate.latencies.samplecount
(gauge)
Sample Counts of the Query latency distribution per user per database
Shown as microsecond
gcp.cloudsql.database.postgresql.insights.aggregate.lock_time
(gauge)
Accumulated lock wait time per user per database
Shown as microsecond
gcp.cloudsql.database.postgresql.insights.aggregate.row_count
(count)
Total number of retrieved or affected rows per database
gcp.cloudsql.database.postgresql.insights.aggregate.shared_blk_access_count
(count)
Shared blocks accessed by statement execution
gcp.cloudsql.database.postgresql.insights.perquery.execution_time
(gauge)
Accumulated execution times per user per database per query.
Shown as microsecond
gcp.cloudsql.database.postgresql.insights.perquery.io_time
(gauge)
Accumulated IO time per user per query
Shown as microsecond
gcp.cloudsql.database.postgresql.insights.perquery.latencies
(gauge)
Query latency distribution per user per query
Shown as microsecond
gcp.cloudsql.database.postgresql.insights.perquery.lock_time
(gauge)
Accumulated lock wait time per user per query
Shown as microsecond
gcp.cloudsql.database.postgresql.insights.perquery.row_count
(count)
Total number of retrived or affected rows per query
gcp.cloudsql.database.postgresql.insights.perquery.shared_blk_access_count
(count)
Shared blocks accessed by statement execution per query
gcp.cloudsql.database.postgresql.insights.pertag.execution_time
(gauge)
Accumulated execution time per user per database per tag
Shown as microsecond
gcp.cloudsql.database.postgresql.insights.pertag.io_time
(gauge)
Accumulated IO write time per user per database per tag
Shown as microsecond
gcp.cloudsql.database.postgresql.insights.pertag.latencies
(gauge)
Query latency distribution per user per database per tag
Shown as microsecond
gcp.cloudsql.database.postgresql.insights.pertag.lock_time
(gauge)
Accumulated lock wait time per user per database per tag
Shown as microsecond
gcp.cloudsql.database.postgresql.insights.pertag.row_count
(count)
Total number of retrieved or affected rows
gcp.cloudsql.database.postgresql.insights.pertag.shared_blk_access_count
(count)
Shared blocks accessed by statement execution
gcp.cloudsql.database.postgresql.backends_in_wait
( gauge)
Number of backends in wait in postgres instance.
Shown as connection
gcp.cloudsql.database.postgresql.num_backends
(gauge)
Number of connections to the Cloud SQL PostgreSQL instance.
Shown as connection
gcp.cloudsql.database.postgresql.num_backends_by_application
(gauge)
Number of connections to the Cloud SQL PostgreSQL instance, grouped by applications.
Shown as connection
gcp.cloudsql.database.postgresql.num_backends_by_state
(gauge)
Number of connections to the Cloud SQL PostgreSQL instance, grouped by its state.
Shown as connection
gcp.cloudsql.database.postgresql.replication.replica_byte_lag
(gauge)
Replication lag in bytes
Shown as byte
gcp.cloudsql.database.postgresql.transaction_count
(count)
Delta count of number of transactions.
Shown as transaction
gcp.cloudsql.database.postgresql.transaction_id_count
(count)
Delta count of transaction ID. The tag 'action' describes the type of action, which is either "assigned" (count of transaction IDs assigned and consumed by the instance) or "frozen" (count of transaction IDs replenished by the VACUUM's freeze operation).
gcp.cloudsql.database.postgresql.oldest_transaction_age
(gauge)
Age of the oldest transaction yet to be vacuumed in the Cloud SQL PostgreSQL instance, measured in number of transactions that have happened since the oldest transaction
Shown as transaction
gcp.cloudsql.database.replication.network_lag
(gauge)
Indicates time taken from primary binary log to IO thread on replica
Shown as second
gcp.cloudsql.database.replication.replica_lag
(gauge)
Number of seconds read replica is behind primary
Shown as second
gcp.cloudsql.database.replication.state
(gauge)
Current serving state of replication
gcp.cloudsql.database.state
(gauge)
Current serving state of Cloud SQL instance
gcp.cloudsql.database.up
(gauge)
Indicates if the server is up or not.
gcp.cloudsql.database.uptime
(gauge)
Number of seconds the instance has been running.
Shown as second

Events

The Google Cloud SQL integration does not include any events.

Service Checks

gcp.cloudsql.database.state The current serving state of the Cloud SQL instance.

Troubleshooting

Need help? Contact Datadog support.