System insights metrics reference

The following table describes the metrics charts that can be viewed on the AlloyDB System insights dashboard and in the Metrics Explorer. The metric type strings must be prefixed with alloydb.googleapis.com/. For example, alloydb.googleapis.com/Instance.

Metrics are either available in BETA or GA Launch stages. For more information about the launch stage of the metric, see AlloyDB metrics.

Display name and metric name Description Cluster metric Instance metric Read pool metric
Rows in database by state
database/postgresql/tuples

The number of live and dead rows in the instance. Only available for instances with the number of databases less than 50.

Yes Yes No
Query latency
database/postgresql/insights/aggregate/latencies
The aggregated P99 query latency distribution for each instance. Only available for instances with Query Insights enabled. Yes Yes Yes
Database load
database/postgresql/insights/aggregate/execution_time
The accumulated query execution time for each instance. This is the sum of CPU time, I/O wait time, lock wait time, process context switch, and scheduling for all processes involved in query execution. Only available for instances with Query Insights enabled. Yes Yes Yes
Max CPU utilization
instance/cpu/maximum_utilization
The maximum CPU utilization calculated across all serving nodes of the instance, represented as a percentage for each instance. Yes Yes Yes
Mean CPU utilization
instance/cpu/average_utilization
The mean CPU utilization calculated as an average across all serving nodes of the instance, represented as a percentage for each instance. Yes No Yes
Minimum available memory
instance/memory/min_available_memory
The minimum available memory across all 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 used, but can be potentially freed. Yes Yes Yes
Cluster storage
cluster/storage/usage
The billable storage that the AlloyDB cluster uses. It does not include the storage that automatic and on-demand backups use. Yes No No
Queries IO wait time
database/postgresql/insights/aggregate/io_time
The aggregated queries I/O wait time for each instance. Only available for instances with Query Insights enabled. Yes Yes No
Number of connections
instance/postgresql/backends_by_state
The number of connections to each instance across all serving nodes of the instance. This includes connections in all states such as idle, active, idle_in_transaction, idle_in_transaction_aborted, disabled, and fastpath_function_call. Yes Yes Yes
Rows fetched vs. rows returned vs. rows written
  • instance/postgresql/fetched_tuples_count
  • instance/postgresql/returned_tuples_count
  • instance/postgresql/written_tuples_count
  • Rows fetched: The aggregated number of rows fetched as a result of queries across the cluster or instance.
  • Rows returned: The aggregated number of rows scanned while processing the queries across the cluster or instance.
  • Rows written: The aggregated number of rows written while performing insert, update, and delete operations across the cluster or instance.
Only available for instances with the number of databases less than 5000.
Yes Yes No
Rows fetched vs. rows returned
  • instance/postgresql/fetched_tuples_count
  • instance/postgresql/returned_tuples_count
  • Rows fetched: The number of rows fetched as a result of queries across all serving nodes of the read pool instance.
  • Rows returned: The number of rows scanned while processing the queries across all serving nodes of the read pool instance.
If the difference between rows returned and rows fetched is too large that their values aren't shown in the same scale, then the value of rows fetched is shown as 0 because it's negligible compared to the value of rows returned.
No No Yes
Rows processed by operation
  • database/postgresql/
    inserted_tuples_count_for_top_databases
  • database/postgresql/
    updated_tuples_count_for_top_databases
  • database/postgresql/
    deleted_tuples_count_for_top_databases
The number of rows processed in the primary instance per operation such as insert, update, or delete. Only available for instances with the number of databases less than 5000. Yes No No
Oldest transaction age
postgresql/vacuum/oldest_transaction_age
The current age of the oldest uncommitted transaction for each instance that is blocking the vacuum operation. It's measured in the number of transactions that started after the oldest transaction. Yes Yes Yes
Transaction ID utilization
postgresql/vacuum/
transaction_id_utilization
The current percentage of transaction ID space that's consumed by each instance. It records up to a maximum of two billion unvacuumed transactions as a percentage. Yes Yes Yes
Wait time
instance/postgresql/wait_time
The aggregated accumulated elapsed wait time per wait event name and wait event type across the cluster, instance, or across all serving nodes of the read pool instance. Yes Yes Yes
Wait count
instance/postgresql/wait_count
The number of times processes waited per wait event name and wait event type across the cluster, instance, or across all serving nodes of the read pool instance. Yes Yes Yes
Temp data size used
instance/postgresql/
temp_bytes_written_count
The amount of data (bytes) used in each instance for executing queries and performing algorithms such as join and sort. Only available for instances with the number of databases less than 5000. Yes No No
Temp files used
instance/postgresql/temp_files_written_count
The number of temporary files that are used in each instance for executing queries and performing algorithms such as join and sort. Only available for instances with the number of databases less than 5000. Yes No No
New connection count
instance/postgresql/new_connections_count
The number of new connections that are added to each instance. Only available for instances with the number of databases less than 5000. Yes No No
Statements executed count
database/postgresql/statements_executed_count
The number of statements that are executed in each instance. Only available for instances with Query Insights enabled. Yes Yes No
Transaction count
instance/postgres/transaction_count
The number of transactions that have occurred in each instance. Only available for instances with the number of databases less than 5000. Yes No No
Block read count
  • instance/postgresql/blks_hit
  • instance/postgresql/blks_read
The number of blocks read from the disk and from the buffer cache across the cluster, instance, or across all serving nodes of the read pool instance. Only available for instances with the number of databases less than 5000. Yes Yes Yes
Deadlock count
instance/postgresql/deadlock_count
The number of deadlocks in each instance. Only available for instances with the number of databases less than 5000. Yes No No
Read pool replication lag
instance/postgres/replication/maximum_lag
The maximum time taken for replication from a primary instance to a read pool. The time lag is calculated across all serving read pool nodes per read pool instance in the cluster. Yes Yes Yes
Active nodes
instance/postgres/instances
The number of nodes that can serve user traffic. Yes No Yes
Connections per database
database/postgresql/backends_for_top_databases
The number of connections to the instance per database. No Yes Yes
Connections per application
instance/postgresql/backends_for_top_applications
The number of connections to the instance, grouped by applications. Connections without an application name are grouped as Unknown. No Yes Yes
Rows processed by operation
  • instance/postgresql/inserted_tuples_count
  • instance/postgresql/updated_tuples_count
  • instance/postgresql/deleted_tuples_count
The number of rows processed in the primary instance per operation such as insert, update, or delete. No Yes No
Temp data size used per database
database/postgresql/temp_bytes_written_for_top_databases
The amount of data (bytes) used in each database for executing queries and performing algorithms such as join and sort. No Yes Yes
Temp files used per database
database/postgresql/temp_files_written_for_top_databases
The number of temporary files that are used in each database for executing queries and performing algorithms such as join and sort. No Yes Yes
New connection count per database
database/postgresql/new_connections_
for_top_databases
The number of new connections that are added to the instance per database. No Yes Yes
Transaction count
database/postgresql/transaction_count
The number of committed and rolled-back transactions that have occurred in the instance. No Yes Yes
Deadlock count per database
database/postgresql/deadlock_count_
for_top_databases
The number of deadlocks in the instance per database. No Yes Yes
Nodes and replication status
instance/postgres/replication/replicas
The number of read nodes connected to the primary instance per read pool along with one of the following states: startup, catchup, streaming, backup, and stopping. No No Yes
Ultra Fast Cache hit rate per instance
instance/postgres/ultrafastcache_hitrate
The hit rate of AlloyDB ultra-fast cache across all the nodes in an instance.

The chart might be empty if there are no hits in the ultra-fast cache and all reads are served from the storage layer.

The chart might have gaps if there are no read operations on the database or if all reads are served from the buffer cache.
No Yes Yes
Ultra Fast Cache hit rate per node
node/postgres/ultrafastcache_hitrate
The hit rate of AlloyDB ultra-fast cache per node.

The chart might be empty if there are no hits in the ultra-fast cache and all reads are served from the storage layer.

The chart might have gaps if there are no read operations on the database or if all reads are served from the buffer cache.
No Yes Yes
Node CPU usage
node/cpu/usage_time
The rate of CPU utilization in the node, which is sampled every 60 seconds. After sampling, data is not visible for up to 180 seconds. No Yes Yes
Node replication lag
node/postgres/replay_lag
The lag in milliseconds for the individual node, derived from replay_lag in pg_stat_replication. This metric is sampled every 60 seconds. After sampling, data is not visible for up to 180 seconds. No Yes Yes
Node database availability
node/postgres/uptime
The rate of database availability in the node, which sampled every 60 seconds. After sampling, data is not visible for up to 180 seconds. No Yes Yes
Number of connections to the node per connection state
node/postgres/backends_by_state
The number of connections to the node grouped by the status: idle, active, idle_in_transaction, idle_in_transaction_aborted, disabled, and fastpath_function_call.

For information about these statuses, see the state text row in the pg_stat_activity documentation.
No Yes Yes
Total connections per node
node/postgres/backends
The total number of connections across all databases in the node. No Yes Yes
Node Wait count
node/postgres/wait_count
Total number of times processes waited for each wait event type and wait event name per node. No Yes Yes
Node Wait time
node/postgres/wait_time
Total elapsed wait time (microseconds) for each wait event type and wait event name per node. No Yes Yes

Additionally, the Cloud Logging metric, Log entries by severity (logging.googleapis.com/log_entry_count), shows the total numbers of error and warning log entries per instance. These are extracted from postgres.log, which is the database log, and pgaudit.log, which contains data access information.

For more information, see AlloyDB metrics.