

# Metrics reference for Amazon Aurora
<a name="metrics-reference"></a>

In this reference, you can find descriptions of Amazon Aurora metrics for Amazon CloudWatch, Performance Insights, and Enhanced Monitoring.

**Topics**
+ [Amazon CloudWatch metrics for Amazon Aurora](Aurora.AuroraMonitoring.Metrics.md)
+ [Amazon CloudWatch dimensions for Aurora](dimensions.md)
+ [Availability of Aurora metrics in the Amazon RDS console](Aurora.Monitoring.Metrics.RDSAvailability.md)
+ [Amazon CloudWatch metrics for Amazon RDS Performance Insights](USER_PerfInsights.Cloudwatch.md)
+ [Performance Insights counter metrics](USER_PerfInsights_Counters.md)
+ [SQL statistics for Performance Insights](sql-statistics.md)
+ [OS metrics in Enhanced Monitoring](USER_Monitoring-Available-OS-Metrics.md)

# Amazon CloudWatch metrics for Amazon Aurora
<a name="Aurora.AuroraMonitoring.Metrics"></a>

The `AWS/RDS` namespace includes the following metrics that apply to database entities running on Amazon Aurora. Some metrics apply to either Aurora MySQL, Aurora PostgreSQL, or both. Furthermore, some metrics are specific to a DB cluster, primary DB instance, replica DB instance, or all DB instances.

For Aurora global database metrics, see [Amazon CloudWatch metrics for write forwarding in Aurora MySQL](aurora-global-database-write-forwarding-ams.md#aurora-global-database-write-forwarding-cloudwatch-ams) and [Amazon CloudWatch metrics for write forwarding in Aurora PostgreSQL](aurora-global-database-write-forwarding-apg.md#aurora-global-database-write-forwarding-cloudwatch-apg). For Aurora parallel query metrics, see [Monitoring parallel query for Aurora MySQL](aurora-mysql-parallel-query-monitoring.md).

**Topics**
+ [Cluster-level metrics for Amazon Aurora](#Aurora.AuroraMySQL.Monitoring.Metrics.clusters)
+ [Instance-level metrics for Amazon Aurora](#Aurora.AuroraMySQL.Monitoring.Metrics.instances)
+ [Amazon CloudWatch usage metrics for Amazon Aurora](#rds-metrics-usage)

## Cluster-level metrics for Amazon Aurora
<a name="Aurora.AuroraMySQL.Monitoring.Metrics.clusters"></a>

The following table describes metrics that are specific to Aurora clusters.


| Metric | Description | Applies to | Units | 
| --- | --- | --- | --- | 
|  `AuroraGlobalDBDataTransferBytes`  |  In an Aurora Global Database, the amount of redo log data transferred from the source AWS Region to a secondary AWS Region.  This metric is available only in secondary AWS Regions.   |  Aurora MySQL and Aurora PostgreSQL  |  Bytes  | 
|  `AuroraGlobalDBProgressLag`  |  In an Aurora Global Database, he measure of how far the secondary cluster's storage volume is behind the primary cluster's storage volume for both user transactions and system transactions.  This metric is available only in secondary AWS Regions.   |  Aurora MySQL and Aurora PostgreSQL  |  Milliseconds  | 
|  `AuroraGlobalDBReplicatedWriteIO`  |  In an Aurora Global Database, the number of write I/O operations replicated from the primary AWS Region to the cluster volume in a secondary AWS Region. The billing calculations for the secondary AWS Regions in a global database use `VolumeWriteIOPs` to account for writes performed within the cluster. The billing calculations for the primary AWS Region in a global database use `VolumeWriteIOPs` to account for the write activity within that cluster, and `AuroraGlobalDBReplicatedWriteIO` to account for cross-Region replication within the global database.  This metric is available only in secondary AWS Regions.   |  Aurora MySQL and Aurora PostgreSQL  |  Count  | 
|  `AuroraGlobalDBReplicationLag`  |  For an Aurora Global Database, the average time elapsed replicating updates between the primary cluster's replication server and the secondary cluster's replication server.  This metric is available only in secondary AWS Regions.   |  Aurora MySQL and Aurora PostgreSQL  |  Milliseconds  | 
|  `AuroraGlobalDBRPOLag`  |  In an Aurora Global Database, the recovery point objective (RPO) lag time. This metric measures how far the secondary cluster is behind the primary cluster for user transactions.  This metric is available only in secondary AWS Regions.   |  Aurora MySQL and Aurora PostgreSQL  |  Milliseconds  | 
|  `AuroraVolumeBytesLeftTotal`  |  The remaining available space for the cluster volume. As the cluster volume grows, this value decreases. If it reaches zero, the cluster reports an out-of-space error. If you want to detect whether your Aurora MySQL cluster is approaching the size limit of 128 tebibytes (TiB), this value is simpler and more reliable to monitor than `VolumeBytesUsed`. `AuroraVolumeBytesLeftTotal` takes into account storage used for internal housekeeping and other allocations that don't affect your storage billing.  |  Aurora MySQL  |  Bytes  | 
|  `BacktrackChangeRecordsCreationRate`  |  The number of backtrack change records created over 5 minutes for your DB cluster.  |  Aurora MySQL  |  Count per 5 minutes  | 
|  `BacktrackChangeRecordsStored`  |  The number of backtrack change records used by your DB cluster.  |  Aurora MySQL  |  Count  | 
|  `BackupRetentionPeriodStorageUsed`  |  The total amount of backup storage used to support the point-in-time restore feature within the Aurora DB cluster's backup retention window. This amount is included in the total reported by the `TotalBackupStorageBilled` metric. It is computed separately for each Aurora cluster. For instructions, see [Understanding Amazon Aurora backup storage usage](aurora-storage-backup.md).   |  Aurora MySQL and Aurora PostgreSQL  |  Bytes  | 
|  `ServerlessDatabaseCapacity`  |  The current capacity of an Aurora Serverless DB cluster.  |  Aurora MySQL and Aurora PostgreSQL  |  Count  | 
|  `SnapshotStorageUsed`  |  The total amount of backup storage consumed by all Aurora snapshots for an Aurora DB cluster outside its backup retention window. This amount is included in the total reported by the `TotalBackupStorageBilled` metric. It is computed separately for each Aurora cluster. For instructions, see [Understanding Amazon Aurora backup storage usage](aurora-storage-backup.md).   |  Aurora MySQL and Aurora PostgreSQL  |  Bytes  | 
|  `TotalBackupStorageBilled`  |  The total amount of backup storage in bytes for which you are billed for a given Aurora DB cluster. The metric includes the backup storage measured by the `BackupRetentionPeriodStorageUsed` and `SnapshotStorageUsed` metrics. This metric is computed separately for each Aurora cluster. For instructions, see [Understanding Amazon Aurora backup storage usage](aurora-storage-backup.md).   |  Aurora MySQL and Aurora PostgreSQL  |  Bytes  | 
|  `VolumeBytesUsed`  |  The amount of storage used by your Aurora DB cluster. This value affects the cost of the Aurora DB cluster (for pricing information, see the [Amazon RDS pricing page](http://aws.amazon.com/rds/pricing)).  This value doesn't reflect some internal storage allocations that don't affect storage billing. For Aurora MySQL you can anticipate out-of-space issues more accurately by testing whether `AuroraVolumeBytesLeftTotal` is approaching zero instead of comparing `VolumeBytesUsed` against the storage limit of 128 TiB. For clusters that are clones, the value of this metric depends on the amount of data added or changed on the clone. The metric can also increase or decrease when the original cluster is deleted, or as new clones are added or deleted. For details, see [Deleting a source cluster volume](Aurora.Managing.Clone.md#Aurora.Managing.Clone.Deleting)  Note that it doesn't make sense to choose a `--period` value that's small, because Amazon RDS collects this metrics at intervals, not continuously.  |  Aurora MySQL and Aurora PostgreSQL  |  Bytes  | 
|  `VolumeReadIOPs`  |  The number of billed read I/O operations from a cluster volume within a 5-minute interval. Billed read operations are calculated at the cluster volume level, aggregated from all instances in the Aurora DB cluster, and then reported at 5-minute intervals. The value is calculated by taking the value of the **Read operations** metric over a 5-minute period. You can determine the amount of billed read operations per second by taking the value of the **Billed read operations** metric and dividing by 300 seconds. For example, if the **Billed read operations** returns 13,686, then the billed read operations per second is 45 (13,686 / 300 = 45.62).  You accrue billed read operations for queries that request database pages that aren't in the buffer cache and must be loaded from storage. You might see spikes in billed read operations as query results are read from storage and then loaded into the buffer cache. Note that it doesn't make sense to choose a `--period` value that's small, because Amazon RDS collects this metrics at intervals, not continuously.   If your Aurora MySQL cluster uses parallel query, you might see an increase in `VolumeReadIOPS` values. Parallel queries don't use the buffer pool. Thus, although the queries are fast, this optimized processing can result in an increase in read operations and associated charges.    |  Aurora MySQL and Aurora PostgreSQL  |  Count per 5 minutes  | 
|  `VolumeWriteIOPs`  |  The number of write disk I/O operations to the cluster volume, reported at 5-minute intervals. For a detailed description of how billed write operations are calculated, see `VolumeReadIOPs`. Note that it doesn't make sense to choose a `--period` value that's small, because Amazon RDS collects this metrics at intervals, not continuously.  |  Aurora MySQL and Aurora PostgreSQL  |  Count per 5 minutes  | 

## Instance-level metrics for Amazon Aurora
<a name="Aurora.AuroraMySQL.Monitoring.Metrics.instances"></a>

The following instance-specific Amazon CloudWatch metrics apply to all Aurora MySQL and Aurora PostgreSQL instances unless noted otherwise.


| Metric | Description | Applies to | Units | 
| --- | --- | --- | --- | 
|  `AbortedClients`  | The number of client connections that have not been closed properly. |  Aurora MySQL  |  Count  | 
|  `ActiveTransactions`  |  The average number of current transactions executing on an Aurora database instance per second.  By default, Aurora doesn't enable this metric. To begin measuring this value, set `innodb_monitor_enable='all'` in the DB parameter group for a specific DB instance.   |  Aurora MySQL  |  Count per second  | 
|  `ACUUtilization`  |  The value of the `ServerlessDatabaseCapacity` metric divided by the maximum ACU value of the DB cluster. This metric is applicable only for Aurora Serverless v2.   |  Aurora MySQL and Aurora PostgreSQL  |  Percentage  | 
|  `AuroraBinlogReplicaLag`  |  The amount of time that a binary log replica DB cluster running on Aurora MySQL lags behind the binary log replication source. A lag means that the source is generating records faster than the replica can apply them. This metric reports different values depending on the engine version: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMonitoring.Metrics.html) You can use this metric to monitor errors and replica lag in a cluster that acts as a binary log replica. The metric value indicates the following: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMonitoring.Metrics.html) Because binary log replication only occurs on the writer instance of the cluster, we recommend using the version of this metric associated with the WRITER role. For more information about administering replication, see [Replicating Amazon Aurora MySQL DB clusters across AWS Regions](AuroraMySQL.Replication.CrossRegion.md). For more information about troubleshooting, see [ Amazon Aurora MySQL replication issues](CHAP_Troubleshooting.md#CHAP_Troubleshooting.MySQL).  |  Primary for Aurora MySQL  |  Seconds  | 
|  `AuroraDMLRejectedMasterFull`  |  The number of forwarded queries that are rejected because the session is full on the writer DB instance.  |  Primary for Aurora MySQL version 2  |  Count  | 
|  `AuroraDMLRejectedWriterFull`  |  The number of forwarded queries that are rejected because the session is full on the writer DB instance.  |  Primary for Aurora MySQL version 3  |  Count  | 
| `AuroraEstimatedSharedMemoryBytes` |  The estimated amount of shared buffer or buffer pool memory which was actively used during the last configured polling interval.  | Aurora PostgreSQL |  Bytes  | 
|  `AuroraMemoryHealthState`  |  Indicates the memory health state. A value of `0` equals `NORMAL`. A value of `10` equals `RESERVED`, which means that the server is approaching a critical level of memory usage. For more information, see [Troubleshooting out-of-memory issues for Aurora MySQL databases](AuroraMySQLOOM.md).  |  Aurora MySQL version 3.06.1 and higher  |  Gauge  | 
|  `AuroraMemoryNumDeclinedSqlTotal`  |  The incremental number of queries declined as part of out-of-memory (OOM) avoidance. For more information, see [Troubleshooting out-of-memory issues for Aurora MySQL databases](AuroraMySQLOOM.md).  |  Aurora MySQL version 3.06.1 and higher  |  Count  | 
|  `AuroraMemoryNumKillConnTotal`  |  The incremental number of connections closed as part of OOM avoidance. For more information, see [Troubleshooting out-of-memory issues for Aurora MySQL databases](AuroraMySQLOOM.md).  |  Aurora MySQL version 3.06.1 and higher  |  Count  | 
|  `AuroraMemoryNumKillQueryTotal`  |  The incremental number of queries ended as part of OOM avoidance. For more information, see [Troubleshooting out-of-memory issues for Aurora MySQL databases](AuroraMySQLOOM.md).  |  Aurora MySQL version 3.06.1 and higher  |  Count  | 
|  `AuroraMillisecondsSpentInOomRecovery`  |  The amount of time since the memory health dropped below the normal state. For more information, see [Troubleshooting out-of-memory issues for Aurora MySQL databases](AuroraMySQLOOM.md).  |  Aurora MySQL version 3.08.0 and higher  |  Milliseconds  | 
|  `AuroraNumOomRecoverySuccessful`  |  The number of times that the memory health was restored to the normal state. For more information, see [Troubleshooting out-of-memory issues for Aurora MySQL databases](AuroraMySQLOOM.md).  |  Aurora MySQL version 3.08.0 and higher  |  Count  | 
|  `AuroraNumOomRecoveryTriggered`  |  The number of times that the memory health dropped below the normal state. For more information, see [Troubleshooting out-of-memory issues for Aurora MySQL databases](AuroraMySQLOOM.md).  |  Aurora MySQL version 3.08.0 and higher  |  Count  | 
|  `AuroraOptimizedReadsCacheHitRatio`  |  The percentage of requests that are served by the Optimized Reads cache. The value is calculated using the following formula: `orcache_blks_hit/ (orcache_blks_hit + storage_blks_read)` When `AuroraOptimizedReadsCacheHitRatio` is 100%, it means that all pages were read from the optimized reads cache. If the `AuroraOptimizedReadsCacheHitRatio` is `0`, it means that no pages were read from the optimized reads cache.  |  Primary for Aurora PostgreSQL  |  Percentage  | 
|  `AuroraReplicaLag`  |  In a single-region Aurora cluster or Global Database primary cluster, the amount of time elapsed replicating updates to a replica instance from the writer instance in the same region. In a Global Database secondary cluster, the amount of time elapsed replicating updates to the replica instance and the secondary cluster's replication server in the same region.  |  Replica for Aurora MySQL and Aurora PostgreSQL  |  Milliseconds  | 
|  `AuroraReplicaLagMaximum`  |  The maximum amount of lag between the primary instance and any of the Aurora DB instance in the DB cluster. When read replicas are deleted or renamed, there can be a temporary spike in replication lag as the old resource undergoes a recycling process. To obtain an accurate representation of the replication lag during that period, we recommend that you monitor the `AuroraReplicaLag` metric on each read replica instance.  |  Primary for Aurora MySQL and Aurora PostgreSQL  |  Milliseconds  | 
|  `AuroraReplicaLagMinimum`  |  The minimum amount of lag between the primary instance and any of the Aurora DB instance in the DB cluster.  |  Primary for Aurora MySQL and Aurora PostgreSQL  |  Milliseconds  | 
|  `AuroraSlowConnectionHandleCount`  |  The number of connections that have waited two seconds or longer to start the handshake. This metric applies only to Aurora MySQL version 3.  |  Aurora MySQL  |  Count  | 
|  `AuroraSlowHandshakeCount`  |  The number of connections that have taken 50 milliseconds or longer to finish the handshake. This metric applies only to Aurora MySQL version 3.  |  Aurora MySQL  |  Count  | 
|  `BacktrackWindowActual`  |  The difference between the target backtrack window and the actual backtrack window.  |  Primary for Aurora MySQL  |  Minutes  | 
|  `BacktrackWindowAlert`  |  The number of times that the actual backtrack window is smaller than the target backtrack window for a given period of time.  |  Primary for Aurora MySQL  |  Count  | 
|  `BlockedTransactions`  |  The average number of transactions in the database that are blocked per second.  |  Aurora MySQL  |  Count per second  | 
|  `BufferCacheHitRatio`  |  The percentage of requests that are served by the buffer cache.  |  Aurora MySQL and Aurora PostgreSQL  |  Percentage  | 
|  `CommitLatency`  |  The average duration taken by the engine and storage to complete the commit operations.  |  Aurora MySQL and Aurora PostgreSQL  |  Milliseconds  | 
|  `CommitThroughput`  |  The average number of commit operations per second.  |  Aurora MySQL and Aurora PostgreSQL  |  Count per second  | 
|  `ConnectionAttempts`  |  The number of attempts to connect to an instance, whether successful or not.  |  Aurora MySQL  |  Count  | 
| `CPUCreditBalance`  |  The number of CPU credits that an instance has accumulated, reported at 5-minute intervals. You can use this metric to determine how long a DB instance can burst beyond its baseline performance level at a given rate. This metric applies only to these instance classes: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMonitoring.Metrics.html)  We recommend using the T DB instance classes only for development and test servers, or other non-production servers. For more details on the T instance classes, see [DB instance class types](Concepts.DBInstanceClass.Types.md).  Launch credits work the same way in Amazon RDS as they do in Amazon EC2. For more information, see [Launch credits](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-standard-mode-concepts.html#launch-credits) in the *Amazon Elastic Compute Cloud User Guide for Linux Instances*.  |  Aurora MySQL and Aurora PostgreSQL  |  Count  | 
| `CPUCreditUsage`  |  The number of CPU credits consumed during the specified period, reported at 5-minute intervals. This metric measures the amount of time during which physical CPUs have been used for processing instructions by virtual CPUs allocated to the DB instance.  This metric applies only to these instance classes: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMonitoring.Metrics.html)  We recommend using the T DB instance classes only for development and test servers, or other non-production servers. For more details on the T instance classes, see [DB instance class types](Concepts.DBInstanceClass.Types.md).   |  Aurora MySQL and Aurora PostgreSQL  |  Count  | 
| `CPUSurplusCreditBalance` |  The number of surplus credits that have been spent by an unlimited instance when its `CPUCreditBalance` value is zero. The `CPUSurplusCreditBalance` value is paid down by earned CPU credits. If the number of surplus credits exceeds the maximum number of credits that the instance can earn in a 24-hour period, the spent surplus credits above the maximum incur an additional charge. CPU credit metrics are available at a 5-minute frequency only.  |  Aurora MySQL and Aurora PostgreSQL  |  Credits (vCPU-minutes)   | 
| `CPUSurplusCreditsCharged` |  The number of spent surplus credits that are not paid down by earned CPU credits, and which thus incur an additional charge. Spent surplus credits are charged when any of the following occurs: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMonitoring.Metrics.html) CPU credit metrics are available at a 5-minute frequency only.  |  Aurora MySQL and Aurora PostgreSQL  |  Credits (vCPU-minutes)  | 
|  `CPUUtilization`  |  The percentage of CPU used by an Aurora DB instance.  |  Aurora MySQL and Aurora PostgreSQL  |  Percentage  | 
|  `DatabaseConnections`  |  The number of client network connections to the database instance. The number of database sessions can be higher than the metric value because the metric value doesn't include the following: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMonitoring.Metrics.html) |  Aurora MySQL and Aurora PostgreSQL  |  Count  | 
|  `DDLLatency`  |  The average duration of requests such as example, create, alter, and drop requests.  |  Aurora MySQL  |  Milliseconds  | 
|  `DDLThroughput`  |  The average number of DDL requests per second.  |  Aurora MySQL  |  Count per second  | 
|  `Deadlocks`  |  The average number of deadlocks in the database per second.  |  Aurora MySQL and Aurora PostgreSQL  |  Count per second  | 
|  `DeleteLatency`  |  The average duration of delete operations.  |  Aurora MySQL  |  Milliseconds  | 
|  `DeleteThroughput`  |  The average number of delete queries per second.  |  Aurora MySQL  |  Count per second  | 
|  `DiskQueueDepth`  |  The number of outstanding read/write requests waiting to access the disk.  |  Aurora MySQL and Aurora PostgreSQL  |  Count  | 
|  `DMLLatency`  |  The average duration of inserts, updates, and deletes.  |  Aurora MySQL  |  Milliseconds  | 
|  `DMLThroughput`  |  The average number of inserts, updates, and deletes per second.  |  Aurora MySQL  |  Count per second  | 
|  `EngineUptime`  |  The amount of time that the instance has been running.  |  Aurora MySQL and Aurora PostgreSQL  |  Seconds  | 
|  `FreeableMemory`  |  The amount of available random access memory. For Aurora MySQL and Aurora PostgreSQL databases, this metric reports the value of the `MemAvailable` field of `/proc/meminfo`.  |  Aurora MySQL and Aurora PostgreSQL  |  Bytes  | 
|  `FreeEphemeralStorage`  |  The amount of available Ephemeral NVMe storage.  |  Aurora PostgreSQL  |  Bytes  | 
|  `FreeLocalStorage`  |  The amount of local storage available. Unlike for other DB engines, for Aurora DB instances this metric reports the amount of storage available to each DB instance. This value depends on the DB instance class (for pricing information, see the [Amazon RDS pricing page](http://aws.amazon.com/rds/pricing)). You can increase the amount of free storage space for an instance by choosing a larger DB instance class for your instance. (This doesn't apply to Aurora Serverless v2.)  |  Aurora MySQL and Aurora PostgreSQL  |  Bytes  | 
|  `InsertLatency`  |  The average duration of insert operations.  |  Aurora MySQL  |  Milliseconds  | 
|  `InsertThroughput`  |  The average number of insert operations per second.  |  Aurora MySQL  |  Count per second  | 
|  `LoginFailures`  |  The average number of failed login attempts per second.  |  Aurora MySQL  |  Count per second  | 
|  `MaximumUsedTransactionIDs`  |  The age of the oldest unvacuumed transaction ID, in transactions. If this value reaches 2,146,483,648 (2^31 - 1,000,000), the database is forced into read-only mode, to avoid transaction ID wraparound. For more information, see [Preventing transaction ID wraparound failures](https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND) in the PostgreSQL documentation.  |  Aurora PostgreSQL  |  Count  | 
|  `NetworkReceiveThroughput`  |  The amount of network throughput received from clients by each instance in the Aurora DB cluster. This throughput doesn't include network traffic between instances in the Aurora DB cluster and the cluster volume.  |  Aurora MySQL and Aurora PostgreSQL   |  Bytes per second (console shows Megabytes per second)  | 
|  `NetworkThroughput`  |  The amount of network throughput both received from and transmitted to clients by each instance in the Aurora DB cluster. This throughput doesn't include network traffic between instances in the Aurora DB cluster and the cluster volume.  |  Aurora MySQL and Aurora PostgreSQL  |  Bytes per second  | 
|  `NetworkTransmitThroughput`  |  The amount of network throughput sent to clients by each instance in the Aurora DB cluster. This throughput doesn't include network traffic between instances in the DB cluster and the cluster volume.  |  Aurora MySQL and Aurora PostgreSQL  |  Bytes per second (console shows Megabytes per second)  | 
|  `NumBinaryLogFiles`  |  The number of binlog files generated.  | Aurora MySQL |  Count  | 
|  `OldestReplicationSlotLag`  |  The lagging size of the replica lagging the most in terms of write-ahead log (WAL) data received.  |  Aurora PostgreSQL  |  Bytes  | 
|  `PurgeBoundary`  |  Transaction number up to which InnoDB purging is allowed. If this metric doesn't advance for extended periods of time, it's a good indication that InnoDB purging is blocked by long-running transactions. To investigate, check the active transactions on your Aurora MySQL DB cluster.  |  Aurora MySQL version 2, versions 2.11 and higher Aurora MySQL version 3, versions 3.08 and higher  | Count | 
|  `PurgeFinishedPoint`  |  Transaction number up to which InnoDB purging is performed. This metric can help you examine how fast InnoDB purging is progressing.  |  Aurora MySQL version 2, versions 2.11 and higher Aurora MySQL version 3, versions 3.08 and higher  | Count | 
|  `Queries`  |  The average number of queries executed per second.  |  Aurora MySQL  |  Count per second  | 
|  `RDSToAuroraPostgreSQLReplicaLag`  |  The lag when replicating updates from the primary RDS PostgreSQL instance to other nodes in the cluster.  |  Replica for Aurora PostgreSQL  |  Seconds  | 
|  `ReadIOPS`  |  The average number of disk I/O operations per second but the reports read and write separately, in 1-minute intervals.  |  Aurora MySQL and Aurora PostgreSQL  |  Count per second  | 
|  `ReadIOPSEphemeralStorage`  |  The average number of disk read I/O operations to Ephemeral NVMe storage.  |  Aurora PostgreSQL  |  Count per second  | 
|  `ReadLatency`  |  The average amount of time taken per disk I/O operation.  |  Aurora MySQL and Aurora PostgreSQL  |  Seconds  | 
|  `ReadLatencyEphemeralStorage`  |  The average amount of time taken per disk read I/O operation for Ephemeral NVMe storage.  |  Aurora PostgreSQL  |  Seconds  | 
|  `ReadThroughput`  |  The average number of bytes read from disk per second.  |  Aurora MySQL and Aurora PostgreSQL  |  Bytes per second  | 
|  `ReadThroughputEphemeralStorage`  |  The average number of bytes read from disk per second for Ephemeral NVMe storage.  |  Aurora PostgreSQL  |  Bytes per second  | 
|  `ReplicationSlotDiskUsage`  |  The amount of disk space consumed by replication slot files.   |  Aurora PostgreSQL  |  Bytes  | 
|  `ResultSetCacheHitRatio`  |  The percentage of requests that are served by the Resultset cache.  |  Aurora MySQL version 2  |  Percentage  | 
|  `RollbackSegmentHistoryListLength`  |  The undo logs that record committed transactions with delete-marked records. These records are scheduled to be processed by the InnoDB purge operation.  |  Aurora MySQL  |  Count  | 
|  `RowLockTime`  |  The total time spent acquiring row locks for InnoDB tables.  |  Aurora MySQL  |  Milliseconds  | 
|  `SelectLatency`  |  The average amount of time for select operations.  |  Aurora MySQL  |  Milliseconds  | 
|  `SelectThroughput`  |  The average number of select queries per second.  |  Aurora MySQL  |  Count per second  | 
|  `ServerlessDatabaseCapacity`  |  The current capacity of an Aurora Serverless DB cluster.  |  Aurora MySQL and Aurora PostgreSQL  |  Count  | 
|  `StorageNetworkReceiveThroughput`  |  The amount of network throughput received from the Aurora storage subsystem by each instance in the DB cluster.  |  Aurora MySQL and Aurora PostgreSQL  |  Bytes per second   | 
|  `StorageNetworkThroughput`  |  The amount of network throughput received from and sent to the Aurora storage subsystem by each instance in the Aurora DB cluster.  |  Aurora MySQL and Aurora PostgreSQL  |  Bytes per second   | 
|  `StorageNetworkTransmitThroughput`  |  The amount of network throughput sent to the Aurora storage subsystem by each instance in the Aurora DB cluster.  |  Aurora MySQL and Aurora PostgreSQL  |  Bytes per second   | 
|  `SumBinaryLogSize`  |  The total size of the binlog files.  |  Aurora MySQL  |  Bytes  | 
|  `SwapUsage`  | The amount of swap space used. This metric isn't available for the following DB instance classes:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMonitoring.Metrics.html) |  Aurora MySQL and Aurora PostgreSQL  |  Bytes  | 
|  `TempStorageIOPS`  |  The number of IOPS for both read and writes on local storage attached to the DB instance. This metric represents a count and is measured once per second. This metric is applicable only for Aurora Serverless v2.  |  Aurora MySQL and Aurora PostgreSQL  |  Count per second  | 
|  `TempStorageThroughput `  |  The amount of data transferred to and from local storage associated with the DB instance. This metric represents bytes and is measured once per second. This metric is applicable only for Aurora Serverless v2.   |  Aurora MySQL and Aurora PostgreSQL  | Bytes per second | 
|  `TransactionAgeMaximum`  |  The age of the oldest active running transaction.  |  Aurora MySQL version 3, versions 3.08 and higher  |  Seconds  | 
|  `TransactionLogsDiskUsage`  |  The amount of disk space consumed by transaction logs on the Aurora PostgreSQL DB instance. This metric is generated only when Aurora PostgreSQL is using logical replication or AWS Database Migration Service. By default, Aurora PostgreSQL uses log records, not transaction logs. When transaction logs aren't in use, the value for this metric is `-1`.  |  Primary for Aurora PostgreSQL  |  Bytes  | 
|  `TruncateFinishedPoint`  |  The transaction identifier up to which undo truncation is performed.  |  Aurora MySQL version 2, versions 2.11 and higher Aurora MySQL version 3, versions 3.08 and higher  | Count | 
|  `UpdateLatency`  |  The average amount of time taken for update operations.  |  Aurora MySQL  |  Milliseconds  | 
|  `UpdateThroughput`  |  The average number of updates per second.  |  Aurora MySQL  |  Count per second  | 
|  `WriteIOPS`  |  The number of Aurora storage write records generated per second. This is more or less the number of log records generated by the database. These do not correspond to 8K page writes, and do not correspond to network packets sent.  |  Aurora MySQL and Aurora PostgreSQL  |  Count per second  | 
|  `WriteIOPSEphemeralStorage`  |  The average number of disk write I/O operations to Ephemeral NVMe storage.  |  Aurora PostgreSQL  |  Count per second  | 
|  `WriteLatency`  |  The average amount of time taken per disk I/O operation.  |  Aurora MySQL and Aurora PostgreSQL  |  Seconds  | 
|  `WriteLatencyEphemeralStorage`  |  The average amount of time taken per disk write I/O operation for Ephemeral NVMe storage.  |  Aurora PostgreSQL  |  Seconds  | 
|  `WriteThroughput`  |  The average number of bytes written to persistent storage every second.  |  Aurora MySQL and Aurora PostgreSQL  |  Bytes per second  | 
|  `WriteThroughputEphemeralStorage`  |  The average number of bytes written to disk per second for Ephemeral NVMe storage.  |  Aurora PostgreSQL  |  Bytes per second  | 

## Amazon CloudWatch usage metrics for Amazon Aurora
<a name="rds-metrics-usage"></a>

The `AWS/Usage` namespace in Amazon CloudWatch includes account-level usage metrics for your Amazon RDS service quotas. CloudWatch collects usage metrics automatically for all AWS Regions.

For more information, see [CloudWatch usage metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Usage-Metrics.html) in the *Amazon CloudWatch User Guide*. For more information about quotas, see [Quotas and constraints for Amazon Aurora](CHAP_Limits.md) and [Requesting a quota increase](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) in the *Service Quotas User Guide*.


| Metric | Description | Units\$1 | 
| --- | --- | --- | 
| AuthorizationsPerDBSecurityGroup |  The number of ingress rules per DB security group in your AWS account. The used value is the highest number of ingress rules in a DB security group in the account. Other DB security groups in the account might have a lower number of ingress rules.  |  Count  | 
| CustomEndpointsPerDBCluster |  The number of custom endpoints per DB cluster in your AWS account. The used value is the highest number of custom endpoints in a DB cluster in the account. Other DB clusters in the account might have a lower number of custom endpoints.  |  Count  | 
| DBClusterParameterGroups |  The number of DB cluster parameter groups in your AWS account. The count excludes default parameter groups.  |  Count  | 
| DBClusterRoles |  The number of associated AWS Identity and Access Management (IAM) roles per DB cluster in your AWS account. The used value is the highest number of associated IAM roles for a DB cluster in the account. Other DB clusters in the account might have a lower number of associated IAM roles.  |  Count  | 
| DBClusters |  The number of Amazon Aurora DB clusters in your AWS account.  |  Count  | 
| DBInstanceRoles |  The number of associated AWS Identity and Access Management (IAM) roles per DB instance in your AWS account. The used value is the highest number of associated IAM roles for a DB instance in the account. Other DB instances in the account might have a lower number of associated IAM roles.  |  Count  | 
| DBInstances |  The number of DB instances in your AWS account.  |  Count  | 
| DBParameterGroups |  The number of DB parameter groups in your AWS account. The count excludes the default DB parameter groups.  |  Count  | 
| DBSubnetGroups  |  The number of DB subnet groups in your AWS account. The count excludes the default subnet group.  |  Count  | 
| EventSubscriptions | The number of event notification subscriptions in your AWS account. | Count | 
| Integrations | The number of zero-ETL integrations with Amazon Redshift in your AWS account. | Count | 
| ManualClusterSnapshots |  The number of manually created DB cluster snapshots in your AWS account. The count excludes invalid snapshots.  |  Count  | 
| OptionGroups |  The number of option groups in your AWS account. The count excludes the default option groups.  |  Count  | 
| Proxies |  The number of RDS proxies in your AWS account.  |  Count  | 
| ReadReplicasPerMaster |  The number of read replicas per DB instance in your account. The used value is the highest number of read replicas for a DB instance in the account. Other DB instances in the account might have a lower number of read replicas.  |  Count  | 
| ReservedDBInstances |  The number of reserved DB instances in your AWS account. The count excludes retired or declined instances.  |  Count  | 
| SubnetsPerDBSubnetGroup |  The number of subnets per DB subnet group in your AWS account. The highest number of subnets for a DB subnet group in the account. Other DB subnet groups in the account might have a lower number of subnets.  |  Count  | 

**Note**  
Amazon RDS doesn't publish units for usage metrics to CloudWatch. The units only appear in the documentation.

# Amazon CloudWatch dimensions for Aurora
<a name="dimensions"></a>

You can filter Aurora metrics data by using any dimension in the following table.


|  Dimension  |  Filters the requested data for . . .  | 
| --- | --- | 
|  DBInstanceIdentifier  |  A specific DB instance.  | 
|  DBClusterIdentifier  |  A specific Aurora DB cluster.  | 
|  DBClusterIdentifier, Role |  A specific Aurora DB cluster, aggregating the metric by instance role (WRITER/READER). For example, you can aggregate metrics for all READER instances that belong to a cluster.  | 
|  DbClusterIdentifier, EngineName  |  A specific Aurora DB cluster and engine name combination. For example, you can view the `VolumeReadIOPs` metric for cluster `ams1` and engine `aurora`.  | 
|  DatabaseClass  |  All instances in a database class. For example, you can aggregate metrics for all instances that belong to the database class `db.r5.large`.  | 
|  EngineName  |  The identified engine name only. For example, you can aggregate metrics for all instances that have the engine name `aurora-postgresql`.  | 
|  SourceRegion  |  The specified Region only. For example, you can aggregate metrics for all DB instances in the `us-east-1` Region.  | 

# Availability of Aurora metrics in the Amazon RDS console
<a name="Aurora.Monitoring.Metrics.RDSAvailability"></a>

Not all metrics provided by Amazon Aurora are available in the Amazon RDS console. You can view these metrics using tools such as the AWS CLI and CloudWatch API. Also, some metrics in the Amazon RDS console are either shown only for specific instance classes, or with different names and units of measurement. 

**Topics**
+ [Aurora metrics available in the Last Hour view](#Aurora.Monitoring.Metrics.RDSAvailability.LMV)
+ [Aurora metrics available in specific cases](#Aurora.Monitoring.Metrics.RDSAvailability.specific-cases)
+ [Aurora metrics that aren't available in the console](#Aurora.Monitoring.Metrics.RDSAvailability.unavailable)

## Aurora metrics available in the Last Hour view
<a name="Aurora.Monitoring.Metrics.RDSAvailability.LMV"></a>

You can view a subset of categorized Aurora metrics in the default Last Hour view in the Amazon RDS console. The following table lists the categories and associated metrics displayed in the Amazon RDS console for an Aurora instance.


| Category | Metrics | 
| --- | --- | 
| SQL |  `ActiveTransactions` `BlockedTransactions` `BufferCacheHitRatio` `CommitLatency` `CommitThroughput` `DatabaseConnections` `DDLLatency` `DDLThroughput` `Deadlocks` `DMLLatency` `DMLThroughput` `LoginFailures` `ResultSetCacheHitRatio` `SelectLatency` `SelectThroughput`  | 
| System |  `AuroraReplicaLag` `AuroraReplicaLagMaximum` `AuroraReplicaLagMinimum` `CPUCreditBalance` `CPUCreditUsage` `CPUUtilization` `FreeableMemory` `FreeLocalStorage` (This doesn't apply to Aurora Serverless v2.) `NetworkReceiveThroughput`  | 
| Deployment |  `AuroraReplicaLag` `BufferCacheHitRatio` `ResultSetCacheHitRatio` `SelectThroughput`  | 

## Aurora metrics available in specific cases
<a name="Aurora.Monitoring.Metrics.RDSAvailability.specific-cases"></a>

In addition, some Aurora metrics are either shown only for specific instance classes, or only for DB instances, or with different names and different units of measurement:
+ The `CPUCreditBalance` and `CPUCreditUsage` metrics are displayed only for Aurora MySQL `db.t2` instance classes and for Aurora PostgreSQL `db.t3` instance classes.
+ The following metrics that are displayed with different names, as listed:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Monitoring.Metrics.RDSAvailability.html)
+ The following metrics apply to an entire Aurora DB cluster, but are displayed only when viewing DB instances for an Aurora DB cluster in the Amazon RDS console:
  + `VolumeBytesUsed`
  + `VolumeReadIOPs`
  + `VolumeWriteIOPs`
+ The following metrics are displayed in megabytes, instead of bytes, in the Amazon RDS console:
  + `FreeableMemory`
  + `FreeLocalStorage`
  + `NetworkReceiveThroughput`
  + `NetworkTransmitThroughput`
+ The following metrics apply to an Aurora PostgreSQL DB cluster with Aurora Optimized Reads:
  + `AuroraOptimizedReadsCacheHitRatio`
  + `FreeEphemeralStorage`
  + `ReadIOPSEphemeralStorage`
  + `ReadLatencyEphemeralStorage`
  + `ReadThroughputEphemeralStorage`
  + `WriteIOPSEphemeralStorage`
  + `WriteLatencyEphemeralStorage`
  + `WriteThroughputEphemeralStorage`

## Aurora metrics that aren't available in the console
<a name="Aurora.Monitoring.Metrics.RDSAvailability.unavailable"></a>

The following Aurora metrics aren't available in the Amazon RDS console:
+ `AuroraBinlogReplicaLag`
+ `DeleteLatency`
+ `DeleteThroughput`
+ `EngineUptime`
+ `InsertLatency`
+ `InsertThroughput`
+ `NetworkThroughput`
+ `Queries`
+ `UpdateLatency`
+ `UpdateThroughput`

# Amazon CloudWatch metrics for Amazon RDS Performance Insights
<a name="USER_PerfInsights.Cloudwatch"></a>

Performance Insights automatically publishes some metrics to Amazon CloudWatch. The same data can be queried from Performance Insights, but having the metrics in CloudWatch makes it easy to add CloudWatch alarms. It also makes it easy to add the metrics to existing CloudWatch Dashboards.


| Metric | Description | 
| --- | --- | 
|  DBLoad  |  The number of active sessions for the database. Typically, you want the data for the average number of active sessions. In Performance Insights, this data is queried as `db.load.avg`.  | 
|  DBLoadCPU  |  The number of active sessions where the wait event type is CPU. In Performance Insights, this data is queried as `db.load.avg`, filtered by the wait event type `CPU`.  | 
|  DBLoadNonCPU  |  The number of active sessions where the wait event type is not CPU.  | 
| DBLoadRelativeToNumVCPUs |  The ratio of the DB load to the number of virtual CPUs for the database.  | 

**Note**  
These metrics are published to CloudWatch only if there is load on the DB instance.

You can examine these metrics using the CloudWatch console, the AWS CLI, or the CloudWatch API. You can also examine other Performance Insights counter metrics using a special metric math function. For more information, see [Querying other Performance Insights counter metrics in CloudWatch](#USER_PerfInsights.Cloudwatch.ExtraMetrics).

For example, you can get the statistics for the `DBLoad` metric by running the [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) command.

```
aws cloudwatch get-metric-statistics \
    --region us-west-2 \
    --namespace AWS/RDS \
    --metric-name DBLoad  \
    --period 60 \
    --statistics Average \
    --start-time 1532035185 \
    --end-time 1532036185 \
    --dimensions Name=DBInstanceIdentifier,Value=db-loadtest-0
```

This example generates output similar to the following.

```
{
		"Datapoints": [
		{
		"Timestamp": "2021-07-19T21:30:00Z",
		"Unit": "None",
		"Average": 2.1
		},
		{
		"Timestamp": "2021-07-19T21:34:00Z",
		"Unit": "None",
		"Average": 1.7
		},
		{
		"Timestamp": "2021-07-19T21:35:00Z",
		"Unit": "None",
		"Average": 2.8
		},
		{
		"Timestamp": "2021-07-19T21:31:00Z",
		"Unit": "None",
		"Average": 1.5
		},
		{
		"Timestamp": "2021-07-19T21:32:00Z",
		"Unit": "None",
		"Average": 1.8
		},
		{
		"Timestamp": "2021-07-19T21:29:00Z",
		"Unit": "None",
		"Average": 3.0
		},
		{
		"Timestamp": "2021-07-19T21:33:00Z",
		"Unit": "None",
		"Average": 2.4
		}
		],
		"Label": "DBLoad"
		}
```

For more information about CloudWatch, see [What is Amazon CloudWatch?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) in the *Amazon CloudWatch User Guide*. 

## Querying other Performance Insights counter metrics in CloudWatch
<a name="USER_PerfInsights.Cloudwatch.ExtraMetrics"></a>

**Note**  
If you enable the Advanced mode of Database Insights, Amazon RDS publishes Performance Insights counter metrics to Amazon CloudWatch. With Database Insights, you don't need to use the `DB_PERF_INSIGHTS` metric math function. You can use the CloudWatch Database Insights dashboard to search, query, and set alarms for Performance Insights counter metrics.

You can query, alarm, and graphs on RDS Performance Insights metrics from CloudWatch. You can access information about your DB cluster by using the `DB_PERF_INSIGHTS` metric math function for CloudWatch. This function allows you to use the Performance Insights metrics that are not directly reported to CloudWatch to create a new time series.

You can use the new Metric Math function by clicking on the **Add Math** drop-down menu in the **Select metric** screen in the CloudWatch console. You can use it to create alarms and graphs on Performance Insights metrics or on combinations of CloudWatch and Performance Insights metrics, including high-resolution alarms for sub-minute metrics. You can also use the function programmatically by including the Metric Math expression in a [https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-data.html](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-data.html) request. For more information, see [Metric math syntax and functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax-functions-list) and [Create an alarm on Performance Insights counter metrics from an AWS database](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_alarm_database_performance_insights.html).

# Performance Insights counter metrics
<a name="USER_PerfInsights_Counters"></a>

Counter metrics are operating system and database performance metrics in the Performance Insights dashboard. To help identify and analyze performance problems, you can correlate counter metrics with DB load. You must append a statistic function to the metric to get the metric values. For example, the supported functions for `os.memory.active` metric are `.avg`, `.min`, `.max`, `.sum`, and `.sample_count`. 

The counter metrics are collected one time each minute. The OS metrics collection depends on whether Enhanced Monitoring is turned on or off. If Enhanced Monitoring is turned off, the OS metrics are collected one time each minute. If Enhanced Monitoring is turned on, the OS metrics are collected for the selected time period. For more information about turning Enhanced Monitoring on or off, see [Turning Enhanced Monitoring on and off](USER_Monitoring.OS.Enabling.md#USER_Monitoring.OS.Enabling.Procedure).

**Topics**
+ [Performance Insights operating system counters](#USER_PerfInsights_Counters.OS)
+ [Performance Insights counters for Aurora MySQL](#USER_PerfInsights_Counters.Aurora_MySQL)
+ [Performance Insights counters for Aurora PostgreSQL](#USER_PerfInsights_Counters.Aurora_PostgreSQL)

## Performance Insights operating system counters
<a name="USER_PerfInsights_Counters.OS"></a>

The following operating system counters, which are prefixed with `os`, are available with Performance Insights for Aurora PostgreSQL and Aurora MySQL.

You can use `ListAvailableResourceMetrics` API for the list of available counter metrics for your DB instance. For more information, see [ ListAvailableResourceMetrics](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_ListAvailableResourceMetrics) in the Amazon RDS Performance Insights API Reference guide.


| Counter | Type | Unit | Metric | Description | 
| --- | --- | --- | --- | --- | 
| Active | Memory | Kilobytes | os.memory.active | The amount of assigned memory, in kilobytes. | 
| Buffers | Memory | Kilobytes | os.memory.buffers | The amount of memory used for buffering I/O requests prior to writing to the storage device, in kilobytes. | 
| Cached | Memory | Kilobytes | os.memory.cached | The amount of memory used for caching file system–based I/O, in kilobytes. | 
| DB Cache | Memory | Bytes | os.memory.db.cache |  The amount of memory used for page cache by database process including tmpfs (shmem), in bytes.  | 
| DB Resident Set Size | Memory | Bytes | os.memory.db.residentSetSize |  The amount of memory used for anonymous and swap cache by database process not including tmpfs (shmem), in bytes.  | 
| DB Swap | Memory | Bytes | os.memory.db.swap |   The amount of memory used for swap by database process, in bytes.  | 
| Dirty | Memory | Kilobytes | os.memory.dirty | The amount of memory pages in RAM that have been modified but not written to their related data block in storage, in kilobytes. | 
| Free | Memory | Kilobytes | os.memory.free | The amount of unassigned memory, in kilobytes. | 
| Huge Pages Free | Memory | Pages | os.memory.hugePagesFree | The number of free huge pages. Huge pages are a feature of the Linux kernel. | 
| Huge Pages Rsvd | Memory | Pages | os.memory.hugePagesRsvd | The number of committed huge pages. | 
| Huge Pages Size | Memory | Kilobytes | os.memory.hugePagesSize | The size for each huge pages unit, in kilobytes. | 
| Huge Pages Surp | Memory | Pages | os.memory.hugePagesSurp | The number of available surplus huge pages over the total. | 
| Huge Pages Total | Memory | Pages | os.memory.hugePagesTotal | The total number of huge pages. | 
| Inactive | Memory | Kilobytes | os.memory.inactive | The amount of least-frequently used memory pages, in kilobytes. | 
| Mapped | Memory | Kilobytes | os.memory.mapped | The total amount of file-system contents that is memory mapped inside a process address space, in kilobytes. | 
| Out of Memory Kill Count | Memory | Kills | os.memory.outOfMemoryKillCount |  The number of OOM kills that happened over the last collection interval.  | 
| Page Tables | Memory | Kilobytes | os.memory.pageTables | The amount of memory used by page tables, in kilobytes. | 
| Slab | Memory | Kilobytes | os.memory.slab | The amount of reusable kernel data structures, in kilobytes. | 
| Total | Memory | Kilobytes | os.memory.total | The total amount of memory, in kilobytes. | 
| Writeback | Memory | Kilobytes | os.memory.writeback | The amount of dirty pages in RAM that are still being written to the backing storage, in kilobytes. | 
| Guest | Cpu Utilization | Percentage | os.cpuUtilization.guest | The percentage of CPU in use by guest programs. | 
| Idle | Cpu Utilization | Percentage | os.cpuUtilization.idle | The percentage of CPU that is idle. | 
| Irq | Cpu Utilization | Percentage | os.cpuUtilization.irq | The percentage of CPU in use by software interrupts. | 
| Nice | Cpu Utilization | Percentage | os.cpuUtilization.nice | The percentage of CPU in use by programs running at lowest priority. | 
| Steal | Cpu Utilization | Percentage | os.cpuUtilization.steal | The percentage of CPU in use by other virtual machines. | 
| System | Cpu Utilization | Percentage | os.cpuUtilization.system | The percentage of CPU in use by the kernel. | 
| Total | Cpu Utilization | Percentage | os.cpuUtilization.total | The total percentage of the CPU in use. This value includes the nice value. | 
| User | Cpu Utilization | Percentage | os.cpuUtilization.user | The percentage of CPU in use by user programs. | 
| Wait | Cpu Utilization | Percentage | os.cpuUtilization.wait | The percentage of CPU unused while waiting for I/O access. | 
|  Aurora Storage Aurora Storage Bytes Rx  | Disk IO | Bytes per second | os.diskIO.auroraStorage.auroraStorageBytesRx |  The number of bytes received from Aurora storage per second.  | 
|  Aurora Storage Aurora Storage Bytes Tx  | Disk IO | Bytes per second | os.diskIO.auroraStorage.auroraStorageBytesTx |  The number of bytes uploaded to aurora storage per second.  | 
|  Aurora Storage Disk Queue Depth  | Disk IO | Requests |  os.diskIO.auroraStorage.diskQueueDepth  |  The length of Aurora storage disk queue.  | 
|  Aurora Storage Read IOs PS  | Disk IO | Requests per second |  os.diskIO.auroraStorage.readIOsPS  | The number of read operations per second. | 
|  Aurora Storage Read Latency  | Disk IO | Milliseconds |  os.diskIO.auroraStorage.readLatency  | The average latency of a read I/O request to Aurora storage, in milliseconds. | 
|  Aurora Storage Read Throughput  | Disk IO | Bytes per second |  os.diskIO.auroraStorage.readThroughput  | The amount of network throughput used by requests to the DB cluster, in bytes per second. | 
|  Aurora Storage Write IOs PS  | Disk IO | Requests per second |  os.diskIO.auroraStorage.writeIOsPS  | The number of write operations per second. | 
|  Aurora Storage Write Latency  | Disk IO | Milliseconds |  os.diskIO.auroraStorage.writeLatency  | The average latency of a write I/O request to Aurora storage, in milliseconds. | 
|  Aurora Storage Write Throughput  | Disk IO | Bytes per second |  os.diskIO.auroraStorage.writeThroughput  | The amount of network throughput used by responses from the DB cluster, in bytes per second. | 
| Rdstemp Avg Queue Len  | Disk IO | Requests |  os.diskIO.rdstemp.avgQueueLen  | The number of requests waiting in the I/O device's queue. | 
|  Rdstemp Avg Req Sz  | Disk IO | Requests |  os.diskIO.rdstemp.avgReqSz  | The number of requests waiting in the I/O device's queue. | 
|  Rdstemp Await  | Disk IO | Milliseconds |  os.diskIO.rdstemp.await  | The number of milliseconds required to respond to requests, including queue time and service time. | 
|  Rdstemp Read IOs PS  | Disk IO | Requests |  os.diskIO.rdstemp.readIOsPS  | The number of read operations per second. | 
|  Rdstemp Read KB  | Disk IO | Kilobytes |  os.diskIO.rdstemp.readKb  | The total number of kilobytes read. | 
|  Rdstemp Read KB PS  | Disk IO | Kilobytes per second |  os.diskIO.rdstemp.readKbPS  | The number of kilobytes read per second. | 
|  Rdstemp Rrqm PS  | Disk IO | Requests per second |  os.diskIO.rdstemp.rrqmPS  | The number of merged read requests queued per second. | 
|  Rdstemp TPS  | Disk IO | Transactions per second |  os.diskIO.rdstemp.tps  | The number of I/O transactions per second. | 
|  Rdstemp Util  | Disk IO | Percentage |  os.diskIO.rdstemp.util  | The percentage of CPU time during which requests were issued. | 
|  Rdstemp Write IOs PS  | Disk IO | Requests per second |  os.diskIO.rdstemp.writeIOsPS  | The number of write operations per second. | 
|  Rdstemp Write KB  | Disk IO | Kilobytes |  os.diskIO.rdstemp.writeKb  | The total number of kilobytes written. | 
|  Rdstemp Write KB PS  | Disk IO | Kilobytes per second |  os.diskIO.rdstemp.writeKbPS  | The number of kilobytes written per second. | 
|  Rdstemp Wrqm PS  | Disk IO | Requests per second |  os.diskIO.rdstemp.wrqmPS  | The number of merged write requests queued per second. | 
| Blocked | Tasks | Tasks | os.tasks.blocked | The number of tasks that are blocked. | 
| Running | Tasks | Tasks | os.tasks.running | The number of tasks that are running. | 
| Sleeping | Tasks | Tasks | os.tasks.sleeping | The number of tasks that are sleeping. | 
| Stopped | Tasks | Tasks | os.tasks.stopped | The number of tasks that are stopped. | 
| Total | Tasks | Tasks | os.tasks.total | The total number of tasks. | 
| Zombie | Tasks | Tasks | os.tasks.zombie | The number of child tasks that are inactive with an active parent task. | 
| One | Load Average Minute | Processes | os.loadAverageMinute.one | The number of processes requesting CPU time over the last minute. | 
| Fifteen | Load Average Minute | Processes | os.loadAverageMinute.fifteen | The number of processes requesting CPU time over the last 15 minutes. | 
| Five | Load Average Minute | Processes | os.loadAverageMinute.five | The number of processes requesting CPU time over the last 5 minutes. | 
| Cached | Swap | Kilobytes | os.swap.cached | The amount of swap memory, in kilobytes, used as cache memory. | 
| Free | Swap | Kilobytes | os.swap.free | The amount of swap memory free, in kilobytes.  | 
| In | Swap | Kilobytes | os.swap.in | The amount of memory, in kilobytes, swapped in from disk. | 
| Out | Swap | Kilobytes | os.swap.out | The amount of memory, in kilobytes, swapped out to disk. | 
| Total | Swap | Kilobytes | os.swap.total |  The total amount of swap memory available in kilobytes.  | 
| Max Files | File Sys | Files | os.fileSys.maxFiles | The maximum number of files that can be created for the file system across all storage volumes. | 
| Used Files | File Sys | Files | os.fileSys.usedFiles | The number of files in the file system across all storage volumes. | 
| Used File Percent | File Sys | Files | os.fileSys.usedFilePercent | The percentage of available files in use across all storage volumes. | 
| Used Percent | File Sys | Percentage | os.fileSys.usedPercent | The percentage of the file-system disk space in use across all storage volumes. | 
| Used | File Sys | Kilobytes | os.fileSys.used | The amount of disk space used by files in the file system across all storage volumes, in kilobytes. | 
| Total | File Sys | Kilobytes | os.fileSys.total | The total disk space available for the file system across all storage volumes, in kilobytes. | 
| Max Files | File Sys | Files | os.fileSys.<volumeName>.maxFiles | The maximum number of files that can be created for the storage volume. | 
| Used Files | File Sys | Files | os.fileSys.<volumeName>.usedFiles | The number of files in the storage volume. | 
| Used File Percent | File Sys | Files | os.fileSys.<volumeName>.usedFilePercent | The percentage of available files in use in the storage volume. | 
| Used Percent | File Sys | Percentage | os.fileSys.<volumeName>.usedPercent | The percentage of the storage volume disk space in use. | 
| Used | File Sys | Kilobytes | os.fileSys.<volumeName>.used | The amount of disk space used by files in the storage volume, in kilobytes. | 
| Total | File Sys | Kilobytes | os.fileSys.<volumeName>.total | The total disk space available in the storage volume, in kilobytes. | 
| Rx | Network | Bytes per second | os.network.rx | The number of bytes received per second. | 
| Tx | Network | Bytes per second | os.network.tx | The number of bytes uploaded per second. | 
| Acu Utilization | General | Percentage | os.general.acuUtilization |  The percentage of current capacity out of the maximum configured capacity.  | 
| Max Configured Acu | General | ACUs | os.general.maxConfiguredAcu |  The maximum capacity configured by the user, in Aurora capacity units (ACUs).  | 
| Min Configured Acu | General | ACUs | os.general.minConfiguredAcu |  The minimum capacity configured by the user, in ACUs.  | 
| Num VCPUs | General | vCPUs | os.general.numVCPUs | The number of virtual CPUs (vCPUs) for the DB instance. | 
| Serverless Database Capacity | General | ACUs | os.general.serverlessDatabaseCapacity |  The current capacity of the instance, in ACUs.  | 

## Performance Insights counters for Aurora MySQL
<a name="USER_PerfInsights_Counters.Aurora_MySQL"></a>

The following database counters are available with Performance Insights for Aurora MySQL.

**Topics**
+ [Native counters for Aurora MySQL](#USER_PerfInsights_Counters.Aurora_MySQL.Native)
+ [Non-native counters for Aurora MySQL](#USER_PerfInsights_Counters.Aurora_MySQL.NonNative)

### Native counters for Aurora MySQL
<a name="USER_PerfInsights_Counters.Aurora_MySQL.Native"></a>

Native metrics are defined by the database engine and not by Amazon Aurora. You can find definitions for these native metrics in [Server status variables](https://dev.mysql.com/doc/refman/8.0/en/server-status-variables.html) in the MySQL documentation.


| Counter | Type | Unit | Metric | 
| --- | --- | --- | --- | 
| Com\$1analyze | SQL | Queries per second | db.SQL.Com\$1analyze | 
| Com\$1optimize | SQL | Queries per second | db.SQL.Com\$1optimize | 
| Com\$1select | SQL | Queries per second | db.SQL.Com\$1select | 
| Innodb\$1rows\$1deleted | SQL | Rows per second | db.SQL.Innodb\$1rows\$1deleted | 
| Innodb\$1rows\$1inserted | SQL | Rows per second | db.SQL.Innodb\$1rows\$1inserted | 
| Innodb\$1rows\$1read | SQL | Rows per second | db.SQL.Innodb\$1rows\$1read | 
| Innodb\$1rows\$1updated | SQL | Rows per second | db.SQL.Innodb\$1rows\$1updated | 
| Queries | SQL | Queries per second | db.SQL.Queries | 
| Questions | SQL | Queries per second | db.SQL.Questions | 
| Select\$1full\$1join | SQL | Queries per second | db.SQL.Select\$1full\$1join | 
| Select\$1full\$1range\$1join | SQL | Queries per second | db.SQL.Select\$1full\$1range\$1join | 
| Select\$1range | SQL | Queries per second | db.SQL.Select\$1range | 
| Select\$1range\$1check | SQL | Queries per second | db.SQL.Select\$1range\$1check | 
| Select\$1scan | SQL | Queries per second | db.SQL.Select\$1scan | 
| Slow\$1queries | SQL | Queries per second | db.SQL.Slow\$1queries | 
| Sort\$1merge\$1passes | SQL | Queries per second | db.SQL.Sort\$1merge\$1passes | 
| Sort\$1range | SQL | Queries per second | db.SQL.Sort\$1range | 
| Sort\$1rows | SQL | Queries per second | db.SQL.Sort\$1rows | 
| Sort\$1scan | SQL | Queries per second | db.SQL.Sort\$1scan | 
| Total\$1query\$1time | SQL | Milliseconds | db.SQL.Total\$1query\$1time | 
| Table\$1locks\$1immediate | Locks | Requests per second | db.Locks.Table\$1locks\$1immediate | 
| Table\$1locks\$1waited | Locks | Requests per second | db.Locks.Table\$1locks\$1waited | 
| Innodb\$1row\$1lock\$1time | Locks | Milliseconds (average) | db.Locks.Innodb\$1row\$1lock\$1time | 
| Aborted\$1clients | Users | Connections | db.Users.Aborted\$1clients | 
| Aborted\$1connects | Users | Connections | db.Users.Aborted\$1connects | 
| Connections | Users | Connections | db.Users.Connections | 
| External\$1threads\$1connected | Users | Connections | db.Users.External\$1threads\$1connected | 
| max\$1connections | Users | Connections | db.Users.max\$1connections | 
| Threads\$1connected | Users | Connections | db.Users.Threads\$1connected | 
| Threads\$1created | Users | Connections | db.Users.Threads\$1created | 
| Threads\$1running | Users | Connections | db.Users.Threads\$1running | 
| Created\$1tmp\$1disk\$1tables | Temp | Tables per second | db.Temp.Created\$1tmp\$1disk\$1tables | 
| Created\$1tmp\$1tables | Temp | Tables per second | db.Temp.Created\$1tmp\$1tables | 
| Innodb\$1buffer\$1pool\$1pages\$1data | Cache | Pages | db.Cache.Innodb\$1buffer\$1pool\$1pages\$1data | 
| Innodb\$1buffer\$1pool\$1pages\$1total | Cache | Pages | db.Cache.Innodb\$1buffer\$1pool\$1pages\$1total | 
| Innodb\$1buffer\$1pool\$1read\$1requests | Cache | Pages per second | db.Cache.Innodb\$1buffer\$1pool\$1read\$1requests | 
| Innodb\$1buffer\$1pool\$1reads | Cache | Pages per second | db.Cache.Innodb\$1buffer\$1pool\$1reads | 
| Opened\$1tables | Cache | Tables | db.Cache.Opened\$1tables | 
| Opened\$1table\$1definitions | Cache | Tables | db.Cache.Opened\$1table\$1definitions | 
| Qcache\$1hits | Cache | Queries | db.Cache.Qcache\$1hits | 

### Non-native counters for Aurora MySQL
<a name="USER_PerfInsights_Counters.Aurora_MySQL.NonNative"></a>

Non-native counter metrics are counters defined by Amazon RDS. A non-native metric can be a metric that you get with a specific query. A non-native metric also can be a derived metric, where two or more native counters are used in calculations for ratios, hit rates, or latencies.


| Counter | Type | Unit | Metric | Description | Definition | 
| --- | --- | --- | --- | --- | --- | 
| active\$1transactions | Transactions | db.Transactions.active\$1transactions | The total active transactions. | SELECT COUNT(1) AS active\$1transactions FROM INFORMATION\$1SCHEMA.INNODB\$1TRX | 
| innodb\$1buffer\$1pool\$1hit\$1rate | Cache | db.Cache.innoDB\$1buffer\$1pool\$1hit\$1rate | The percentage of reads that InnoDB could satisfy from the buffer pool. | 100 \$1 innodb\$1buffer\$1pool\$1read\$1requests / (innodb\$1buffer\$1pool\$1read\$1requests \$1 innodb\$1buffer\$1pool\$1reads) | 
| innodb\$1buffer\$1pool\$1hits | Cache | Pages per second | db.Cache.innoDB\$1buffer\$1pool\$1hits | The number of reads that InnoDB could satisfy from the buffer pool. | innodb\$1buffer\$1pool\$1read\$1requests - innodb\$1buffer\$1pool\$1reads | 
| innodb\$1buffer\$1pool\$1usage | Cache | Percentage | db.Cache.innoDB\$1buffer\$1pool\$1usage |  The percentage of the InnoDB buffer pool that contains data (pages).  When using compressed tables, this value can vary. For more information, see the information about `Innodb_buffer_pool_pages_data` and `Innodb_buffer_pool_pages_total` in [Server status sariables](https://dev.mysql.com/doc/refman/8.0/en/server-status-variables.html) in the MySQL documentation.   | Innodb\$1buffer\$1pool\$1pages\$1data / Innodb\$1buffer\$1pool\$1pages\$1total \$1 100.0 | 
| innodb\$1deadlocks | Locks | db.Locks.innodb\$1deadlocks | The total number of deadlocks. | SELECT COUNT AS innodb\$1deadlocks FROM INFORMATION\$1SCHEMA.INNODB\$1METRICS WHERE NAME='lock\$1deadlocks' | 
| innodb\$1lock\$1timeouts | Locks | db.Locks.innodb\$1lock\$1timeouts | The total number of deadlocks that timed out. | SELECT COUNT AS innodb\$1lock\$1timeouts FROM INFORMATION\$1SCHEMA.INNODB\$1METRICS WHERE NAME='lock\$1timeouts' | 
| innodb\$1row\$1lock\$1waits | Locks | db.Locks.innodb\$1row\$1lock\$1waits | The total number of row locks that resulted in a wait. | SELECT COUNT AS innodb\$1row\$1lock\$1waits FROM INFORMATION\$1SCHEMA.INNODB\$1METRICS WHERE NAME='lock\$1row\$1lock\$1waits' | 
| innodb\$1rows\$1changed | SQL | db.SQL.innodb\$1rows\$1changed | The total InnoDB row operations. | db.SQL.Innodb\$1rows\$1inserted \$1 db.SQL.Innodb\$1rows\$1deleted \$1 db.SQL.Innodb\$1rows\$1updated | 
| query\$1cache\$1hit\$1rate | Cache | Percentage | db.Cache.query\$1cache\$1hit\$1rate | The hit ratio for the MySQL result set cache (query cache). | Qcache\$1hits / (QCache\$1hits \$1 Com\$1select) \$1 100 | 
| temp\$1disk\$1tables\$1percent | Temp | db.Temp.temp\$1disk\$1tables\$1percent | The percentage of temporary tables that are created on disk by the server when running statements. | (db.Temp.Created\$1tmp\$1disk\$1tables / db.Temp.Created\$1tmp\$1tables) \$1 100 | 
| trx\$1rseg\$1history\$1len | Transactions | None | db.Transactions.trx\$1rseg\$1history\$1len | A list of the undo log pages for committed transactions that is maintained by the InnoDB transaction system to implement multi-version concurrency control. For more information about undo log records details, see [https://dev.mysql.com/doc/refman/8.0/en/innodb-multi-versioning.html](https://dev.mysql.com/doc/refman/8.0/en/innodb-multi-versioning.html) in the MySQL documentation. | SELECT COUNT AS trx\$1rseg\$1history\$1len FROM INFORMATION\$1SCHEMA.INNODB\$1METRICS WHERE NAME='trx\$1rseg\$1history\$1len'  | 

## Performance Insights counters for Aurora PostgreSQL
<a name="USER_PerfInsights_Counters.Aurora_PostgreSQL"></a>

The following database counters are available with Performance Insights for Aurora PostgreSQL.

**Topics**
+ [Native counters for Aurora PostgreSQL](#USER_PerfInsights_Counters.Aurora_PostgreSQL.Native)
+ [Non-native counters for Aurora PostgreSQL](#USER_PerfInsights_Counters.Aurora_PostgreSQL.NonNative)

### Native counters for Aurora PostgreSQL
<a name="USER_PerfInsights_Counters.Aurora_PostgreSQL.Native"></a>

Native metrics are defined by the database engine and not by Amazon Aurora. You can find definitions for these native metrics in [Viewing Statistics](https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-STATS-VIEWS) in the PostgreSQL documentation.


| Counter | Type | Unit | Metric | 
| --- | --- | --- | --- | 
| tup\$1deleted | SQL | Tuples per second | db.SQL.tup\$1deleted | 
| tup\$1fetched | SQL | Tuples per second | db.SQL.tup\$1fetched | 
| tup\$1inserted | SQL | Tuples per second | db.SQL.tup\$1inserted | 
| tup\$1returned | SQL | Tuples per second | db.SQL.tup\$1returned | 
| tup\$1updated | SQL | Tuples per second | db.SQL.tup\$1updated | 
| blks\$1hit | Cache | Blocks per second | db.Cache.blks\$1hit | 
| buffers\$1alloc | Cache | Blocks per second | db.Cache.buffers\$1alloc | 
| buffers\$1checkpoint | Checkpoint | Blocks per second | db.Checkpoint.buffers\$1checkpoint | 
| checkpoints\$1req | Checkpoint | Checkpoints per minute | db.Checkpoint.checkpoints\$1req | 
| checkpoint\$1sync\$1time | Checkpoint | Milliseconds per checkpoint | db.Checkpoint.checkpoint\$1sync\$1time | 
| checkpoints\$1timed | Checkpoint | Checkpoints per minute | db.Checkpoint.checkpoints\$1timed | 
| checkpoint\$1write\$1time | Checkpoint | Milliseconds per checkpoint | db.Checkpoint.checkpoint\$1write\$1time | 
| maxwritten\$1clean | Checkpoint | Bgwriter clean stops per minute | db.Checkpoint.maxwritten\$1clean | 
| deadlocks | Concurrency | Deadlocks per minute | db.Concurrency.deadlocks | 
| blk\$1read\$1time | I/O | Milliseconds | db.IO.blk\$1read\$1time | 
| blks\$1read | I/O | Blocks per second | db.IO.blks\$1read | 
| buffers\$1backend | I/O | Blocks per second | db.IO.buffers\$1backend | 
| buffers\$1backend\$1fsync | I/O | Blocks per second | db.IO.buffers\$1backend\$1fsync | 
| buffers\$1clean | I/O | Blocks per second | db.IO.buffers\$1clean | 
| temp\$1bytes | Temp | Bytes per second | db.Temp.temp\$1bytes | 
| temp\$1files | Temp | Files per minute | db.Temp.temp\$1files | 
| xact\$1commit | Transactions | Commits per second | db.Transactions.xact\$1commit | 
| xact\$1rollback | Transactions | Rollbacks per second | db.Transactions.xact\$1rollback | 
| numbackends | User | Connections | db.User.numbackends | 
| archived\$1count | WAL | Files per minute | db.WAL.archived\$1count | 

### Non-native counters for Aurora PostgreSQL
<a name="USER_PerfInsights_Counters.Aurora_PostgreSQL.NonNative"></a>

Non-native counter metrics are counters defined by Amazon Aurora. A non-native metric can be a metric that you get with a specific query. A non-native metric also can be a derived metric, where two or more native counters are used in calculations for ratios, hit rates, or latencies.


| Counter | Type | Unit | Metric | Description | Definition | 
| --- | --- | --- | --- | --- | --- | 
| checkpoint\$1sync\$1latency | Checkpoint | Milliseconds | db.Checkpoint.checkpoint\$1sync\$1latency | The total amount of time that has been spent in the portion of checkpoint processing where files are synchronized to disk. | checkpoint\$1sync\$1time / (checkpoints\$1timed \$1 checkpoints\$1req) | 
| checkpoint\$1write\$1latency | Checkpoint | Milliseconds | db.Checkpoint.checkpoint\$1write\$1latency | The total amount of time that has been spent in the portion of checkpoint processing where files are written to disk. | checkpoint\$1write\$1time / (checkpoints\$1timed \$1 checkpoints\$1req) | 
| local\$1blks\$1read | I/O | Blocks | db.IO.local\$1blks\$1read | Total number of local blocks read. | Not applicable | 
| local\$1blk\$1read\$1time | I/O | Milliseconds | db.IO.local\$1blk\$1read\$1time | If track\$1io\$1timing is enabled, it tracks the total time spent reading local data file blocks, in milliseconds, otherwise the value is zero. For more information, see [track\$1io\$1timing](https://www.postgresql.org/docs/current/runtime-config-statistics.html#GUC-TRACK-IO-TIMING). | Not applicable | 
| num\$1blocked\$1sessions | Locks | db.Locks.num\$1blocked\$1sessions | The number of blocked sessions. | – | 
| orcache\$1blks\$1hit | I/O | Queries | db.IO.orcache\$1blks\$1hit | Total number of shared blocks hits from optimized reads cache. | Not applicable | 
| orcache\$1blk\$1read\$1time | I/O | Milliseconds | db.IO.orcache\$1blk\$1read\$1time | If track\$1io\$1timing is enabled, it tracks the total time spent reading data file blocks from Optimized Reads cache, in milliseconds, otherwise the value is zero. For more information, see [track\$1io\$1timing](https://www.postgresql.org/docs/current/runtime-config-statistics.html#GUC-TRACK-IO-TIMING). | Not applicable | 
| read\$1latency | I/O | Milliseconds | db.IO.read\$1latency | The time spent reading data file blocks by backends in this instance. | blk\$1read\$1time / blks\$1read | 
| storage\$1blks\$1read | I/O | Blocks | db.IO.storage\$1blks\$1read | Total number of shared blocks read from aurora storage. | Not applicable | 
| storage\$1blk\$1read\$1time | I/O | Milliseconds | db.IO.storage\$1blk\$1read\$1time | If track\$1io\$1timing is enabled, it tracks the total time spent reading data file blocks from Aurora storage, in milliseconds, otherwise the value is zero. For more information, see [track\$1io\$1timing](https://www.postgresql.org/docs/current/runtime-config-statistics.html#GUC-TRACK-IO-TIMING). | Not applicable | 
| num\$1blocked\$1sessions | Locks | db.Locks.num\$1blocked\$1sessions | The number of blocked sessions. | – | 
| active\$1count | State | Sessions | db.state.active\$1count | The number of sessions in the active state. | Not applicable | 
| idle\$1count | State | Sessions | db.state.idle\$1count | The number of sessions in the idle state. | Not applicable | 
| idle\$1in\$1transaction\$1aborted\$1count | State | Sessions | db.state.idle\$1in\$1transaction\$1aborted\$1count | The number of sessions in the idle in transaction (aborted) state. | Not applicable | 
| idle\$1in\$1transaction\$1count | State | Sessions | db.state.idle\$1in\$1transaction\$1count | The number of sessions in the idle in transaction state. | Not applicable | 
| idle\$1in\$1transaction\$1max\$1time | State | Seconds | db.state.idle\$1in\$1transaction\$1max\$1time | The duration of the longest running transaction in the idle in transaction state, in seconds. | Not applicable | 
| logical\$1reads | SQL | Blocks | db.SQL.logical\$1reads | The total number of blocks hit and read. | blks\$1hit \$1 blks\$1read | 
| queries\$1started | SQL | Queries | db.SQL.queries | The number of queries started. | Not applicable | 
| queries\$1finished | SQL | Queries | db.SQL.queries | The number of queries finished. | Not applicable | 
| total\$1query\$1time | SQL | Milliseconds | db.SQL.total\$1query\$1time | The total time spent executing statements, in milliseconds. | Not applicable | 
| active\$1transactions | Transactions | Transactions | db.Transactions.active\$1transactions | The number of active transactions. | Not applicable | 
| blocked\$1transactions | Transactions | Transactions | db.Transactions.blocked\$1transactions | The number of blocked transactions. | Not applicable | 
| commit\$1latency | Transactions | Microseconds | db.Transactions.commit\$1latency | The average duration of commit operations. | db.Transactions.duration\$1commits / db.Transactions.xact\$1commit | 
| duration\$1commits | Transactions | Milliseconds | db.Transactions.duration\$1commits | The total transaction time spent in the last minute, in milliseconds. | Not applicable | 
| max\$1used\$1xact\$1ids | Transactions | Transactions | db.Transactions.max\$1used\$1xact\$1ids | The number of transactions that haven't been vacuumed. | Not applicable | 
| oldest\$1inactive\$1logical\$1replication\$1slot\$1xid\$1age | Transactions | Length | db.Transactions.oldest\$1inactive\$1logical\$1replication\$1slot\$1xid\$1age | The age of the oldest transaction in an inactive logical replication slot. | Not applicable | 
| oldest\$1active\$1logical\$1replication\$1slot\$1xid\$1age | Transactions | Length | db.Transactions.oldest\$1active\$1logical\$1replication\$1slot\$1xid\$1age | The age of the oldest transaction in an active logical replication slot. | Not applicable | 
| oldest\$1reader\$1feedback\$1xid\$1age | Transactions | Length | db.Transactions.oldest\$1reader\$1feedback\$1xid\$1age | The age of the oldest transaction of a long‐running transaction on an Aurora reader instance or Aurora global DB reader instance. | Not applicable | 
| oldest\$1prepared\$1transaction\$1xid\$1age | Transactions | Length | db.Transactions.oldest\$1prepared\$1transaction\$1xid\$1age | The age of the oldest prepared transaction. | Not applicable | 
| oldest\$1running\$1transaction\$1xid\$1age | Transactions | Length | db.Transactions.oldest\$1running\$1transaction\$1xid\$1age | The age of the oldest running transaction. | Not applicable | 
| max\$1connections | Users | Users | db.User.max\$1connections | The maximum number of connections allowed for a database as configured in max\$1connections parameter. | Not applicable | 
| total\$1auth\$1attempts | Users | Users | db.User.total\$1auth\$1attempts | The number of connection attempts to this instance. | Not applicable | 
| archive\$1failed\$1count | WAL | Files per minute | db.WAL.archive\$1failed\$1count | The number of failed attempts for archiving WAL files, in files per minute. | Not applicable | 

# SQL statistics for Performance Insights
<a name="sql-statistics"></a>

*SQL statistics* are performance-related metrics about SQL queries that are collected by Performance Insights. Performance Insights gathers statistics for each second that a query is running and for each SQL call. The SQL statistics are an average for the selected time range.

A SQL digest is a composite of all queries having a given pattern but not necessarily having the same literal values. The digest replaces literal values with a question mark. For example, `SELECT * FROM emp WHERE lname= ?`. This digest might consist of the following child queries:

```
SELECT * FROM emp WHERE lname = 'Sanchez'
SELECT * FROM emp WHERE lname = 'Olagappan'
SELECT * FROM emp WHERE lname = 'Wu'
```

All engines support SQL statistics for digest queries.

For the region, DB engine, and instance class support information for this feature, see [ Amazon Aurora DB engine, Region, and instance class support for Performance Insights features](USER_PerfInsights.Overview.Engines.md#USER_PerfInsights.Overview.PIfeatureEngnRegSupport)

**Topics**
+ [SQL statistics for Aurora MySQL](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.md)
+ [SQL statistics for Aurora PostgreSQL](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.md)

# SQL statistics for Aurora MySQL
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL"></a>

Aurora MySQL collect SQL statistics only at the digest level. No statistics are shown at the statement level.

**Topics**
+ [Digest statistics for Aurora MySQL](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.truncation)
+ [Per-second statistics for Aurora MySQL](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.per-second)
+ [Per-call statistics for Aurora MySQL](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.truncation.per-call)
+ [Primary statistics for Aurora MySQL](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.primary)

## Digest statistics for Aurora MySQL
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.truncation"></a>

Performance Insights collects SQL digest statistics from the `events_statements_summary_by_digest` table. The `events_statements_summary_by_digest` table is managed by your database. 

The digest table doesn't have an eviction policy. When the table is full, the AWS Management Console shows the following message:

```
Performance Insights is unable to collect SQL Digest statistics on new queries because the table events_statements_summary_by_digest is full. 
Please truncate events_statements_summary_by_digest table to clear the issue. Check the User Guide for more details.
```

In this situation, Aurora MySQL doesn't track SQL queries. To address this issue, Performance Insights automatically truncates the digest table when both of the following conditions are met:
+ The table is full.
+ Performance Insights manages the Performance Schema automatically.

  For automatic management, the `performance_schema` parameter must be set to `0` and the **Source** must not be set to `user`. If Performance Insights isn't managing the Performance Schema automatically, see [Overview of the Performance Schema for Performance Insights on Aurora MySQL](USER_PerfInsights.EnableMySQL.md).

In the AWS CLI, check the source of a parameter value by running the [describe-db-parameters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-parameters.html) command.

## Per-second statistics for Aurora MySQL
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.per-second"></a>

The following SQL statistics are available for Aurora MySQL DB clusters.


| Metric | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.count\$1star\$1per\$1sec | Calls per second | 
| db.sql\$1tokenized.stats.sum\$1timer\$1wait\$1per\$1sec | Average latency per second (in ms) | 
| db.sql\$1tokenized.stats.sum\$1select\$1full\$1join\$1per\$1sec | Select full join per second | 
| db.sql\$1tokenized.stats.sum\$1select\$1range\$1check\$1per\$1sec | Select range check per second | 
| db.sql\$1tokenized.stats.sum\$1select\$1scan\$1per\$1sec | Select scan per second | 
| db.sql\$1tokenized.stats.sum\$1sort\$1merge\$1passes\$1per\$1sec | Sort merge passes per second | 
| db.sql\$1tokenized.stats.sum\$1sort\$1scan\$1per\$1sec | Sort scans per second | 
| db.sql\$1tokenized.stats.sum\$1sort\$1range\$1per\$1sec | Sort ranges per second | 
| db.sql\$1tokenized.stats.sum\$1sort\$1rows\$1per\$1sec | Sort rows per second | 
| db.sql\$1tokenized.stats.sum\$1rows\$1affected\$1per\$1sec | Rows affected per second | 
| db.sql\$1tokenized.stats.sum\$1rows\$1examined\$1per\$1sec | Rows examined per second | 
| db.sql\$1tokenized.stats.sum\$1rows\$1sent\$1per\$1sec | Rows sent per second | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1disk\$1tables\$1per\$1sec | Created temporary disk tables per second | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1tables\$1per\$1sec | Created temporary tables per second | 
| db.sql\$1tokenized.stats.sum\$1lock\$1time\$1per\$1sec | Lock time per second (in ms) | 

## Per-call statistics for Aurora MySQL
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.truncation.per-call"></a>

The following metrics provide per call statistics for a SQL statement.


| Metric | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.sum\$1timer\$1wait\$1per\$1call | Average latency per call (in ms)  | 
| db.sql\$1tokenized.stats.sum\$1select\$1full\$1join\$1per\$1call | Select full joins per call | 
| db.sql\$1tokenized.stats.sum\$1select\$1range\$1check\$1per\$1call | Select range check per call | 
| db.sql\$1tokenized.stats.sum\$1select\$1scan\$1per\$1call | Select scans per call | 
| db.sql\$1tokenized.stats.sum\$1sort\$1merge\$1passes\$1per\$1call | Sort merge passes per call | 
| db.sql\$1tokenized.stats.sum\$1sort\$1scan\$1per\$1call | Sort scans per call | 
| db.sql\$1tokenized.stats.sum\$1sort\$1range\$1per\$1call | Sort ranges per call | 
| db.sql\$1tokenized.stats.sum\$1sort\$1rows\$1per\$1call | Sort rows per call | 
| db.sql\$1tokenized.stats.sum\$1rows\$1affected\$1per\$1call | Rows affected per call | 
| db.sql\$1tokenized.stats.sum\$1rows\$1examined\$1per\$1call | Rows examined per call | 
| db.sql\$1tokenized.stats.sum\$1rows\$1sent\$1per\$1call | Rows sent per call | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1disk\$1tables\$1per\$1call | Created temporary disk tables per call | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1tables\$1per\$1call | Created temporary tables per call | 
| db.sql\$1tokenized.stats.sum\$1lock\$1time\$1per\$1call | Lock time per call (in ms) | 

## Primary statistics for Aurora MySQL
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.primary"></a>

The following SQL statistics are available for Aurora MySQL DB clusters.


| Metric | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.count\$1star | Calls | 
| db.sql\$1tokenized.stats.sum\$1timer\$1wait | Wait time (in ms) | 
| db.sql\$1tokenized.stats.sum\$1select\$1full\$1join | Select full join | 
| db.sql\$1tokenized.stats.sum\$1select\$1range\$1check | Select range checks | 
| db.sql\$1tokenized.stats.sum\$1select\$1scan | Select scans | 
| db.sql\$1tokenized.stats.sum\$1sort\$1merge\$1passes | Sort merge passes | 
| db.sql\$1tokenized.stats.sum\$1sort\$1scan | Sort scans | 
| db.sql\$1tokenized.stats.sum\$1sort\$1range | Sort ranges | 
| db.sql\$1tokenized.stats.sum\$1sort\$1rows | Sort rows | 
| db.sql\$1tokenized.stats.sum\$1rows\$1affected | Rows affected | 
| db.sql\$1tokenized.stats.sum\$1rows\$1examined | Rows examined | 
| db.sql\$1tokenized.stats.sum\$1rows\$1sent | Rows sent | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1disk\$1tables | Created temporary disk tables | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1tables | Created temporary tables | 
| db.sql\$1tokenized.stats.sum\$1lock\$1time | Lock time (in ms) | 

# SQL statistics for Aurora PostgreSQL
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL"></a>

For each SQL call and for each second that a query runs, Performance Insights collects SQL statistics. All Aurora engines collect statistics only at the digest-level.

Following, you can find information about digest-level statistics for Aurora PostgreSQL. 

**Topics**
+ [Digest statistics for Aurora PostgreSQL](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.digest)
+ [Per-second digest statistics for Aurora PostgreSQL](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.per-second)
+ [Per-call digest statistics for Aurora PostgreSQL](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.per-call)
+ [Primary statistics for Aurora PostgreSQL](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.primary)

## Digest statistics for Aurora PostgreSQL
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.digest"></a>

To view SQL digest statistics, the `pg_stat_statements` library must be loaded. For Aurora PostgreSQL DB clusters that are compatible with PostgreSQL 10, this library is loaded by default. For Aurora PostgreSQL DB clusters that are compatible with PostgreSQL 9.6, you enable this library manually. To enable it manually, add `pg_stat_statements` to `shared_preload_libraries` in the DB parameter group associated with the DB instance. Then reboot your DB instance. For more information, see [Parameter groups for Amazon Aurora](USER_WorkingWithParamGroups.md).

**Note**  
Performance Insights can only collect statistics for queries in `pg_stat_activity` that aren't truncated. By default, PostgreSQL databases truncate queries longer than 1,024 bytes. To increase the query size, change the `track_activity_query_size` parameter in the DB parameter group associated with your DB instance. When you change this parameter, a DB instance reboot is required.

## Per-second digest statistics for Aurora PostgreSQL
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.per-second"></a>

The following SQL digest statistics are available for Aurora PostgreSQL DB instances.


| Metric | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.calls\$1per\$1sec | Calls per second | 
| db.sql\$1tokenized.stats.rows\$1per\$1sec | Rows per second | 
| db.sql\$1tokenized.stats.total\$1time\$1per\$1sec | Average active executions per second (AAE) | 
| db.sql\$1tokenized.stats.shared\$1blks\$1hit\$1per\$1sec | Block hits per second | 
| db.sql\$1tokenized.stats.shared\$1blks\$1read\$1per\$1sec | Block reads per second | 
| db.sql\$1tokenized.stats.shared\$1blks\$1dirtied\$1per\$1sec | Blocks dirtied per second | 
| db.sql\$1tokenized.stats.shared\$1blks\$1written\$1per\$1sec | Block writes per second | 
| db.sql\$1tokenized.stats.local\$1blks\$1hit\$1per\$1sec | Local block hits per second | 
| db.sql\$1tokenized.stats.local\$1blks\$1read\$1per\$1sec | Local block reads per second | 
| db.sql\$1tokenized.stats.local\$1blks\$1dirtied\$1per\$1sec | Local block dirtied per second | 
| db.sql\$1tokenized.stats.local\$1blks\$1written\$1per\$1sec | Local block writes per second | 
| db.sql\$1tokenized.stats.temp\$1blks\$1written\$1per\$1sec | Temporary writes per second | 
| db.sql\$1tokenized.stats.temp\$1blks\$1read\$1per\$1sec | Temporary reads per second | 
| db.sql\$1tokenized.stats.blk\$1read\$1time\$1per\$1sec | Average concurrent reads per second | 
| db.sql\$1tokenized.stats.blk\$1write\$1time\$1per\$1sec | Average concurrent writes per second | 

## Per-call digest statistics for Aurora PostgreSQL
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.per-call"></a>

The following metrics provide per call statistics for a SQL statement.


| Metric | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.rows\$1per\$1call | Rows per call | 
| db.sql\$1tokenized.stats.avg\$1latency\$1per\$1call | Average latency per call (in ms) | 
| db.sql\$1tokenized.stats.shared\$1blks\$1hit\$1per\$1call | Block hits per call | 
| db.sql\$1tokenized.stats.shared\$1blks\$1read\$1per\$1call | Block reads per call | 
| db.sql\$1tokenized.stats.shared\$1blks\$1written\$1per\$1call | Block writes per call | 
| db.sql\$1tokenized.stats.shared\$1blks\$1dirtied\$1per\$1call | Blocks dirtied per call | 
| db.sql\$1tokenized.stats.local\$1blks\$1hit\$1per\$1call | Local block hits per call | 
| db.sql\$1tokenized.stats.local\$1blks\$1read\$1per\$1call | Local block reads per call | 
| db.sql\$1tokenized.stats.local\$1blks\$1dirtied\$1per\$1call | Local block dirtied per call | 
| db.sql\$1tokenized.stats.local\$1blks\$1written\$1per\$1call | Local block writes per call | 
| db.sql\$1tokenized.stats.temp\$1blks\$1written\$1per\$1call | Temporary block writes per call | 
| db.sql\$1tokenized.stats.temp\$1blks\$1read\$1per\$1call | Temporary block reads per call | 
| db.sql\$1tokenized.stats.blk\$1read\$1time\$1per\$1call | Read time per call (in ms) | 
| db.sql\$1tokenized.stats.blk\$1write\$1time\$1per\$1call | Write time per call (in ms) | 

## Primary statistics for Aurora PostgreSQL
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.primary"></a>

The following SQL statistics are available for Aurora PostgreSQL DB instances.


| Metric | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.calls | Calls  | 
| db.sql\$1tokenized.stats.rows | Rows  | 
| db.sql\$1tokenized.stats.total\$1time | Total time (in ms) | 
| db.sql\$1tokenized.stats.shared\$1blks\$1hit | Block hits  | 
| db.sql\$1tokenized.stats.shared\$1blks\$1read | Block reads  | 
| db.sql\$1tokenized.stats.shared\$1blks\$1dirtied | Blocks dirtied  | 
| db.sql\$1tokenized.stats.shared\$1blks\$1written | Block writes  | 
| db.sql\$1tokenized.stats.local\$1blks\$1hit | Local block hits  | 
| db.sql\$1tokenized.stats.local\$1blks\$1read | Local block reads  | 
| db.sql\$1tokenized.stats.local\$1blks\$1dirtied | Local blocks dirtied | 
| db.sql\$1tokenized.stats.local\$1blks\$1written | Local block writes  | 
| db.sql\$1tokenized.stats.temp\$1blks\$1written | Temporary writes  | 
| db.sql\$1tokenized.stats.temp\$1blks\$1read | Temporary reads  | 
| db.sql\$1tokenized.stats.blk\$1read\$1time | Average concurrent reads (in ms) | 
| db.sql\$1tokenized.stats.blk\$1write\$1time | Average concurrent writes (in ms) | 

For more information about these metrics, see [pg\$1stat\$1statements](https://www.postgresql.org/docs/current/pgstatstatements.html) in the PostgreSQL documentation.

# OS metrics in Enhanced Monitoring
<a name="USER_Monitoring-Available-OS-Metrics"></a>

Amazon Aurora provides metrics in real time for the operating system (OS) that your DB cluster runs on. Aurora delivers the metrics from Enhanced Monitoring to your Amazon CloudWatch Logs account. The following tables list the OS metrics available using Amazon CloudWatch Logs.



**Topics**
+ [OS metrics for Aurora](#USER_Monitoring-Available-OS-Metrics-RDS)

## OS metrics for Aurora
<a name="USER_Monitoring-Available-OS-Metrics-RDS"></a>

<a name="cloudwatch-os-metrics"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Monitoring-Available-OS-Metrics.html)