Skip to content

Latest commit

 

History

History
45 lines (27 loc) · 1.22 KB

wal-rate.md

File metadata and controls

45 lines (27 loc) · 1.22 KB

监控WAL Rate

WAL Rate是一个很重要的监控指标,标识着数据库的负载大小。

通常来说,WAL Rate就是LSN的导数。

LSN需要转换成Bigint,便于处理,可以直接与0/0做减法得到BIGINT类型的偏移量。

获取WAL位置的方式包括:

-- Master, fail on slave
SELECT pg_current_wal_lsn();

-- Slave, null on master
SELECT pg_last_wal_replay_lsn();

-- Universal
SELECT CASE WHEN pg_is_in_recovery() THEN pg_last_wal_replay_lsn() ELSE pg_current_wal_lsn() END;

当然,这里只是理论上WAL的生成速率,实际上WAL文件占用的大小可以通过

# WAL generate speed, Since 10.0
pg_wal:
  query: "SELECT last_5_min_size_bytes, (SELECT COALESCE(sum(size), 0) FROM pg_catalog.pg_ls_waldir()) AS total_size_bytes
          FROM (SELECT COALESCE(sum(size), 0) AS last_5_min_size_bytes FROM pg_catalog.pg_ls_waldir() WHERE modification > CURRENT_TIMESTAMP - '5 minutes' :: INTERVAL) x;"
  metrics:
  - last_5min_size_bytes:
      usage: "GAUGE"
      description: "Current size in bytes of the last 5 minutes of WAL generation. Includes recycled WALs."
  - total_size_bytes:
      usage: "GAUGE"
      description: "Current size in bytes of the WAL directory"