Google AlloyDB

Overview

AlloyDB is a fully-managed, PostgreSQL-compatible database for demanding transactional workloads. It provides enterprise-grade performance and availability while maintaining 100% compatibility with open-source PostgreSQL.

Get metrics from Google AlloyDB to:

  • Visualize the performance of your AlloyDB Clusters.
  • Correlate the performance of your AlloyDB instances with your databases.

Setup

Installation

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

Log collection

Google AlloyDB 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 AlloyDB logs from Google Cloud Logging to the Pub/Sub topic:

  1. Go to the Google Cloud Logging page and filter the Google AlloyDB logs.
  2. Click Create Export and name the sink.
  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.alloydb.database.postgresql.insights.cluster.storgae.usage
(gauge)
The total AlloyDB storage in bytes across the entire cluster.
Shown as byte
gcp.alloydb.database.postgresql.insights.aggregate.execution_time
(count)
Accumulated query execution time since the last sample. This is the sum of CPU time, IO wait time, lock wait time, process context switch, and scheduling for all the processes involved in the query execution.
Shown as microsecond
gcp.alloydb.database.postgresql.insights.aggregate.io_time
(count)
Accumulated IO time since the last sample.
Shown as microsecond
gcp.alloydb.database.postgresql.insights.aggregate.latencies
(count)
Query latency distribution.
Shown as microsecond
gcp.alloydb.database.postgresql.insights.aggregate.lock_time
(count)
Accumulated lock wait time since the last sample.
Shown as microsecond
gcp.alloydb.database.postgresql.insights.aggregate.row_count
(count)
The number of retrieved or affected rows since the last sample.
gcp.alloydb.database.postgresql.insights.aggregate.shared_blk_access_count
(count)
Shared blocks (regular tables and indexed) accessed by statement execution.
gcp.alloydb.database.postgresql.insights.perquery.execution_time
(count)
Accumulated execution times per user per database per query. This is the sum of CPU time, IO wait time, lock wait time, process context switch, and scheduling for all the processes involved in the query execution.
Shown as microsecond
gcp.alloydb.database.postgresql.insights.perquery.io_time
(count)
Accumulated IO time since the last sample.
Shown as microsecond
gcp.alloydb.database.postgresql.insights.perquery.latencies
(count)
Query latency distribution.
Shown as microsecond
gcp.alloydb.database.postgresql.insights.perquery.lock_time
(count)
Accumulated lock wait time since the last sample.
Shown as microsecond
gcp.alloydb.database.postgresql.insights.perquery.row_count
(count)
The number of retrieved or affected rows since the last sample.
gcp.alloydb.database.postgresql.insights.perquery.shared_blk_access_count
(count)
Shared blocks (regular tables and indexed) accessed by statement execution.
gcp.alloydb.database.postgresql.insights.pertag.execution_time
(count)
Accumulated execution times since the last sample. This is the sum of CPU time, IO wait time, lock wait time, process context switch, and scheduling for all the processes involved in the query execution.
Shown as microsecond
gcp.alloydb.database.postgresql.insights.pertag.io_time
(count)
Accumulated IO time since the last sample.
Shown as microsecond
gcp.alloydb.database.postgresql.insights.pertag.latencies
(count)
Query latency distribution.
Shown as microsecond
gcp.alloydb.database.postgresql.insights.pertag.lock_time
(count)
Accumulated lock wait time since the last sample.
Shown as microsecond
gcp.alloydb.database.postgresql.insights.pertag.row_count
(count)
The number of retrieved or affected rows since the last sample.
gcp.alloydb.database.postgresql.insights.pertag.shared_blk_access_count
(count)
Shared blocks (regular tables and indexed) accessed by statement execution.
gcp.alloydb.instance.cpu.average_utilization
(gauge)
Mean CPU utilization across all currently serving nodes of the instance from 0 to 100.
gcp.alloydb.instance.cpu.maximum_utilization
(gauge)
Maximum CPU utilization across all currently serving nodes of the instance from 0 to 100.
gcp.alloydb.instance.cpu.vcpus
(gauge)
The number of vCPUs allocated to each node in the instance.
gcp.alloydb.instance.memory.min_available_memory
(gauge)
The minimum available memory across all currently serving nodes of the instance. The available memory is an estimate of memory in bytes available for allocation on the VM including memory that is currently used, but can be potentially freed.
Shown as byte
gcp.alloydb.instance.postgres.abort_count
(count)
The number of transactions that were rolled back across all serving nodes of the instance.
gcp.alloydb.instance.postgres.average_connections
(gauge)
The mean number of active and idle connections to AlloyDB across serving nodes of the instance.
gcp.alloydb.instance.postgres.commit_count
(count)
The number of committed transactions across all serving nodes of the instance.
gcp.alloydb.instance.postgres.connections_limit
(gauge)
The current limit on the number of connections per node of the AlloyDB instance.
gcp.alloydb.instance.postgres.instances
(gauge)
The number of nodes in the instance, along with their status, which can be either up or down.
gcp.alloydb.instance.postgres.replication.maximum_lag
(gauge)
The maximum replication time lag calculated across all serving read replicas of the instance. The replication time lag is derived from the replay_lag value.
Shown as millisecond
gcp.alloydb.instance.postgres.replication.replicas
(gauge)
The number of read replicas connected to the primary instance.
gcp.alloydb.instance.postgres.total_connections
(gauge)
The number of active and idle connections to the AlloyDB instance across serving nodes of the instance.
gcp.alloydb.instance.postgres.transaction_count
(count)
The number of committed and rolled back transactions across all serving nodes of the instance.

Events

The Google AlloyDB integration does not include any events.

Service Checks

The Google AlloyDB integration does not include any service checks.

Troubleshooting

Need help? Contact Datadog support.