Prometheus 中的 PostgreSQL 监控指标

四月 24, 2024

摘要:本文包含了 postgres_exporter 收集的指标相关的详细信息。

下表包含了有关 postgres_exporter 收集的指标的详细信息。

PostgreSQL 集群指标

项目 指标组 指标 类型 描述
1 pg_postmaster start_time_seconds GAUGE postmaster 启动的时间
2 pg_replication
lag GAUGE 复制滞后于主机的秒数
is_replica GAUGE 指示此主机是否为从机
3 pg_stat_user_tables
datname LABEL 当前数据库的名称
schemaname LABEL 此表所在的模式的名称
relname LABEL 此表的名称
seq_scan COUNTER 在此表上启动的顺序扫描数
seq_tup_read COUNTER 顺序扫描获取的有效行数
idx_scan COUNTER 在此表上启动的索引扫描数
idx_tup_fetch COUNTER 索引扫描获取的有效行数
n_tup_ins COUNTER 插入的行数
n_tup_upd COUNTER 更新的行数
n_tup_del COUNTER 删除的行数
n_tup_hot_upd COUNTER HOT 更新的行数(即,不需要单独更新索引)
n_live_tup GAUGE 估计的有效行数
n_dead_tup GAUGE 估计的死行数
n_mod_since_analyze GAUGE 自上次分析以来估计的更改行数
last_vacuum GAUGE 上次手动 VACUUM 此表的时间(不计算 VACUUM FULL)
last_autovacuum GAUGE 上次 autovacuum 守护进程 VACUUM 此表的时间
last_analyze GAUGE 上次手动分析此表的时间
last_autoanalyze GAUGE 上次 autovacuum 守护进程分析此表的时间
vacuum_count COUNTER 手动 VACUUM 此表的次数(不包括 VACUUM FULL)
autovacuum_count COUNTER autovacuum 守护进程 VACUUM 此表的次数
analyze_count COUNTER 手动分析此表的次数
autoanalyze_count COUNTER autovacuum 守护进程分析此表的次数
4 pg_statio_user_tables
datname LABEL 当前数据库的名称
schemaname LABEL 此表所在的模式的名称
relname LABEL 此表的名称
heap_blks_read COUNTER 从此表中读取的磁盘块数
heap_blks_hit COUNTER 此表中的缓冲区命中数
idx_blks_read COUNTER 从此表上的所有索引读取的磁盘块数
idx_blks_hit COUNTER 此表上所有索引中的缓冲区命中数
toast_blks_read COUNTER 从此表的 TOAST 表(如果有)读取的磁盘块数
toast_blks_hit COUNTER 此表的 TOAST 表(如果有)中的缓冲区命中数
tidx_blks_read COUNTER 从此表的 TOAST 表索引(如果有)读取的磁盘块数
tidx_blks_hit COUNTER 此表的 TOAST 表索引(如果有)中的缓冲区命中数
5 pg_database
datname LABEL 数据库的名称
size_bytes GAUGE 数据库使用的磁盘空间
6 pg_archiver
pending_wal_count GAUGE 待归档的 WAL 文件数
7 pg_stat_user_indexes
schemaname LABEL 此表所在的模式的名称
relname LABEL 此索引的表的名称
indexrelname LABEL 此索引的名称
idx_scan COUNTER 在此索引上启动的索引扫描次数
idx_tup_read COUNTER 扫描此索引返回的索引条目数
idx_tup_fetch COUNTER 使用此索引进行简单索引扫描时,获取的有效表行数
8 pg_statio_user_indexes
schemaname LABEL 此表所在的模式的名称
relname LABEL 此索引的表的名称
indexrelname LABEL 此索引的名称
idx_blks_read COUNTER 从此索引读取的磁盘块数
idx_blks_hit COUNTER 此索引中的缓冲区命中数
9 pg_total_relation_size
datname LABEL 数据库名称
schemaname LABEL 此表所在的模式的名称
relname LABEL 此表的名称
bytes GAUGE 指定的表和关联的索引,总共占用的磁盘空间
10 pg_blocked
type LABEL 锁类型
datname LABEL 数据库名称
schemaname LABEL 阻塞的查询所在的模式
reltype LABEL 关系的类型
relname LABEL 阻塞的查询所在的关系
queries GAUGE 当前阻塞的查询数
11 pg_oldest_blocked
age_seconds GAUGE 当前任何事务在锁上等待的最长秒数
datname LABEL 数据库名称
12 pg_slow
queries GAUGE 当前的慢查询数
datname LABEL 数据库名称
13 pg_long_running_transactions
datname LABEL 数据库名称
queries GAUGE 当前长时间运行的事务数
age_in_seconds GAUGE 当前最大的事务年龄(以秒为单位)
14 pg_vacuum
datname LABEL 数据库名称
queries GAUGE 当前的 VACUUM 查询数
age_in_seconds GAUGE 当前最大的 VACUUM 查询年龄(以秒为单位)
15 pg_vacuum_analyze
datname LABEL 数据库名称
queries GAUGE 当前的 VACUUM ANALYZE 查询数
age_in_seconds GAUGE 当前最大的 VACUUM ANALYZE 查询年龄(以秒为单位)
16 pg_stuck_idle_in_transaction
datname LABEL 数据库名称
queries GAUGE 当前在事务中处于空闲状态的查询数
17 pg_txid
current COUNTER 用于收集此指标的查询的当前 64 位事务 ID(截断为低位的 52 位)
xmin COUNTER 仍在进行中的最老事务的事务 ID,即既没有提交也没有中止(截断为低位的 52 位)
xmin_age GAUGE 仍未提交或中止的最老事务的年龄,以事务 ID 计量
18 pg_database_datfrozenxid
datname LABEL 数据库名称
age GAUGE 未冻结的最老事务的年龄
19 pg_wal_position
bytes COUNTER 在主实例上生成的或在副本上重放过的 Postgres LSN(日志序列号)(截断为低位的 52 位)
20 pg_replication_slots
slot_name LABEL 槽位名称
slot_type LABEL 槽位类型
active GAUGE 布尔型标志,指示此槽位是否有使用者从它进行流式传输
xmin_age GAUGE 由于此副本而无法 VACUUM 的最老事务的年龄
catalog_xmin_age GAUGE 由于此副本而无法从系统表 VACUUM 的老事务的年龄(逻辑复制时使用)
restart_lsn_bytes GAUGE 在 xlog 中,此副本为了完成恢复可能需要的数据量
confirmed_flush_lsn_bytes GAUGE 在 xlog 中,此副本尚未收到的数据量
21 pg_stat_ssl
pid LABEL 一个后端或 WAL 发送器进程的进程 ID
active GAUGE 指示此连接是否使用 SSL 的布尔型标志
bits GAUGE 正在使用的加密算法中的位数
compression GAUGE 指示是否正在使用 SSL 压缩的布尔型标志
22 pg_table_bloat
datname LABEL 数据库名称
schemaname LABEL 模式名称
tablename LABEL 表名
real_size GAUGE 表实际大小
extra_size GAUGE 表中未使用/不需要的估计额外空间。此额外空间由填充因子、膨胀和对齐填充空间组成
extra_ratio GAUGE extra_size 使用的实际大小的估计比率
fillfactor GAUGE 表填充因子
bloat_size GAUGE 估计的膨胀空间,不算填充因子保留的额外空间
bloat_ratio GAUGE bloat_size 使用的实际大小的估计比率
is_na GAUGE 估计不适用,如果为 true,则不要相信统计数据
23 pg_index
datname LABEL 数据库名称
schema_name LABEL 模式名称
tblname LABEL 表名
idxname LABEL 索引名称
real_size GAUGE 索引大小
extra_size GAUGE 索引额外大小
extra_ratio GAUGE 索引额外比率
fillfactor GAUGE 填充因子
bloat_size GAUGE 估计索引膨胀大小
bloat_ratio GAUGE 估计索引膨胀大小比率
is_na GAUGE 估计不适用,统计信息不佳
24 pg_replication_status
application_name LABEL 应用程序或节点名称
client_addr LABEL 客户端 IP 地址
state LABEL 客户端复制状态
lag_size_bytes GAUGE 复制滞后大小(以字节为单位)

连接池指标

项目 指标组 指标 类型 描述
1 pgbouncer_show_clients
type LABEL C,代表客户端
user LABEL 客户端连接的用户
database LABEL 数据库名称
state LABEL 客户端连接的状态,处于活动状态或等待状态
addr LABEL 客户端的 IP 地址
port GAUGE 客户端连接到的端口
local_addr LABEL 本地机器上的连接地址
local_port GAUGE 本地机器上的连接端口
connect_time LABEL 连接时间的时间戳
request_time LABEL 最近客户端请求的时间戳
wait GAUGE 当前等待时长(以秒为单位)
wait_us GAUGE 当前等待时长的微秒部分
close_needed GAUGE 不用于客户端
ptr LABEL 此连接的内部对象的地址。用作唯一 ID
link LABEL 与客户端配对的服务端连接地址
remote_pid GAUGE 进程 ID,在客户端通过 Unix 套接字连接时,并且操作系统支持获取它时
tls LABEL 包含 TLS 连接信息的字符串,如果不使用 TLS,则为空
2 pgbouncer_show_pools
database LABEL 数据库名称
user LABEL 用户名
cl_active GAUGE 链接到服务器连接并可以处理查询的客户端连接
cl_waiting GAUGE 已发送查询但尚未建立服务器连接的客户端连接
sv_active GAUGE 链接到一个客户端的服务器连接
sv_idle GAUGE 未使用且可立即用于客户端查询的服务器连接
sv_used GAUGE 闲置超过 server_check_delay 的服务器连接,因此需要执行 server_check_query 检查才能在其上运行
sv_tested GAUGE 当前正在运行 server_reset_query 或 server_check_query 的服务器连接
sv_login GAUGE 当前正在登录的服务器连接
maxwait GAUGE 队列中第一个最老的客户端等待了多长时间(以秒为单位)
maxwait_us GAUGE 最长等待时间的微秒部分
pool_mode LABEL 正在使用的池化模式
3 pgbouncer_show_databases
name LABEL 已配置的数据库条目名称
host LABEL pgbouncer 连接到的主机
port GAUGE pgbouncer 连接到的端口
database LABEL pgbouncer 连接到的实际数据库名称
force_user LABEL 当用户是连接字符串的一部分时,pgbouncer 和 PostgreSQL 之间的连接将强制到给定用户
pool_size GAUGE 最大服务器连接数
reserve_pool GAUGE 此数据库的最大附加连接数
pool_mode LABEL 用于该数据库的 pool_mode
max_connections GAUGE 此数据库允许的最大连接数
current_connections GAUGE 此数据库的当前连接数
paused GAUGE 如果此数据库当前已暂停,则为 1,否则为 0
disabled GAUGE 如果此数据库当前处于禁用状态,则为 1,否则为 0
4 pgbouncer_show_stats_totals
database LABEL 数据库名称
xact_count GAUGE 池化的 SQL 事务数
query_count GAUGE 池化的 SQL 查询数
bytes_received GAUGE 接收的网络流量(以字节为单位)
bytes_sent GAUGE 发送的网络流量(以字节为单位)
xact_time GAUGE pgbouncer 在事务中连接到 PostgreSQL 时花费的微秒数
query_time GAUGE pgbouncer 主动连接到 PostgreSQL 时花费的微秒数
5 pgbouncer_show_stats
database LABEL 数据库名称
total_xact_count GAUGE 池化的 SQL 事务总数
total_query_count GAUGE 池化的 SQL 查询总数
total_received GAUGE 接收的网络流量的总量(以字节为单位)
total_sent GAUGE 发送的网络流量的总量(以字节为单位)
total_xact_time GAUGE pgbouncer 在事务中连接到 PostgreSQL 时花费的总微秒数
total_query_time GAUGE pgbouncer 主动连接到 PostgreSQL 时花费的总微秒数
total_wait_time GAUGE 客户端等待服务器所花费的时间,以微秒为单位
avg_xact_count GAUGE 上一个统计周期内每秒的平均事务数
avg_query_count GAUGE 上一个统计周期内每秒的平均查询数
avg_recv GAUGE 平均每秒从客户端接收的字节数
avg_sent GAUGE 平均每秒发送到客户端的字节数
avg_xact_time GAUGE 平均事务持续时长(以微秒为单位)
avg_query_time GAUGE 平均查询持续时长(以微秒为单位)
avg_wait_time GAUGE 平均每秒客户端等待服务器所花费的时间,以微秒为单位

了解更多

Prometheus 中的 Linux 监控指标

使用 Prometheus 和 Grafana 监控 PostgreSQL

PostgreSQL 监控