Performance Insights counter metrics - Amazon Aurora

Performance Insights counter metrics

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 can add 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.

Performance Insights operating system counters

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 in the Amazon RDS Performance Insights API Reference guide.

Counter Type Metric Description
Active Memory os.memory.active The amount of assigned memory, in kilobytes.
Buffers Memory os.memory.buffers The amount of memory used for buffering I/O requests prior to writing to the storage device, in kilobytes.
Cached Memory os.memory.cached The amount of memory used for caching file system–based I/O, in kilobytes.
DB Cache Memory 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 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 os.memory.db.swap

The amount of memory used for swap by database process, in bytes.

Dirty Memory 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 os.memory.free The amount of unassigned memory, in kilobytes.
Huge Pages Free Memory os.memory.hugePagesFree The number of free huge pages. Huge pages are a feature of the Linux kernel.
Huge Pages Rsvd Memory os.memory.hugePagesRsvd The number of committed huge pages.
Huge Pages Size Memory os.memory.hugePagesSize The size for each huge pages unit, in kilobytes.
Huge Pages Surp Memory os.memory.hugePagesSurp The number of available surplus huge pages over the total.
Huge Pages Total Memory os.memory.hugePagesTotal The total number of huge pages.
Inactive Memory os.memory.inactive The amount of least-frequently used memory pages, in kilobytes.
Mapped Memory os.memory.mapped The total amount of file-system contents that is memory mapped inside a process address space, in kilobytes.s
Out of Memory Kill Count Memory os.memory.outOfMemoryKillCount

The number of OOM kills that happened over the last collection interval.

Page Tables Memory os.memory.pageTables The amount of memory used by page tables, in kilobytes.
Slab Memory os.memory.slab The amount of reusable kernel data structures, in kilobytes.
Total Memory os.memory.total The total amount of memory, in kilobytes.
Writeback Memory os.memory.writeback The amount of dirty pages in RAM that are still being written to the backing storage, in kilobytes.
Guest Cpu Utilization os.cpuUtilization.guest The percentage of CPU in use by guest programs.
Idle Cpu Utilization os.cpuUtilization.idle The percentage of CPU that is idle.
Irq Cpu Utilization os.cpuUtilization.irq The percentage of CPU in use by software interrupts.
Nice Cpu Utilization os.cpuUtilization.nice The percentage of CPU in use by programs running at lowest priority.
Steal Cpu Utilization os.cpuUtilization.steal The percentage of CPU in use by other virtual machines.
System Cpu Utilization os.cpuUtilization.system The percentage of CPU in use by the kernel.
Total Cpu Utilization os.cpuUtilization.total The total percentage of the CPU in use. This value includes the nice value.
User Cpu Utilization os.cpuUtilization.user The percentage of CPU in use by user programs.
Wait Cpu Utilization os.cpuUtilization.wait The percentage of CPU unused while waiting for I/O access.
Aurora Storage Aurora Storage Bytes Rx Disk IO os.diskIO.auroraStorage.auroraStorageBytesRx

The number of bytes received for aurora storage per second.

Aurora Storage Aurora Storage Bytes Tx Disk IO os.diskIO.auroraStorage.auroraStorageBytesTx

The number of bytes uploaded for aurora storage per second.

Aurora Storage Disk Queue Depth

Disk IO

os.diskIO.auroraStorage.diskQueueDepth

The length of aurora storage disk queue.

Aurora Storage Read IOs PS

Disk IO

os.diskIO.auroraStorage.readIOsPS

The number of read operations per second.

Aurora Storage Read Latency

Disk IO

os.diskIO.auroraStorage.readLatency

The elapsed time between the submission of a read I/O request and its completion, in milliseconds.

Aurora Storage Read Throughtput

Disk IO

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

os.diskIO.auroraStorage.writeIOsPS

The number of write operations per second.

Aurora Storage Write Latency

Disk IO

os.diskIO.auroraStorage.writeLatency

The average elapsed time between the submission of a write I/O request and its completion, in milliseconds.

Aurora Storage Write Throughput

Disk IO

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

os.diskIO.rdstemp.avgQueueLen

The number of requests waiting in the I/O device's queue.

Rdstemp Avg Req Sz

Disk IO

os.diskIO.rdstemp.avgReqSz

The number of requests waiting in the I/O device's queue.

Rdstemp Await

Disk IO

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

os.diskIO.rdstemp.readIOsPS

The number of read operations per second.

Rdstemp Read KB

Disk IO

os.diskIO.rdstemp.readKb

The total number of kilobytes read.

Rdstemp Read KB PS

Disk IO

os.diskIO.rdstemp.readKbPS

The number of kilobytes read per second.

Rdstemp Rrqm PS

Disk IO

os.diskIO.rdstemp.rrqmPS

The number of merged read requests queued per second.

Rdstemp TPS

Disk IO

os.diskIO.rdstemp.tps

The number of I/O transactions per second.

Rdstemp Util

Disk IO

os.diskIO.rdstemp.util

The percentage of CPU time during which requests were issued.

Rdstemp Write IOs PS

Disk IO

os.diskIO.rdstemp.writeIOsPS

The number of write operations per second.

Rdstemp Write KB

Disk IO

os.diskIO.rdstemp.writeKb

The total number of kilobytes written.

Rdstemp Write KB PS

Disk IO

os.diskIO.rdstemp.writeKbPS

The number of kilobytes written per second.

Rdstemp Wrqm PS

Disk IO

os.diskIO.rdstemp.wrqmPS

The number of merged write requests queued per second.
Blocked Tasks os.tasks.blocked The number of tasks that are blocked.
Running Tasks os.tasks.running The number of tasks that are running.
Sleeping Tasks os.tasks.sleeping The number of tasks that are sleeping.
Stopped Tasks os.tasks.stopped The number of tasks that are stopped.
Total Tasks os.tasks.total The total number of tasks.
Zombie Tasks os.tasks.zombie The number of child tasks that are inactive with an active parent task.
One Load Average Minute os.loadAverageMinute.one The number of processes requesting CPU time over the last minute.
Fifteen Load Average Minute os.loadAverageMinute.fifteen The number of processes requesting CPU time over the last 15 minutes.
Five Load Average Minute os.loadAverageMinute.five The number of processes requesting CPU time over the last 5 minutes.
Cached Swap os.swap.cached The amount of swap memory, in kilobytes, used as cache memory.
Free Swap os.swap.free The amount of swap memory free, in kilobytes.
In Swap os.swap.in The amount of memory, in kilobytes, swapped in from disk.
Out Swap os.swap.out The amount of memory, in kilobytes, swapped out to disk.
Total Swap os.swap.total

The total amount of swap memory available in kilobytes.

Max Files File Sys os.fileSys.maxFiles The maximum number of files that can be created for the file system.
Used Files File Sys os.fileSys.usedFiles The number of files in the file system.
Used File Percent File Sys os.fileSys.usedFilePercent The percentage of available files in use.
Used Percent File Sys os.fileSys.usedPercent The percentage of the file-system disk space in use.
Used File Sys os.fileSys.used The amount of disk space used by files in the file system, in kilobytes.
Total File Sys os.fileSys.total The total number of disk space available for the file system, in kilobytes.
Rx Network os.network.rx The number of bytes received per second.
Tx Network os.network.tx The number of bytes uploaded per second.
Acu Utilization General os.general.acuUtilization

The percentage of current capacity out of the maximum configured capacity.

Max Configured Acu General os.general.maxConfiguredAcu

The maximum capacity configured by the user, in ACUs.

Min Configured Acu General os.general.minConfiguredAcu

The minimum capacity configured by the user, in ACUs.

Num VCPUs General os.general.numVCPUs The number of virtual CPUs for the DB instance.
Serverless Database Capacity General os.general.serverlessDatabaseCapacity

The current capacity of the instance, in ACUs.

Performance Insights counters for Aurora MySQL

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

Native counters for Aurora MySQL

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 in the MySQL documentation.

Counter Type Unit Metric
Com_analyze SQL Queries per second db.SQL.Com_analyze
Com_optimize SQL Queries per second db.SQL.Com_optimize
Com_select SQL Queries per second db.SQL.Com_select
Innodb_rows_deleted SQL Rows per second db.SQL.Innodb_rows_deleted
Innodb_rows_inserted SQL Rows per second db.SQL.Innodb_rows_inserted
Innodb_rows_read SQL Rows per second db.SQL.Innodb_rows_read
Innodb_rows_updated SQL Rows per second db.SQL.Innodb_rows_updated
Queries SQL Queries per second db.SQL.Queries
Questions SQL Queries per second db.SQL.Questions
Select_full_join SQL Queries per second db.SQL.Select_full_join
Select_full_range_join SQL Queries per second db.SQL.Select_full_range_join
Select_range SQL Queries per second db.SQL.Select_range
Select_range_check SQL Queries per second db.SQL.Select_range_check
Select_scan SQL Queries per second db.SQL.Select_scan
Slow_queries SQL Queries per second db.SQL.Slow_queries
Sort_merge_passes SQL Queries per second db.SQL.Sort_merge_passes
Sort_range SQL Queries per second db.SQL.Sort_range
Sort_rows SQL Queries per second db.SQL.Sort_rows
Sort_scan SQL Queries per second db.SQL.Sort_scan
Total_query_time SQL Milliseconds db.SQL.Total_query_time
Table_locks_immediate Locks Requests per second db.Locks.Table_locks_immediate
Table_locks_waited Locks Requests per second db.Locks.Table_locks_waited
Innodb_row_lock_time Locks Milliseconds (average) db.Locks.Innodb_row_lock_time
Aborted_clients Users Connections db.Users.Aborted_clients
Aborted_connects Users Connections db.Users.Aborted_connects
Connections Users Connections db.Users.Connections
External_threads_connected Users Connections db.Users.External_threads_connected
max_connections Users Connections db.User.max_connections
Threads_connected Users Connections db.Users.Threads_connected
Threads_created Users Connections db.Users.Threads_created
Threads_running Users Connections db.Users.Threads_running
Created_tmp_disk_tables Temp Tables per second db.Temp.Created_tmp_disk_tables
Created_tmp_tables Temp Tables per second db.Temp.Created_tmp_tables
Innodb_buffer_pool_pages_data Cache Pages db.Cache.Innodb_buffer_pool_pages_data
Innodb_buffer_pool_pages_total Cache Pages db.Cache.Innodb_buffer_pool_pages_total
Innodb_buffer_pool_read_requests Cache Pages per second db.Cache.Innodb_buffer_pool_read_requests
Innodb_buffer_pool_reads Cache Pages per second db.Cache.Innodb_buffer_pool_reads
Opened_tables Cache Tables db.Cache.Opened_tables
Opened_table_definitions Cache Tables db.Cache.Opened_table_definitions
Qcache_hits Cache Queries db.Cache.Qcache_hits

Non-native counters for Aurora MySQL

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 Metric Description Definition
innodb_buffer_pool_hits Cache db.Cache.innoDB_buffer_pool_hits The number of reads that InnoDB could satisfy from the buffer pool. innodb_buffer_pool_read_requests - innodb_buffer_pool_reads
innodb_buffer_pool_hit_rate Cache db.Cache.innoDB_buffer_pool_hit_rate The percentage of reads that InnoDB could satisfy from the buffer pool. 100 * innodb_buffer_pool_read_requests / (innodb_buffer_pool_read_requests + innodb_buffer_pool_reads)
innodb_buffer_pool_usage Cache db.Cache.innoDB_buffer_pool_usage

The percentage of the InnoDB buffer pool that contains data (pages).

Note

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 in the MySQL documentation.

Innodb_buffer_pool_pages_data / Innodb_buffer_pool_pages_total * 100.0
query_cache_hit_rate Cache db.Cache.query_cache_hit_rate The hit ratio for the MySQL result set cache (query cache). Qcache_hits / (QCache_hits + Com_select) * 100
innodb_rows_changed SQL db.SQL.innodb_rows_changed The total InnoDB row operations. db.SQL.Innodb_rows_inserted + db.SQL.Innodb_rows_deleted + db.SQL.Innodb_rows_updated
active_transactions Transactions db.Transactions.active_transactions The total active transactions. SELECT COUNT(1) AS active_transactions FROM INFORMATION_SCHEMA.INNODB_TRX
trx_rseg_history_len Transactions db.Transactions.trx_rseg_history_len 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 in the MySQL documentation. SELECT COUNT AS trx_rseg_history_len FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME='trx_rseg_history_len'
innodb_deadlocks Locks db.Locks.innodb_deadlocks The total number of deadlocks. SELECT COUNT AS innodb_deadlocks FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME='lock_deadlocks'
innodb_lock_timeouts Locks db.Locks.innodb_lock_timeouts The total number of deadlocks that timed out. SELECT COUNT AS innodb_lock_timeouts FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME='lock_timeouts'
innodb_row_lock_waits Locks db.Locks.innodb_row_lock_waits The total number of row locks that resulted in a wait. SELECT COUNT AS innodb_row_lock_waits FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME='lock_row_lock_waits'

Performance Insights counters for Aurora PostgreSQL

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

Native Counters for Aurora PostgreSQL

Native metrics are defined by the database engine and not by Amazon Aurora. You can find definitions for these native metrics in Viewing Statistics in the PostgreSQL documentation.

Counter Type Unit Metric
queries_started SQL Queries per second db.SQL.queries
total_query_time SQL Milliseconds db.SQL.total_query_time
tup_deleted SQL Tuples per second db.SQL.tup_deleted
tup_fetched SQL Tuples per second db.SQL.tup_fetched
tup_inserted SQL Tuples per second db.SQL.tup_inserted
tup_returned SQL Tuples per second db.SQL.tup_returned
tup_updated SQL Tuples per second db.SQL.tup_updated
blks_hit Cache Blocks per second db.Cache.blks_hit
buffers_alloc Cache Blocks per second db.Cache.buffers_alloc
buffers_checkpoint Checkpoint Blocks per second db.Checkpoint.buffers_checkpoint
checkpoints_req Checkpoint Checkpoints per minute db.Checkpoint.checkpoints_req
checkpoint_sync_time Checkpoint Milliseconds per checkpoint db.Checkpoint.checkpoint_sync_time
checkpoints_timed Checkpoint Checkpoints per minute db.Checkpoint.checkpoints_timed
checkpoint_write_time Checkpoint Milliseconds per checkpoint db.Checkpoint.checkpoint_write_time
maxwritten_clean Checkpoint Bgwriter clean stops per minute db.Checkpoint.maxwritten_clean
deadlocks Concurrency Deadlocks per minute db.Concurrency.deadlocks
blk_read_time I/O Milliseconds db.IO.blk_read_time
blks_read I/O Blocks per second db.IO.blks_read
buffers_backend I/O Blocks per second db.IO.buffers_backend
buffers_backend_fsync I/O Blocks per second db.IO.buffers_backend_fsync
buffers_clean I/O Blocks per second db.IO.buffers_clean
idle_in_transaction_aborted_count State Sessions db.State.idle_in_transaction_aborted_count
idle_in_transaction_count State Sessions db.State.idle_in_transaction_count
idle_in_transaction_max_time State Seconds db.State.idle_in_transaction_max_time
temp_bytes Temp Bytes per second db.Temp.temp_bytes
temp_files Temp Files per minute db.Temp.temp_files
active_transactions Transactions Transactions db.Transactions.active_transactions
blocked_transactions Transactions Transactions db.Transactions.blocked_transactions
duration_commits Transactions Milliseconds db.Transactions.duration_commits
max_used_xact_ids Transactions Transactions db.Transactions.max_used_xact_ids
xact_commit Transactions Commits per second db.Transactions.xact_commit
xaxt_rollback Transactions Rollbacks per second db.Transactions.xact_rollback
max_connections Users Connections db.User.max_connections
numbackends User Connections db.User.numbackends
total_auth_attempts User Connections per minute db.User.total_auth_attempts
archived_count WAL Files per minute db.WAL.archived_count
archive_failed_count WAL Files per minute db.WAL.archive_failed_count

Non-native counters for Aurora PostgreSQL

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 Metric Description Definition
logical_reads SQL db.SQL.logical_reads The total number of blocks hit and read. blks_hit + blks_read
checkpoint_sync_latency Checkpoint db.Checkpoint.checkpoint_sync_latency The total amount of time that has been spent in the portion of checkpoint processing where files are synchronized to disk. checkpoint_sync_time / (checkpoints_timed + checkpoints_req)
checkpoint_write_latency Checkpoint db.Checkpoint.checkpoint_write_latency The total amount of time that has been spent in the portion of checkpoint processing where files are written to disk. checkpoint_write_time / (checkpoints_timed + checkpoints_req)
commit_latency Transactions db.Transactions.commit_latency The average duration of commit operations. db.Transactions.duration_commits / db.Transactions.xact_commit
local_blks_read I/O db.IO.local_blks_read Total number of local blocks read.
local_blk_read_time I/O db.IO.local_blk_read_time If track_io_timing 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_io_timing.
orcache_blks_hit I/O db.IO.orcache_blks_hit Total number of shared blocks hits from optimized reads cache.
orcache_blk_read_time I/O db.IO.orcache_blk_read_time If track_io_timing 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_io_timing.
read_latency I/O db.IO.read_latency The time spent reading data file blocks by backends in this instance. blk_read_time / blks_read
storage_blks_read I/O db.IO.storage_blks_read Total number of shared blocks read from aurora storage.
storage_blk_read_time I/O db.IO.storage_blk_read_time If track_io_timing 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_io_timing.