All Products
Search
Document Center

ApsaraDB RDS:Enhanced monitoring

Last Updated:Jun 10, 2026

RDS PostgreSQL provides OS-level and database-level performance metrics that you can view in the ApsaraDB RDS console.

Procedure

  1. Go to the Instances page. In the top navigation bar, select the region in which the RDS instance resides. Then, find the RDS instance and click the ID of the instance.

  2. In the navigation pane on the left, click Monitoring and Alarms.

  3. Select the Enhanced Monitoring tab and click Metric Management. On the OS Metrics and Database Metrics tabs, select the metrics to display. Metric descriptions are in References.

    Note
    • The Enhanced Monitoring page displays up to 30 metrics.

    • You can apply the selected metrics to all RDS PostgreSQL instances in the current region:

      • If the current instance uses cloud disks, the configuration applies to all existing and new cloud disk-based RDS PostgreSQL instances in the region.

      • If the current instance uses high-performance local disks, the configuration applies to all existing and new local disk-based RDS PostgreSQL instances in the region.

  4. Click Update Metrics. The Enhanced Monitoring page displays the selected metrics.

    Enhanced Monitoring appends these suffixes to metric names:

    • metric_name.avg: Average value.

    • metric_name.max: Maximum value.

    • metric_name.min: Minimum value.

  5. The Enhanced Monitoring page provides the following controls.More features

    No.

    Feature

    Description

    Time range

    Query data by predefined or custom time ranges.

    • Predefined time ranges: 30 Minutes, 1 Hour, 2 Hours, 6 Hours, 1 Day, 7 Days, and 30 Days.

    • Custom time range: Start Time (YYYY-MM-DD hh:mm:ss) - End Time (YYYY-MM-DD hh:mm:ss)

    Aggregation method

    Aggregation method for metric results:

    • Average

    • Maximum

    • Minimum

    Layout

    Layout of the monitoring charts:

    • One Column

    • Two Columns

    • Three Columns

    • Four Columns

    Time granularity

    Time interval between data points on the chart x-axis.

    Time granularity varies by time range:

    • If the time range is 1 hour or less, the time granularity is 5 seconds.

    • If the time range is greater than 1 hour and up to 2 hours, the time granularity is 10 seconds.

    • If the time range is greater than 2 hours and up to 6 hours, the time granularity is 30 seconds.

    • If the time range is greater than 6 hours and up to 12 hours, the time granularity is 1 minute.

    • If the time range is greater than 12 hours and up to 1 day, the time granularity is 2 minutes.

    • If the time range is greater than 1 day and up to 5 days, the time granularity is 10 minutes.

    • If the time range is greater than 5 days and up to 15 days, the time granularity is 30 minutes.

    • If the time range is greater than 15 days and up to 30 days, the time granularity is 1 hour.

    Cursor sync

    When enabled, hovering over a data point in one chart syncs the cursor in all other charts to the same time point.

    Refresh

    Manually refreshes all monitoring charts.

References

The following tables list all available OS and database metrics.

Operating system metrics

Metric category

Metric name

Description

Unit

High-performance local disk

Cloud disk

Network traffic

os.network.rx

Inbound network traffic

MB/s

✔️

os.network.tx

Outbound network traffic

MB/s

✔️

CPU utilization

os.cpu_usage.sys

CPU time spent in kernel mode (system).

%

✔️

✔️

os.cpu_usage.user

CPU time spent in user mode.

%

✔️

✔️

os.cpu_usage.total

Total system and user CPU utilization.

%

✔️

✔️

CPU stacked by process

os.cpu_process.backend

CPU usage of backend processes, where 100% represents one full CPU core.

%

✔️

✔️

os.cpu_process.bgwriter

CPU usage of the background writer (bgwriter) process, where 100% represents one full CPU core.

%

✔️

✔️

os.cpu_process.checkpoint

CPU usage of the checkpoint process, where 100% represents one full CPU core.

%

✔️

✔️

os.cpu_process.logger

CPU usage of the logger process, where 100% represents one full CPU core.

%

✔️

✔️

os.cpu_process.pgstat

CPU usage of the statistics collector (pgstat) process, where 100% represents one full CPU core.

%

✔️

✔️

os.cpu_process.walwriter

CPU usage of the WAL writer (walwriter) process, where 100% represents one full CPU core.

%

✔️

✔️

os.cpu_process.autovacuum

CPU usage of autovacuum processes, where 100% represents one full CPU core.

%

✔️

✔️

os.cpu_process.walsender

CPU usage of WAL sender (walsender) processes, where 100% represents one full CPU core.

%

✔️

✔️

os.cpu_process.postmaster

CPU usage of the postmaster process, where 100% represents one full CPU core.

%

✔️

✔️

Memory details

os.mem_size.spec

Specification memory size

MB

✔️

✔️

os.mem_size.used

Used memory

MB

✔️

✔️

os.mem_size.cache

Page cache memory usage

MB

✔️

✔️

os.mem_size.mapped_file

Shared memory usage

MB

✔️

✔️

os.mem_size.rss

RSS memory usage

MB

✔️

✔️

os.mem_size.hugetlb_usage_2m

2 MB huge page usage

MB

✔️

✔️

Memory stacked by process

os.mem_process.backend

Memory usage of backend processes.

MB

✔️

✔️

os.mem_process.bgwriter

Memory usage of the background writer (bgwriter) process.

MB

✔️

✔️

os.mem_process.checkpoint

Memory usage of the checkpoint process.

MB

✔️

✔️

os.mem_process.logger

Memory usage of the logger process.

MB

✔️

✔️

os.mem_process.pgstat

Memory usage of the statistics collector (pgstat) process.

MB

✔️

✔️

os.mem_process.walwriter

Memory usage of the WAL writer (walwriter) process.

MB

✔️

✔️

os.mem_process.autovacuum

Memory usage of autovacuum processes.

MB

✔️

✔️

os.mem_process.walsender

Memory usage of WAL sender (walsender) processes.

MB

✔️

✔️

os.mem_process.postmaster

Memory usage of the postmaster process.

MB

✔️

✔️

Memory utilization

os.mem_usage.total

Total memory utilization

%

✔️

✔️

IOPS

os.iops.total

Disk read/write IOPS

Counts/s

✔️

os.iops.read

Disk read IOPS

Counts/s

✔️

os.iops.write

Disk write IOPS

Counts/s

✔️

os.iops.limit

Disk IOPS baseline limit

Counts/s

✔️

os.iops.burst_limit

Disk IOPS burst limit

Note

This metric is available for high-performance cloud disks with I/O burst enabled.

Counts/s

✔️

os.iops.data

IOPS of the high-performance local data disk

Counts/s

✔️

os.iops.wal

IOPS of the high-performance local WAL file disk

Counts/s

✔️

I/O throughput

os.iothroughput.total

Disk read/write throughput

MB/s

✔️

os.iothroughput.read

Disk read throughput

MB/s

✔️

os.iothroughput.write

Disk write throughput

MB/s

✔️

os.iothroughput.limit

Disk I/O bandwidth baseline limit

MB/s

✔️

os.iothroughput.burst_limit

Disk I/O bandwidth burst limit

Note

This metric is available for high-performance cloud disks with I/O burst enabled.

MB/s

✔️

os.iothroughput.data

Throughput of the high-performance local data disk

MB/s

✔️

os.iothroughput.wal

Throughput of the high-performance local WAL file disk

MB/s

✔️

I/O utilization

os.io_usage.iops_usage

IOPS utilization

%

✔️

os.io_usage.iops_burst_ratio

IOPS burst ratio

%

✔️

os.io_usage.mbps_usage

I/O bandwidth utilization

%

✔️

os.io_usage.mbps_burst_ratio

I/O bandwidth burst ratio

%

✔️

Disk utilization

os.fs_usage.total

Total disk utilization

%

✔️

Disk space

os.fs_size.used

Used disk space

MB

✔️

os.fs_size.total

Total disk space

MB

✔️

os.fs_size.log_dir

The total size of log files, including audit, error, and slow query logs.

MB

✔️

✔️

os.fs_size.wal_dir

Total size of WAL files in the WAL directory.

MB

✔️

✔️

os.fs_size.base_dir

Total size of data files, excluding log and WAL files.

MB

✔️

✔️

Database metrics

Note

These metrics map to PostgreSQL statistics views documented in the official PostgreSQL documentation.

Category

Metric

Description

Unit

Local disk instance

Cloud disk instance

Connections

db.connections.active

Number of active connections

Count

✔️

✔️

db.connections.waiting

Number of waiting connections

Count

✔️

✔️

db.connections.idle

Number of idle connections

Count

✔️

✔️

db.connections.total

Total number of connections

Count

✔️

✔️

db.connections.spec

Maximum connections allowed by the instance specification

Count

✔️

✔️

SQL

db.sql.tup_returned

Rows returned per second

Tuples/s

✔️

✔️

db.sql.tup_fetched

Rows fetched per second

Tuples/s

✔️

✔️

db.sql.tup_inserted

Rows inserted per second

Tuples/s

✔️

✔️

db.sql.tup_deleted

Rows deleted per second

Tuples/s

✔️

✔️

db.sql.tup_updated

Rows updated per second

Tuples/s

✔️

✔️

Slow SQL

db.slow_sql.one_second

Number of SQL statements running for 1 second or longer

Count

✔️

✔️

db.slow_sql.three_seconds

Number of SQL statements running for 3 seconds or longer

Count

✔️

✔️

db.slow_sql.five_seconds

Number of SQL statements running for 5 seconds or longer

Count

✔️

✔️

Long-running transactions

db.long_transactions.active_one_second

Number of transactions active for 1 second or longer

Count

✔️

✔️

db.long_transactions.active_three_seconds

Number of transactions active for 3 seconds or longer

Count

✔️

✔️

db.long_transactions.idle_one_second

Number of transactions idle for 1 second or longer

Count

✔️

✔️

db.long_transactions.idle_three_seconds

Number of transactions idle for 3 seconds or longer

Count

✔️

✔️

db.long_transactions.idle_five_seconds

Number of transactions idle for 5 seconds or longer

Count

✔️

✔️

db.long_transactions.two_pc_one_second

Number of two-phase transactions in the prepared state for 1 second or longer

Count

✔️

✔️

db.long_transactions.two_pc_three_seconds

Number of two-phase transactions in the prepared state for 3 seconds or longer

Count

✔️

✔️

db.long_transactions.two_pc_five_seconds

Number of two-phase transactions in the prepared state for 5 seconds or longer

Count

✔️

✔️

Temporary files

db.temp.temp_files

Number of temporary files created per second

Counts/s

✔️

✔️

Temporary file size

db.temp.temp_bytes

Amount of data written to temporary files per second

Bytes/s

✔️

✔️

Maximum database age

db.age.max_age.

Maximum database age

xids

✔️

✔️

Read-only instance replication lag

db.ro_replica.replay_lag

Replay lag of the read-only instance

s

✔️

✔️

db.ro_replica.write_lag

Write lag of the read-only instance

s

✔️

✔️

db.ro_replica.flush_lag

Flush lag of the read-only instance

s

✔️

✔️

Database memory distribution

db.mem_size.spec

Memory size defined by the instance specification

MB

✔️

✔️

db.mem_size.shared_buffer

Memory usage of shared_buffer

Note

The primary data cache. It grows to 25% of the total memory and then stabilizes.

MB

✔️

✔️

db.mem_size.rss

Resident Set Size (RSS) memory usage

Note

Memory allocated by PostgreSQL processes using malloc. This usage depends on the number of connections and the SQL workload. It elastically shares 75% of the total memory with db.mem_size.cache, typically consuming around 10%.

  • If usage exceeds 75%, an OOM error will occur.

  • As RSS usage increases, the memory available for db.mem_size.cache decreases.

MB

✔️

✔️

db.mem_size.free

Amount of free memory

Note

Completely unused memory. This value approaches zero as PostgreSQL allocates it to db.mem_size.cache to maximize memory use.

MB

✔️

✔️

db.mem_size.cache

Memory usage of the page cache

Note

The secondary data cache. It elastically shares 75% of the total memory with db.mem_size.rss, typically consuming around 65%.

  • This memory can be reclaimed by the OS to prevent OOM errors.

  • To improve memory use, db.mem_size.cache uses the available memory from db.mem_size.free.

MB

✔️

✔️

Available database memory

db.mem_available.size

Amount of available database memory

Note

Available memory = Free memory + Reclaimable cache memory. As db.mem_size.rss increases, the system uses this memory to prevent OOM errors.

MB

✔️

✔️

Available database memory ratio

db.mem_available.ratio

Percentage of available database memory

Note

%

✔️

✔️

SharedBuffers hit ratio

db.buffers.hit_ratio

Cache hit ratio for shared_buffers

%

✔️

✔️

SharedBuffers hit count

db.buffers.blks_hit

Number of hits in shared_buffers per second

Blocks/s

✔️

✔️

IO

db.io.blks_read

Number of disk read operations per second by backend processes (OS buffered read)

Counts/s

✔️

✔️

db.io.buffers_backend

Number of disk write operations per second by backend processes (OS buffered write)

Counts/s

✔️

✔️

db.io.buffers_checkpoint

Number of disk write operations per second by the checkpoint process (OS buffered write)

Counts/s

✔️

✔️

db.io.buffers_clean

Number of disk write operations per second by the background writer (bgwriter) process (OS buffered write)

Counts/s

✔️

✔️

db.io.buffers_backend_fsync

Number of fsync operations per second by backend processes

Counts/s

✔️

✔️

Checkpoint count

db.checkpoint.checkpoints_timed

Number of timed checkpoints per second

Counts/s

✔️

✔️

db.checkpoint.checkpoints_req

Number of requested checkpoints per second

Counts/s

✔️

✔️

Transaction TPS

db.transactions.xact_commit

Number of transactions committed per second

Counts/s

✔️

✔️

db.transactions.xact_rollback

Number of transactions rolled back per second

Counts/s

✔️

✔️

Transaction status

db.transactions.active

Number of active transactions

Count

✔️

✔️

db.transactions.waiting

Number of waiting transactions

Count

✔️

✔️

db.transactions.idle

Number of transactions in the "idle in transaction" state. Note: This is an undesirable state that requires prompt attention.

Count

✔️

✔️

Bloat point

db.swell.swell_time

Bloat point: The execution time of the longest-running transaction

s

✔️

✔️

Replication slot lag

db.slots.max_slot_wal_delay

Maximum WAL replication lag among all replication slots. WAL files beyond the replication point of a slot are retained. A large value indicates WAL accumulation and should be addressed promptly.

MB

✔️

✔️

Checkpoint write time

db.checkpoint.checkpoints_sync_time

Average disk fsync time per second for the checkpoint process

ms/s

✔️

✔️

db.checkpoint.checkpoints_write_time

Average disk write time per second for the checkpoint process (OS buffered write)

ms/s

✔️

✔️

PgBouncer connections

db.pgbouncer.client_connections.active

Number of active client connections

Note

Connection pool metrics are available in Enhanced Monitoring after you enable connection pooling.

Count

✔️

db.pgbouncer.client_connections.waiting

Number of waiting client connections

Count

✔️

db.pgbouncer.server_connections.active

Number of active server connections

Count

✔️

db.pgbouncer.server_connections.idle

Number of idle server connections

Count

✔️

db.pgbouncer.total_pooled_connections

Total number of connections in the connection pool

Count

✔️

db.pgbouncer.num_pools

Number of connection pools

Count

✔️

Related APIs

API

Description

DescribeDBInstancePerformance

Queries performance data for an instance

DescribeAvailableMetrics

Lists available enhanced monitoring metrics

ModifyDBInstanceMetrics

Modifies enhanced monitoring metrics

DescribeDBInstanceMetrics

Queries the enabled enhanced monitoring metrics for an instance