Google AlloyDB

개요

AlloyDB는 까다로운 트랜잭션 워크로드를 위한 완전 관리형 PostgreSQL 호환 데이터베이스입니다. 오픈 소스 PostgreSQL과 100% 호환성을 유지하면서 엔터프라이즈급 성능과 가용성을 제공합니다.

Google AlloyDB에서 메트릭을 가져와 다음을 수행할 수 있습니다.

  • AlloyDB 클러스터의 성능을 시각화합니다.
  • AlloyDB 인스턴스의 성능과 데이터베이스의 상관관계를 파악합니다.

설정

설치

아직 하지 않았다면, 먼저 Google Cloud Platform 통합을 설정하세요. 그 외 다른 설치 단계는 없습니다.

로그 수집

Google AlloyDB 로그는 Google Cloud Logging으로 수집되어 Cloud Pub/Sub 주제를 통해 Dataflow 작업으로 전송됩니다. 아직 설정하지 않았다면 Datadog Dataflow 템플릿을 사용하여 로깅을 설정하세요.

이 작업이 완료되면 Google AlloyDB 로그를 Google Cloud Logging에서 Pub/Sub 주제로 내보냅니다.

  1. Google Cloud Logging 페이지에서 Google AlloyDB 로그를 필터링합니다.
  2. Create Export를 클릭하고 싱크 이름을 지정하세요.
  3. “Cloud Pub/Sub"를 대상으로 선택하고 해당 목적으로 생성된 Pub/Sub 주제를 선택합니다. 참고: Pub/Sub 주제는 다른 프로젝트에 있을 수 있습니다.
  4. Create를 클릭하고 확인 메시지가 나타날 때까지 기다립니다.

수집한 데이터

메트릭

gcp.alloydb.cluster.storage.usage
(gauge)
The total AlloyDB storage in bytes across the entire cluster.
Shown as byte
gcp.alloydb.database.postgresql.backends_for_top_databases
(gauge)
The current number of connections per database to the instance for top 500 databases.
gcp.alloydb.database.postgresql.blks_hit_for_top_databases
(count)
Number of times Postgres found the requested block in the buffer cache per database for top 500 databases.
gcp.alloydb.database.postgresql.blks_read_for_top_databases
(count)
Number of blocks read by Postgres that were not in the buffer cache per database for top 500 databases.
gcp.alloydb.database.postgresql.committed_transactions_for_top_databases
(count)
Total number of transactions committed per database for top 500 databases.
gcp.alloydb.database.postgresql.deadlock_count_for_top_databases
(count)
Total number of deadlocks detected in the instance per database for top 500 databases.
gcp.alloydb.database.postgresql.deleted_tuples_count_for_top_databases
(count)
The total number of rows deleted per database for top 500 databases as a result of the queries in the instance.
Shown as byte
gcp.alloydb.database.postgresql.fetched_tuples_count_for_top_databases
(count)
The total number of rows fetched per database for top 500 databases as a result of the queries in the instance.
gcp.alloydb.database.postgresql.inserted_tuples_count_for_top_databases
(count)
The total number of rows inserted per database for top 500 databases as a result of the queries in the instance.
gcp.alloydb.database.postgresql.insights.aggregate.execution_time
(count)
Accumulated query execution time since the last sample. This is the sum of CPU time, I/O 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 I/O 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, I/O 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 I/O 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, I/O 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 I/O 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.database.postgresql.new_connections_for_top_databases
(count)
Total number of new connections added per database for top 500 databases to the instance.
gcp.alloydb.database.postgresql.returned_tuples_count_for_top_databases
(count)
The total number of rows scanned per database for top 500 databases while processing the queries in the instance.
gcp.alloydb.database.postgresql.rolledback_transactions_for_top_databases
(count)
Total number of transactions rolledback per database for top 500 databases.
gcp.alloydb.database.postgresql.statements_executed_count
(count)
Total count of statements executed in the instance per database per operation_type. Only available for instances with Query insights enabled.
gcp.alloydb.database.postgresql.temp_bytes_written_for_top_databases
(count)
The total amount of data(in bytes) written to temporary files by the queries per database for top 500 databases.
Shown as byte
gcp.alloydb.database.postgresql.temp_files_written_for_top_databases
(count)
The number of temporary files used for writing data per database while performing internal algorithms like join or sort for top 500 databases.
gcp.alloydb.database.postgresql.tuples
(gauge)
Number of tuples (rows) by state per database in the instance. This metric will only be exposed when the number of db’s is less than 50.
gcp.alloydb.database.postgresql.updated_tuples_count_for_top_databases
(count)
The total number of rows updated per database for top 500 databases as a result of the queries in the instance.
gcp.alloydb.database.postgresql.vacuum.oldest_transaction_age
(gauge)
Current age of the oldest uncommitted transaction. It's measured in the number of transactions that started since the oldest transaction.
gcp.alloydb.database.postgresql.vacuum.transaction_id_utilization
(gauge)
The current percentage of transaction ID space consumed by the AlloyDB instance. It records the number of unvacuumed transactions as a percentage of the 2-billion maximum.
gcp.alloydb.database.postgresql.written_tuples_count_for_top_databases
(count)
The total number of rows written(inserted,updated,deleted) per database for top 500 databases as a result of the queries in the instance.
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.maximum_secondary_lag
(gauge)
The maximum replication time lag calculated from primary to secondary cluster. The replication time lag is derived from the replay_lag value.
Shown as millisecond
gcp.alloydb.instance.postgres.replication.network_lag
(gauge)
Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written and flushed it (but not yet applied it).
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.
gcp.alloydb.instance.postgresql.backends_by_state
(gauge)
The current number of connections to the instance grouped by the state: idle, active, idleintransaction, idleintransactionaborted, disabled, and fastpathfunction_call.
gcp.alloydb.instance.postgresql.backends_for_top_applications
(gauge)
The current number of connections to the AlloyDB instance, grouped by applications for top 500 applications.
gcp.alloydb.instance.postgresql.blks_hit
(count)
Number of times Postgres found the requested block in the buffer cache.
gcp.alloydb.instance.postgresql.blks_read
(count)
Number of blocks read by Postgres that were not in the buffer cache.
gcp.alloydb.instance.postgresql.deadlock_count
(count)
Number of deadlocks detected in the instance.
gcp.alloydb.instance.postgresql.deleted_tuples_count
(count)
Number of rows deleted while processing the queries in the instance since the last sample.
gcp.alloydb.instance.postgresql.fetched_tuples_count
(count)
Number of rows fetched while processing the queries in the instance since the last sample.
gcp.alloydb.instance.postgresql.inserted_tuples_count
(count)
Number of rows inserted while processing the queries in the instance since the last sample.
gcp.alloydb.instance.postgresql.new_connections_count
(count)
The number new connections added to the instance.
gcp.alloydb.instance.postgresql.returned_tuples_count
(count)
Number of rows scanned while processing the queries in the instance since the last sample.
gcp.alloydb.instance.postgresql.temp_bytes_written_count
(count)
The total amount of data(in bytes) written to temporary files by the queries while performing internal algorithms like join or sort.
Shown as byte
gcp.alloydb.instance.postgresql.temp_files_written_count
(count)
The number of temporary files used for writing data in the instance while performing internal algorithms like join or sort.
gcp.alloydb.instance.postgresql.updated_tuples_count
(count)
Number of rows updated while processing the queries in the instance since the last sample.
gcp.alloydb.instance.postgresql.version
(gauge)
The version of the Postgres database (for example, POSTGRES_14, POSTGRES_15).
gcp.alloydb.instance.postgresql.wait_count
(count)
Total number of times processes waited for each wait event in the instance.
gcp.alloydb.instance.postgresql.wait_time
(count)
Total elapsed wait time for each wait event in the instance.
Shown as microsecond
gcp.alloydb.instance.postgresql.written_tuples_count
(count)
Number of rows written while processing the queries in the instance since the last sample.
gcp.alloydb.node.cpu.usage_time
(gauge)
Rate of CPU utilization in the node.
gcp.alloydb.node.postgres.replay_lag
(gauge)
The lag in milliseconds for the individual node, comes from replay_lag in pg_stat_replication.
Shown as millisecond
gcp.alloydb.node.postgres.uptime
(gauge)
Rate of database availability in the node.
gcp.alloydb.quota.storage_usage_per_cluster
(gauge)
Storage usage per cluster.
gcp.alloydb.quota.storage_usage_per_cluster.exceeded
(count)
Number of attempts to exceed the limit on quota metric alloydb.googleapis.com/storage_usage_per_cluster.
gcp.alloydb.quota.storage_usage_per_cluster.limit
(gauge)
Current limit on quota metric alloydb.googleapis.com/storage_usage_per_cluster.
gcp.alloydb.quota.storage_usage_per_cluster.usage
(gauge)
Current usage on quota metric alloydb.googleapis.com/storage_usage_per_cluster.

이벤트

Google AlloyDB 통합은 이벤트를 포함하지 않습니다.

서비스 점검

Google AlloyDB 통합은 서비스 점검을 포함하지 않습니다.

트러블슈팅

도움이 필요하신가요? Datadog 지원팀에 문의하세요.