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. Beginning with PostgreSQL 17, the available memory metric more accurately reflects the available memory to AlloyDB by taking into consideration memory in the operating system page cache that is used but can't be freed. As a result, the available memory metric might be lower than metrics for AlloyDB clusters using PostgreSQL 16 and earlier. | 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, andfastpath_function_call. | Yes | Yes | Yes | 
| Rows fetched vs. rows returned vs. rows written 
 | 
 | Yes | Yes | No | 
| Rows fetched vs. rows returned 
 | 
 0because it's negligible compared to the value of
    rows returned. | No | No | Yes | 
| Rows processed by operation 
 | The number of rows processed in the primary instance per operation such
    as insert,update, ordelete.
    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/ | 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/ | The amount of data (bytes) used in each instance for executing queries
    and performing algorithms such as joinandsort.
    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 joinandsort.
    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 
 | 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 
 | The number of rows processed in the primary instance per operation such
    as insert,update, ordelete. | 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 joinandsort. | 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 joinandsort. | No | Yes | Yes | 
| New connection count per database database/postgresql/new_connections_ | 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_ | 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, andstopping. | No | No | Yes | 
| Ultra Fast Cache hit rate per instance instance/postgres/ultrafastcache_hitrate | The hit rate of the AlloyDB ultra-fast cache across all the nodes in an instance. A zero value indicates either no workload being run or the traffic being served from the buffer cache or the storage layer. | No | Yes | Yes | 
| Ultra Fast Cache hit rate per node node/postgres/ultrafastcache_hitrate | The hit rate of the AlloyDB ultra-fast cache per node. A zero value indicates either no workload being run or the traffic being served from the buffer cache or the storage layer. | 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_laginpg_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, andfastpath_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.