Pigsty提供了专业且易用的PostgreSQL监控系统,浓缩了业界监控的最佳实践。
用户可以方便地进行修改与定制;复用监控基础设施,或与其他监控系统相集成。
注:加粗的面板是Pigsty默认提供的监控面板,其他则是专业版提供的额外特性。
默认监控已经足以覆盖绝大多数场景,如果您需要更加深入的掌控与洞察,请联系 专业支持
Pigsty提供了专业且易用的PostgreSQL监控系统,浓缩了业界监控的最佳实践。
用户可以方便地进行修改与定制;复用监控基础设施,或与其他监控系统相集成。
注:加粗的面板是Pigsty默认提供的监控面板,其他则是专业版提供的额外特性。
默认监控已经足以覆盖绝大多数场景,如果您需要更加深入的掌控与洞察,请联系 专业支持
Home Dashboard是Pigsty的默认主页,包含了到其他系统的导航连接。
您可以在这里发布公告,添加业务系统的导航,集成其他的监控面板等。
PG Overview是总揽整个环境中所有数据库集群的地方。
这里提供了到所有数据库集群与数据库实例的快捷导航,并直观地呈现出整个环境的资源状态,异常事件,系统饱和度等等。
PG Overview的图表主要以集群为基本单位进行呈现,主要用于从全局视角快速定位异常集群。
PG Shard针对水平分片的并行集群而专门设计。
水平分片是Pigsty专业版本提供的高级特性,可以将较大(TB到PB)的业务数据拆分为多个水平的业务集群对外提供服务。
PG Shard提供的指标与PG Overview类似,但会通过预定义的正则表达式筛选出所有同属于一个Shard的所有Cluster。
因此用户可以直观的比较不同分片之间的活动与负载,对于定位数据倾斜问题特别有帮助。
PG Alert是总揽整个环境中所有报警信息的地方。包括所有与报警相关指标的快速面板。
PG KPI 展示了环境中关键指标的概览,您可以在这里快速定位整个环境中的异常指标与异常实例。
PG Capacity 展示了数据库的水位状态,这是Pigsty专业版提供的面板。
PG Change包含了整个环境中所发布的历史DDL变更。
该面板必须与 Pigsty专业版特性: DDL发布系统 共同使用,在此不列出
PG Monitor是监控系统的自我监控,包括Grafana,Prometheus,Consul,Nginx的监控。
自我监控属于Pigsty企业版特性。
PG集群监控是最常用的Dashboard,因为PG以集群为单位提供服务,因此集群层面集合了最完整全面的信息。
大多数监控图都是实例级监控的泛化与上卷,即从展示单个实例内的细节,变为展现集群内每个实例的信息,以及集群和服务层次聚合后的指标。
Cluster级别的集群概览相比实例级别多了一些东西:
PG Cluster 关注单个集群的整体情况,并提供到其他集群信息的导航。
PG集群监控是最常用的Dashboard,因为PG以集群为单位提供服务,因此Cluster集合了最完整全面的信息。
大多数监控图都是实例级监控的泛化与上卷,即从展示单个实例内的细节,变为展现集群内每个实例的信息,以及集群和服务层次聚合后的指标。
Cluster级别的集群概览相比实例级别多了一些东西:
Cluster级别的Dashboard与Instance级别Dashboard最重要的区别之一就是提供了整个集群的复制全景。包括:
集群中的主库与级联桥接库。集群是否启用同步提交,同步从库名称。桥接库与级联库数量,最大从库配置
成对出现的Walsender与Walreceiver列表,体现一对主从关系的复制状态
以秒和字节衡量的复制延迟(通常1秒的复制延迟对应10M~100M不等的字节延迟),复制槽堆积量。
从库视角的复制延迟
集群中从库的数量,备份或拉取从库时可以从这里看到异常。
集群的LSN进度,用于整体展示集群的复制状态与持久化状态。
PG机器的相关指标,按照集群进行聚合。
与实例级别的类似,但添加了Service层次的聚合(一个集群通常提供primary
与standby
两种Service)。
其他指标与实例级别差别不大。
PG Cluster Replication 关注单个集群内的复制活动。
PG Cluster Activity 关注单个集群的活动,包括事务,查询,锁,等等。
PG Cluster Session 关注特定集群中连接、连接池的工作状态。
PG Cluster Node关注整个集群的机器资源使用情况
PG Cluster Persist 关注集群的持久化,检查点与IO状态。
PG Cluster Activity 关注单个集群的活动,包括事务,查询,锁,等等。
PG Cluster Stat 用于展示集群在过去一段统计周期内的用量信息
PG Cluster Table 关注单个集群中所有表的增删改查情况
PG Cluster Table Detail关注单个集群中某张特定表的增删改查情况
您可以从该面板跳转到
PG Cluster Query 关注特定集群内所有的查询状况
显示慢查询相关的指标,上方是本实例的查询总览。鼠标悬停查询ID可以看到查询语句,点击查询ID会跳转到对应的查询细分指标页(Query Detail)。
PG Cluster Health基于规则对集群进行健康度评分。
PG Cluster Log 关注单个集群内的所有日志事件。
该面板提供了到外部的基于Pgbadger的日志摘要平台的连接,这是一个专业版特性(也就是还没弄到开源版里)。
PG Cluster All 包含了集群中所有的监控信息,用于细节对比与分析。
一个典型的数据库集群提供两种服务
读写服务:主库
只读服务:从库
而服务往往与域名、解析、负载均衡,路由,流量分发紧密相关
服务级监控主要关注以下内容
主从流量分发与权重
后端服务器健康检测
负载均衡器统计信息
PG Service 关注数据库对外暴露的服务
注意这里的监控指标只有当启用Haproxy作为 service provided时才可用。
旧PG Service Dashboard按照角色层次进行信息聚合,呈现DNS解析,域名,代理流量权重等。现在已经弃用。
PG DNS 关注服务域名的解析情况。以及与之绑定的VIP
但是鉴于各个用户定义与管理服务的方式不一,Pigsty不在公开发行版本提供更多关于服务级别的监控面板
实例级监控关注于单个实例,无论是一台机器,一个数据库实例,一个连接池实例,还是负载均衡器,指标导出器,都可以在实例级监控中找到最详细的信息。
PG Instance 详细展示了单个数据库实例的完整指标信息
以最近1日为周期的统计信息(从当前时刻算起的前24小时),比如最近一天的查询总数,返回的记录总数等。上面两行是节点级别的统计,下面两行是主要是PG相关的统计指标。
对于计量计费,水位评估特别有用。
事务部分用于洞悉实例中的活动情况,包括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种表锁),按大类聚合(读锁,写锁,排他锁)
大多数指标与事务中的指标类似,不过统计单位从事务变成了查询语句。查询部分可用于分析实例上的慢查询,定位性能瓶颈。
语句展示了查询中按语句细分的指标。每条语句(查询语法树抽离常量变量后如果一致,则算同一条查询)都会有一个查询ID,可以在慢查询平台中获取到具体的语句与详细指标与统计。
pg_stat_statments
中的平均响应时间从大到小排序的,点击查询ID会自动跳转到慢查询平台后端进程用于显示与PG本身的连接,后端进程相关的统计指标。特别是按照各种维度进行聚合的结果,特别适合定位雪崩,慢查询,其他疑难杂症。
连接池部分与后端进程部分类似,但全都是从Pgbouncer中间件上获取的监控指标
Database部分主要来自pg_stat_database
与pg_database
,包含数据库相关的指标:
持久化主要包含数据落盘,Checkpoint,块访问相关的指标
Exporter展示了监控系统组件本身的监控指标,包括:
PG Instance 详细展示了单个数据库实例的完整指标信息。
Pigsty日志基于Loki 与 Promtail,是可选的额外模组。
您必须先在元节点上执行 infra-loki.yml
并在普通数据节点上执行 pgsql-promtail.yml
方能启用本功能。
用户可以从这里查阅 每个实例上 Postgres, Pgbouncer, Patroni的相关日志。
上方的三个图表显示的是当前时间段中的Log Rate,单位时间内的日志数量。
Search框中可以填入关键字搜索,右上角的Log Rate显示的是包含该关键字的Log Rate。
Node详细展示了单个机器节点的指标,该面板可用于任何安装有Node Exporter的节点
PG Pgbouncer 详细展示了单个数据库连接池实例的完整指标信息
PG Proxy 详细展示了单个数据库代理 Haproxy 的状态信息
PG Exporter 详细展示了单个数据库实例的监控指标导出器本身的健康状态
PG Setting 详细展示了单个数据库实例的完整指标信息
PG Stat Activity 详细展示了单个数据库实例内的实时活动,注意这里的数据是从Catalog中实时获取,而非监控系统采集。
PG Stat Statements 详细展示了单个数据库实例内实时的查询状态统计
数据库级监控更像是“业务级”监控,它会展现出系统中每一张表,每一个索引,每一个函数的详细使用情况。
对于业务优化与故障分析而言有着巨大的作用。
但是当心监控信息也可能透露出关键的业务数据,例如对用户表的更新QPS可能反映出业务的日活数。请在生产环境中对Grafana做好权限控制,避免不必要的风险。
PG Database 关注单个数据库内发生的详细情况,对于单实例多DB的情况尤其实用。
PG Pool关注连接池中的单个User-DB对,当您使用多租户特性时,这个面板对于连接池问题的排查会很有帮助。
PG Query 关注单个数据库内发生的整体查询细节
您可以用本面板定位出实例内的具体异常查询,然后跳转到PG Query Detail面板查看具体查询的详细信息
PG Catalog可以直接从数据库目录中获取并展示特定表的元数据
请注意,Catalog类型的信息是直接连接至数据库目录进行查询的,可能导致不必要的安全风险。
PG Table关注单个数据库中的所有表,增删改查,访问等。
您可以点击具体的表,跳转至PG Table Detail查阅这张表的详细指标。
PG Table Detail关注单个数据库中的单张表
您可以在本面板中跳转至 PG Cluster Table Detail,来了解这张表在整个集群的不同实例上的工作状态。
PG Query Detail关注单个数据库内发生的单个查询的细节。
请注意,这里的查询都使用QueryID进行标识。 您可以使用PG Stat Statementes面板提供的实时查询接口获取查询对应的语句。 直接在面板中展示SQL语句可能会导致不必要的安全风险,但该特性会在Pigsty专业版中提供。