Monitor
Learn about the Monitor GUI provided by Pigsty
Pigsty provides a professional and easy-to-use PostgreSQL monitoring system that distills the industry’s monitoring best practices. You can easily modify and customize it; reuse the monitoring infrastructure or integrate it with other monitoring systems. The following table provides quick navigation links to each monitoring panel’s introduction page.
Note: The bolded panels are the monitoring panels provided by Pigsty by default, while the others are additional features provided by the Enterprise Edition.
The default monitoring is sufficient to cover most scenarios, if you need more in-depth control and insight, please contact Business Support
1 - Index
Jump to specific dashboard with one click
Note: The bolded panels are the monitoring panels provided by Pigsty by default, while the others are additional features provided by the Enterprise Edition.
The default monitoring is sufficient to cover most scenarios, if you need more in-depth control and insight, please contact Business Support
2 - Overview
Introduction to overview dashboards
2.1 - Home
Introduction to Pigsty Home Dashboard
Home Dashboard is the default home page for Pigsty.
There are links to other internal systems
You can post announcements, add navigation to your business system, integrate other monitoring panels, etc. here.
2.2 - PG Overview
PG Overview面板简介
PG Overview是总揽整个环境中所有数据库集群的地方。
这里提供了到所有数据库集群与数据库实例的快捷导航,并直观地呈现出整个环境的资源状态,异常事件,系统饱和度等等。
2.3 - PG Shard
PG Shard针对水平分片的并行集群而专门设计。
PG Shard针对水平分片的并行集群而专门设计。
水平分片是Pigsty企业版提供的高级特性,可以将较大(TB到PB)的业务数据拆分为多个水平的业务集群对外提供服务。
2.4 - PG Alert
PG Alert面板简介
PG Alert是总揽整个环境中所有报警信息的地方。包括所有与报警相关指标的快速面板。
2.5 - PG KPI
PG KPI 展示了环境中关键指标的概览
PG KPI 展示了环境中关键指标的概览,您可以在这里快速定位整个环境中的异常。
2.6 - PG Capacity
PG Capacity 展示了数据库的水位状态
PG Capacity 展示了数据库的水位状态,这是Pigsty企业版提供的面板。
2.7 - PG Change
PG Change包含了整个环境中所发布的历史DDL变更。
PG Change包含了整个环境中所发布的历史DDL变更。
该面板必须与 Pigsty 企业版特性: DDL发布系统 共同使用
2.8 - PG Monitor
PG Monitor面板简介
PG Monitor是监控系统的自我监控,包括Grafana,Prometheus,Consul,Nginx的监控。
自我监控属于Pigsty企业版特性。
3 - Cluster
Cluster level dashboards
Cluster Level Monitoring
Cluster level montoring could be the most commonly used Dashboards because cluster is the basic business unit. so the most complete and comprehensive information is aggregated at the cluster level.
Most monitoring charts are generalizations and up-rolls of instance-level monitoring, i.e., they change from showing details within a single instance to showing information about each instance within the cluster and metrics aggregated at the cluster and service levels.
Cluster Overview
Cluster overview at Cluster level has a few more things compared to instance level.
- Timeline and leadership, when a Failover or Switchover occurs in the database, the timeline is stepped and the leadership changes.
- Cluster Topology, the cluster topology shows the replication topology in the cluster and the replication method used (synchronous/asynchronous).
- Cluster Load, which includes the load of the entire cluster in real time, 1 minute, 5 minutes, 15 minutes. and Load1 of each node in the cluster
- Cluster alarms and events.
3.1 - PG Cluster
PG Cluster面板简介
PG Cluster 关注单个集群的整体情况,并提供到其他集群信息的导航。
DB监控:PG集群
PG集群监控是最常用的Dashboard,因为PG以集群为单位提供服务,因此Cluster集合了最完整全面的信息。
大多数监控图都是实例级监控的泛化与上卷,即从展示单个实例内的细节,变为展现集群内每个实例的信息,以及集群和服务层次聚合后的指标。
集群概览
Cluster级别的集群概览相比实例级别多了一些东西:
- 时间线与领导权,当数据库发生Failover或Switchover时,时间线会步进,领导权会发生变化。
- 集群拓扑,集群拓扑展现了集群中的复制拓扑,以及采用的复制方式(同步/异步)。
- 集群负载,包括整个集群实时、1分钟、5分钟、15分钟的负载情况。以及集群中每个节点的Load1
- 集群报警与事件。
集群复制
Cluster级别的Dashboard与Instance级别Dashboard最重要的区别之一就是提供了整个集群的复制全景。包括:
-
集群中的主库与级联桥接库。集群是否启用同步提交,同步从库名称。桥接库与级联库数量,最大从库配置
-
成对出现的Walsender与Walreceiver列表,体现一对主从关系的复制状态
-
以秒和字节衡量的复制延迟(通常1秒的复制延迟对应10M~100M不等的字节延迟),复制槽堆积量。
-
从库视角的复制延迟
-
集群中从库的数量,备份或拉取从库时可以从这里看到异常。
-
集群的LSN进度,用于整体展示集群的复制状态与持久化状态。
节点指标
PG机器的相关指标,按照集群进行聚合。
事务与查询
与实例级别的类似,但添加了Service层次的聚合(一个集群通常提供primary
与standby
两种Service)。
其他指标与实例级别差别不大。
3.2 - PG Cluster Replication
PG Cluster Replication 关注单个集群内的复制活动。
PG Cluster Replication 关注单个集群内的复制活动。
3.3 - PG Cluster Activity
PG Cluster Activity 关注特定集群的活动状态,包括事务,查询,锁,等等。
PG Cluster Activity 关注单个集群的活动,包括事务,查询,锁,等等。
3.4 - PG Cluster Session
PG Cluster Session 关注特定集群中连接、连接池的工作状态。
PG Cluster Session 关注特定集群中连接、连接池的工作状态。
3.5 - PG Cluster Node
PG Cluster Node关注整个集群的机器资源使用情况
PG Cluster Node关注整个集群的机器资源使用情况
3.6 - PG Cluster Persist
PG Cluster Persist 关注集群的持久化,检查点与IO状态。
PG Cluster Persist 关注集群的持久化,检查点与IO状态。
3.7 - PG Cluster Database
PG Cluster Database 关注特定集群中与数据库有关的指标:TPS,增删改查,年龄等。
PG Cluster Activity 关注单个集群的活动,包括事务,查询,锁,等等。
3.8 - PG Cluster Stat
PG Cluster Stat 用于展示集群在过去一段统计周期内的用量信息
PG Cluster Stat 用于展示集群在过去一段统计周期内的用量信息
3.9 - PG Cluster Table
PG Cluster Table 关注单个集群中所有表的增删改查情况
PG Cluster Table 关注单个集群中所有表的增删改查情况
3.10 - PG Cluster Table Detail
PG Cluster Table Detail关注单个集群中某张特定表的增删改查情况
PG Cluster Table Detail关注单个集群中某张特定表的增删改查情况
您可以从该面板跳转到
- PG Cluster Table: 上卷至集群中的所有表
- PG Instance Table Detail:查看这张表在集群中的单个特定实例上的详细状态。
3.11 - PG Cluster Query
PG Cluster Query 关注特定集群内所有的查询状况
PG Cluster Query 关注特定集群内所有的查询状况
DB监控:PG慢查询平台
显示慢查询相关的指标,上方是本实例的查询总览。鼠标悬停查询ID可以看到查询语句,点击查询ID会跳转到对应的查询细分指标页(Query Detail)。
- 左侧是格式化后的查询语句,右侧是查询的主要指标,包括
- 每秒查询数量:QPS
- 实时的平均响应时间(RT Realtime)
- 每次查询平均返回的行数
- 每次查询平均用于BlockIO的时长
- 响应时间的均值,标准差,最小值,最大值(自从上一次统计周期以来)
- 查询最近一天的调用次数,返回行数,总耗时。以及自重置以来的总调用次数。
- 下方是指定时间段的查询指标图表,是概览指标的细化。
3.12 - PG Cluster Health
PG Cluster Health基于规则对集群进行健康度评分
PG Cluster Health基于规则对集群进行健康度评分。
3.13 - PG Cluster Log
PG Cluster Log面板简介
PG Cluster Log 关注单个集群内的所有日志事件。
该面板提供了到外部的日志摘要平台的连接,这是一个Pigsty高级特性,仅在企业版中提供。
3.14 - PG Cluster All
PG Cluster All 包含了集群中所有的监控信息,用于细节对比与分析。
PG Cluster All 包含了集群中所有的监控信息,用于细节对比与分析。
4 - Service
Service level dashboards
服务级监控
一个典型的数据库集群提供两种服务
读写服务:主库
只读服务:从库
而服务往往与域名、解析、负载均衡,路由,流量分发紧密相关
服务级监控主要关注以下内容
-
主从流量分发与权重
-
后端服务器健康检测
-
负载均衡器统计信息
4.1 - PG Service
PG Service关注数据库角色层次的聚合信息,DNS解析,域名,代理流量权重等。
PG Service关注数据库角色层次的聚合信息,DNS解析,域名,代理流量权重等。
4.2 - PG DNS
PG DNS 关注服务域名的解析情况
PG DNS 关注服务域名的解析情况。以及与之绑定的VIP
但是鉴于各个用户定义与管理服务的方式不一,Pigsty不在公开发行版本提供更多关于服务级别的监控面板
5 - Instance
Instance level monitoring dashboards
实例级监控
实例级监控关注于单个实例,无论是一台机器,一个数据库实例,一个连接池实例,还是负载均衡器,指标导出器,都可以在实例级监控中找到最详细的信息。
5.1 - PG Instance
PG Instance 详细展示了单个数据库实例的完整指标信息
PG Instance 详细展示了单个数据库实例的完整指标信息
DB监控:PG实例
实例概览
- 实例身份信息:集群名,ID,所属节点,软件版本,所属集群其他成员等
- 实例配置信息:一些关键配置,目录,端口,配置路径等
- 实例健康信息,实例角色(Primary,Standby)等。
- 黄金指标:PG Load,复制延迟,活跃后端,排队连接,查询延迟,TPS,数据库年龄
- 数据库负载:实时(Load0),1分钟,5分钟,15分钟
- 数据库警报与提醒事件
节点概览
- 四大基本资源:CPU,内存,磁盘,网卡的配置规格,关键功能,与核心指标
- 右侧是网卡详情与磁盘详情
单日统计
以最近1日为周期的统计信息(从当前时刻算起的前24小时),比如最近一天的查询总数,返回的记录总数等。上面两行是节点级别的统计,下面两行是主要是PG相关的统计指标。
对于计量计费,水位评估特别有用。
复制
- 当前节点的Replication配置
- 复制延迟:以秒计,以字节计的复制延迟,复制槽堆积量
- 下游节点对应的Walsender统计
- 各种LSN进度,综合展示集群的复制状况与持久化状态。
- 下游节点数量统计,可以看出复制中断的问题
事务
事务部分用于洞悉实例中的活动情况,包括TPS,响应时间,锁等。
-
TPS概览信息:TPS,TPS与过去两天的DoD环比。DB事务数与回滚数
-
回滚事务数量与回滚率
-
TPS详情:绿色条带为±1σ,黄色条带为±3σ,以过去30分钟作为计算标准,通常超出黄色条带可认为TPS波动过大
-
Xact RT,事务平均响应时间,从连接池抓取。绿色条带为±1σ,黄色条带为±3σ。
-
TPS与RT的偏离程度,是一个无量纲的可横向比较的值,越大表示指标抖动越厉害。$(μ/σ)^2$
-
按照DB细分的TPS与事务响应时间,通常一个实例只有一个DB,但少量实例有多个DB。
-
事务数,回滚数(TPS来自连接池,而这两个指标直接来自DB本身)
-
锁的数量,按模式聚合(8种表锁),按大类聚合(读锁,写锁,排他锁)
查询
大多数指标与事务中的指标类似,不过统计单位从事务变成了查询语句。查询部分可用于分析实例上的慢查询,定位性能瓶颈。
- QPS 每秒查询数,与Query RT查询平均响应时间,以及这两者的波动程度,QPS的周期环比等
- 生产环境对查询平均响应时间有要求:1ms为黄线,100ms为红线
语句
语句展示了查询中按语句细分的指标。每条语句(查询语法树抽离常量变量后如果一致,则算同一条查询)都会有一个查询ID,可以在慢查询平台中获取到具体的语句与详细指标与统计。
- 左侧慢查询列表是按
pg_stat_statments
中的平均响应时间从大到小排序的,点击查询ID会自动跳转到慢查询平台
- 这里列出的查询,是累计查询耗时最长的32个查询,但排除只有零星调用的长耗时单次查询与监控查询。
- 右侧包括了每个查询的实时QPS,平均响应时间。按照RT与总耗时的排名。
后端进程
后端进程用于显示与PG本身的连接,后端进程相关的统计指标。特别是按照各种维度进行聚合的结果,特别适合定位雪崩,慢查询,其他疑难杂症。
- 后端进程数按种类聚合,后端进程按状态聚合,后端进程按DB聚合,后端进程按等待事件类型聚合。
- 活跃状态的进程/连接,在事务中空闲的连接,长事务。
连接池
连接池部分与后端进程部分类似,但全都是从Pgbouncer中间件上获取的监控指标
- 连接池后端连接的状态:活跃,刚用过,空闲,测试过,登录状态。
- 分别按照User,按照DB,按照Pool(User:DB)聚合的前端连接,用于排查异常连接问题。
- 等待客户端数(重要),以及队首客户端等待的时长,用于定位连接堆积问题。
- 连接池可用连接使用比例。
数据库概览
Database部分主要来自pg_stat_database
与pg_database
,包含数据库相关的指标:
- WAL Rate,标识数据库的写入负载,每秒产生的WAL字节数量。
- Buffer Hit Rate,数据库 ShareBuffer 命中率,未命中的页面将从操作系统PageCache和磁盘获取。
- 每秒增删改查的记录条数
- 临时文件数量与临时文件大小,可以定位大型查询问题。
持久化
持久化主要包含数据落盘,Checkpoint,块访问相关的指标
- 重要的持久化参数,比如是否出现数据校验和验证失败(如果启用可以检测到数据腐坏)
- 数据库文件(DB,WAL,Log)的大小与增速。
- 检查点的数量与检查点耗时。
- 每秒分配的块,与每秒刷盘的块。每秒访问的块,以及每秒从磁盘中读取的块。(以字节计,注意一个Buffer Page是8192,一个Disk Block是4096)
监控Exporter
Exporter展示了监控系统组件本身的监控指标,包括:
- Exporter是否存活,Uptime,Exporter每分钟被抓取的次数
- 每个监控查询的耗时,产生的指标数量与错误数量。
5.2 - Node
Detailed metrics for single machine node
Node详细展示了单个机器节点的指标,该面板可用于任何安装有Node Exporter的节点
5.3 - PG Pgbouncer
PG Instance 详细展示了单个数据库实例的完整指标信息
PG Pgbouncer 详细展示了单个数据库连接池实例的完整指标信息
5.4 - PG Proxy
PG Proxy 详细展示了单个数据库代理 Haproxy 的状态信息
PG Proxy 详细展示了单个数据库代理 Haproxy 的状态信息
5.5 - PG Exporter
PG Exporter 详细展示了单个数据库实例的监控指标导出器本身的健康状态
PG Exporter 详细展示了单个数据库实例的监控指标导出器本身的健康状态
5.6 - PG Setting
PG Setting 详细展示了单个数据库实例的配置信息
PG Setting 详细展示了单个数据库实例的完整指标信息
5.7 - PG Stat Activity
PG Stat Activity 详细展示了单个数据库实例内的实时活动
PG Stat Activity 详细展示了单个数据库实例内的实时活动,注意这里的数据是从Catalog中实时获取,而非监控系统采集。
5.8 - PG Stat Statements
PG Stat Statements 详细展示了单个数据库实例内实时的查询状态统计
PG Stat Statements 详细展示了单个数据库实例内实时的查询状态统计
6 - Database
Database level monitoring dashboards
数据库级监控
数据库级监控更像是“业务级”监控,它会展现出系统中每一张表,每一个索引,每一个函数的详细使用情况。
对于业务优化与故障分析而言有着巨大的作用。
但是当心监控信息也可能透露出关键的业务数据,例如对用户表的更新QPS可能反映出业务的日活数。请在生产环境中对Grafana做好权限控制,避免不必要的风险。
6.1 - PG Database
PG Database 关注单个数据库内发生的细节
PG Database 关注单个数据库内发生的详细情况,对于单实例多DB的情况尤其实用。
6.2 - PG Pool
PG Pool关注连接池中的单个User-DB对
PG Pool关注连接池中的单个User-DB对,当您使用多租户特性时,这个面板对于连接池问题的排查会很有帮助。
6.3 - PG Query
PG Query 关注单个数据库内发生的查询细节
PG Query 关注单个数据库内发生的总体查询细节
您可以用本面板定位出实例内的具体异常查询,然后跳转到PG Query Detail面板查看具体查询的详细信息
6.4 - PG Table Catalog
PG Catalog可以直接从数据库目录中获取并展示特定表的元数据
PG Catalog可以直接从数据库目录中获取并展示特定表的元数据
请注意,Catalog类型的信息是直接连接至数据库目录进行查询的,可能导致不必要的安全风险。
6.5 - PG Table
PG Table关注单个数据库中的所有表的增删改查等。
PG Table关注单个数据库中的所有表,增删改查,访问等。
您可以点击具体的表,跳转至PG Table Detail查阅这张表的详细指标。
6.6 - PG Table Detail
PG Table Detail关注单个数据库中的单张表
PG Table Detail关注单个数据库中的单张表
您可以在本面板中跳转至 PG Cluster Table Detail,来了解这张表在整个集群的不同实例上的工作状态。
6.7 - PG Query Detail
PG Query Detail关注单个数据库内发生的单个查询的细节
PG Query Detail关注单个数据库内发生的单个查询的细节。
请注意,这里的查询都使用QueryID进行标识。
您可以使用PG Stat Statementes面板提供的实时查询接口获取查询对应的语句。
直接在面板中展示SQL语句可能会导致不必要的安全风险,但该特性会在Pigsty企业版中提供。
DB监控:PG慢查询平台
显示慢查询相关的指标,上方是本实例的查询总览。鼠标悬停查询ID可以看到查询语句,点击查询ID会跳转到对应的查询细分指标页(Query Detail)。
- 左侧是格式化后的查询语句,右侧是查询的主要指标,包括
- 每秒查询数量:QPS
- 实时的平均响应时间(RT Realtime)
- 每次查询平均返回的行数
- 每次查询平均用于BlockIO的时长
- 响应时间的均值,标准差,最小值,最大值(自从上一次统计周期以来)
- 查询最近一天的调用次数,返回行数,总耗时。以及自重置以来的总调用次数。
- 下方是指定时间段的查询指标图表,是概览指标的细化。