多页打印视图 点击此处打印.

返回常规视图.

界面

了解Pigsty提供的图形化用户界面

Pigsty提供了专业且易用的PostgreSQL监控系统,浓缩了业界监控的最佳实践。

用户可以方便地进行修改与定制;复用监控基础设施,或与其他监控系统相集成。

全局 集群 服务 实例 数据库
Home PG Cluster PG Service PG Instance PG Database
PG Overview PG Cluster Replication PG DNS PG Instance Log PG Query
PG Shard PG Cluster Activity Node PG Catalog
PG Alert PG Cluster Session PG Pgbouncer PG Table
PG KPI PG Cluster Node PG Proxy PG Table Detail
PG Capacity PG Cluster Persist PG Exporter
PG Change PG Cluster Database PG Setting
PG Monitor PG Cluster Stats PG Stat Activity
PG Cluster Table PG Stat Statements
PG Cluster Table Detail
PG Cluster Query
PG Cluster Health
PG Cluster Log
PG Cluster All

注:加粗的面板是Pigsty默认提供的监控面板,其他则是专业版提供的额外特性。

默认监控已经足以覆盖绝大多数场景,如果您需要更加深入的掌控与洞察,请联系 专业支持

1 - 全局监控

介绍全局监控面板

1.1 - Home

Home面板简介

Home Dashboard是Pigsty的默认主页,包含了到其他系统的导航连接。

您可以在这里发布公告,添加业务系统的导航,集成其他的监控面板等。

1.2 - PG Overview

PG Overview面板简介

PG Overview是总揽整个环境中所有数据库集群的地方。

这里提供了到所有数据库集群与数据库实例的快捷导航,并直观地呈现出整个环境的资源状态,异常事件,系统饱和度等等。

PG Overview的图表主要以集群为基本单位进行呈现,主要用于从全局视角快速定位异常集群。

长图

1.3 - PG Shard

PG Shard针对水平分片的并行集群而专门设计。

PG Shard针对水平分片的并行集群而专门设计。

水平分片是Pigsty专业版本提供的高级特性,可以将较大(TB到PB)的业务数据拆分为多个水平的业务集群对外提供服务。

PG Shard提供的指标与PG Overview类似,但会通过预定义的正则表达式筛选出所有同属于一个Shard的所有Cluster。

因此用户可以直观的比较不同分片之间的活动与负载,对于定位数据倾斜问题特别有帮助。

1.4 - PG Alert

PG Alert面板简介

PG Alert是总揽整个环境中所有报警信息的地方。包括所有与报警相关指标的快速面板。

1.5 - PG KPI

PG KPI 展示了环境中关键指标的概览

PG KPI 展示了环境中关键指标的概览,您可以在这里快速定位整个环境中的异常指标与异常实例。

1.6 - PG Capacity

PG Capacity 展示了数据库的水位状态

PG Capacity 展示了数据库的水位状态,这是Pigsty专业版提供的面板。

1.7 - PG Change

PG Change包含了整个环境中所发布的历史DDL变更。

PG Change包含了整个环境中所发布的历史DDL变更。

该面板必须与 Pigsty专业版特性: DDL发布系统 共同使用,在此不列出

1.8 - PG Monitor

PG Monitor面板简介

PG Monitor是监控系统的自我监控,包括Grafana,Prometheus,Consul,Nginx的监控。

自我监控属于Pigsty企业版特性。

2 - 集群监控

集群级别的监控面板

DB监控:PG集群

PG集群监控是最常用的Dashboard,因为PG以集群为单位提供服务,因此集群层面集合了最完整全面的信息。

大多数监控图都是实例级监控的泛化与上卷,即从展示单个实例内的细节,变为展现集群内每个实例的信息,以及集群和服务层次聚合后的指标。

集群概览

Cluster级别的集群概览相比实例级别多了一些东西:

  • 时间线与领导权,当数据库发生Failover或Switchover时,时间线会步进,领导权会发生变化。
  • 集群拓扑,集群拓扑展现了集群中的复制拓扑,以及采用的复制方式(同步/异步)。
  • 集群负载,包括整个集群实时、1分钟、5分钟、15分钟的负载情况。以及集群中每个节点的Load1
  • 集群报警与事件。

2.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层次的聚合(一个集群通常提供primarystandby两种Service)。

其他指标与实例级别差别不大。

2.2 - PG Cluster Replication

PG Cluster Replication 关注单个集群内的复制活动。

PG Cluster Replication 关注单个集群内的复制活动。

总览

2.3 - PG Cluster Activity

PG Cluster Activity 关注特定集群的活动状态,包括事务,查询,锁,等等。

PG Cluster Activity 关注单个集群的活动,包括事务,查询,锁,等等。

2.4 - PG Cluster Session

PG Cluster Session 关注特定集群中连接、连接池的工作状态。

PG Cluster Session 关注特定集群中连接、连接池的工作状态。

2.5 - PG Cluster Node

PG Cluster Node关注整个集群的机器资源使用情况

PG Cluster Node关注整个集群的机器资源使用情况

2.6 - PG Cluster Persist

PG Cluster Persist 关注集群的持久化,检查点与IO状态。

PG Cluster Persist 关注集群的持久化,检查点与IO状态。

2.7 - PG Cluster Database

PG Cluster Database 关注特定集群中与数据库有关的指标:TPS,增删改查,年龄等。

PG Cluster Activity 关注单个集群的活动,包括事务,查询,锁,等等。

2.8 - PG Cluster Stat

PG Cluster Stat 用于展示集群在过去一段统计周期内的用量信息

PG Cluster Stat 用于展示集群在过去一段统计周期内的用量信息

2.9 - PG Cluster Table

PG Cluster Table 关注单个集群中所有表的增删改查情况

PG Cluster Table 关注单个集群中所有表的增删改查情况

2.10 - PG Cluster Table Detail

PG Cluster Table Detail关注单个集群中某张特定表的增删改查情况

PG Cluster Table Detail关注单个集群中某张特定表的增删改查情况

您可以从该面板跳转到

  • PG Cluster Table: 上卷至集群中的所有表
  • PG Instance Table Detail:查看这张表在集群中的单个特定实例上的详细状态。

2.11 - PG Cluster Query

PG Cluster Query 关注特定集群内所有的查询状况

PG Cluster Query 关注特定集群内所有的查询状况

DB监控:PG慢查询平台

显示慢查询相关的指标,上方是本实例的查询总览。鼠标悬停查询ID可以看到查询语句,点击查询ID会跳转到对应的查询细分指标页(Query Detail)。

  • 左侧是格式化后的查询语句,右侧是查询的主要指标,包括
    • 每秒查询数量:QPS
    • 实时的平均响应时间(RT Realtime)
    • 每次查询平均返回的行数
    • 每次查询平均用于BlockIO的时长
    • 响应时间的均值,标准差,最小值,最大值(自从上一次统计周期以来)
    • 查询最近一天的调用次数,返回行数,总耗时。以及自重置以来的总调用次数。
  • 下方是指定时间段的查询指标图表,是概览指标的细化。

2.12 - PG Cluster Health

PG Cluster Health基于规则对集群进行健康度评分

PG Cluster Health基于规则对集群进行健康度评分。

2.13 - PG Cluster Log

PG Cluster Log面板简介

PG Cluster Log 关注单个集群内的所有日志事件。

该面板提供了到外部的基于Pgbadger的日志摘要平台的连接,这是一个专业版特性(也就是还没弄到开源版里)。

2.14 - PG Cluster All

PG Cluster All 包含了集群中所有的监控信息,用于细节对比与分析。

PG Cluster All 包含了集群中所有的监控信息,用于细节对比与分析。

3 - 服务监控

服务级别的监控面板

服务级监控

一个典型的数据库集群提供两种服务

读写服务:主库

只读服务:从库

而服务往往与域名、解析、负载均衡,路由,流量分发紧密相关

服务级监控主要关注以下内容

  • 主从流量分发与权重

  • 后端服务器健康检测

  • 负载均衡器统计信息

3.1 - PG Service

PG Service关注数据库角色层次的聚合信息,DNS解析,域名,代理流量权重等。

PG Service 关注数据库对外暴露的服务

注意这里的监控指标只有当启用Haproxy作为 service provided时才可用。

旧PG Service Dashboard

旧PG Service Dashboard按照角色层次进行信息聚合,呈现DNS解析,域名,代理流量权重等。现在已经弃用。

3.2 - PG DNS

PG DNS 关注服务域名的解析情况

PG DNS 关注服务域名的解析情况。以及与之绑定的VIP

但是鉴于各个用户定义与管理服务的方式不一,Pigsty不在公开发行版本提供更多关于服务级别的监控面板

4 - 实例监控

实例级监控关注单个组件的实例

实例级监控

实例级监控关注于单个实例,无论是一台机器,一个数据库实例,一个连接池实例,还是负载均衡器,指标导出器,都可以在实例级监控中找到最详细的信息。

4.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_databasepg_database,包含数据库相关的指标:

  • WAL Rate,标识数据库的写入负载,每秒产生的WAL字节数量。
  • Buffer Hit Rate,数据库 ShareBuffer 命中率,未命中的页面将从操作系统PageCache和磁盘获取。
  • 每秒增删改查的记录条数
  • 临时文件数量与临时文件大小,可以定位大型查询问题。

持久化

持久化主要包含数据落盘,Checkpoint,块访问相关的指标

  • 重要的持久化参数,比如是否出现数据校验和验证失败(如果启用可以检测到数据腐坏)
  • 数据库文件(DB,WAL,Log)的大小与增速。
  • 检查点的数量与检查点耗时。
  • 每秒分配的块,与每秒刷盘的块。每秒访问的块,以及每秒从磁盘中读取的块。(以字节计,注意一个Buffer Page是8192,一个Disk Block是4096)

监控Exporter

Exporter展示了监控系统组件本身的监控指标,包括:

  • Exporter是否存活,Uptime,Exporter每分钟被抓取的次数
  • 每个监控查询的耗时,产生的指标数量与错误数量。

4.2 - PG Instance Log

PG Instance Log展示单个数据库实例的日志信息

PG Instance 详细展示了单个数据库实例的完整指标信息。

Pigsty日志基于Loki 与 Promtail,是可选的额外模组。

您必须先在元节点上执行 infra-loki.yml 并在普通数据节点上执行 pgsql-promtail.yml 方能启用本功能。

用户可以从这里查阅 每个实例上 Postgres, Pgbouncer, Patroni的相关日志。

上方的三个图表显示的是当前时间段中的Log Rate,单位时间内的日志数量。

Search框中可以填入关键字搜索,右上角的Log Rate显示的是包含该关键字的Log Rate。

4.3 - Node

Node详细展示了单个机器节点的指标,该面板可用于任何安装有Node Exporter的节点

Node详细展示了单个机器节点的指标,该面板可用于任何安装有Node Exporter的节点

4.4 - PG Pgbouncer

PG Instance 详细展示了单个数据库实例的完整指标信息

PG Pgbouncer 详细展示了单个数据库连接池实例的完整指标信息

4.5 - PG Proxy

PG Proxy 详细展示了单个数据库代理 Haproxy 的状态信息

PG Proxy 详细展示了单个数据库代理 Haproxy 的状态信息

4.6 - PG Exporter

PG Exporter 详细展示了单个数据库实例的监控指标导出器本身的健康状态

PG Exporter 详细展示了单个数据库实例的监控指标导出器本身的健康状态

4.7 - PG Setting

PG Setting 详细展示了单个数据库实例的配置信息

PG Setting 详细展示了单个数据库实例的完整指标信息

4.8 - PG Stat Activity

PG Stat Activity 详细展示了单个数据库实例内的实时活动

PG Stat Activity 详细展示了单个数据库实例内的实时活动,注意这里的数据是从Catalog中实时获取,而非监控系统采集。

4.9 - PG Stat Statements

PG Stat Statements 详细展示了单个数据库实例内实时的查询状态统计

PG Stat Statements 详细展示了单个数据库实例内实时的查询状态统计

5 - 数据库监控

数据库级别的监控面板

数据库级监控

数据库级监控更像是“业务级”监控,它会展现出系统中每一张表,每一个索引,每一个函数的详细使用情况。

对于业务优化与故障分析而言有着巨大的作用。

但是当心监控信息也可能透露出关键的业务数据,例如对用户表的更新QPS可能反映出业务的日活数。请在生产环境中对Grafana做好权限控制,避免不必要的风险。

5.1 - PG Database

PG Database 关注单个数据库内发生的细节

PG Database 关注单个数据库内发生的详细情况,对于单实例多DB的情况尤其实用。

5.2 - PG Pool

PG Pool关注连接池中的单个连接池,即用户与数据库构成的二元组

PG Pool关注连接池中的单个User-DB对,当您使用多租户特性时,这个面板对于连接池问题的排查会很有帮助。

5.3 - PG Query

PG Query 关注单个数据库内发生的查询细节

PG Query 关注单个数据库内发生的整体查询细节

您可以用本面板定位出实例内的具体异常查询,然后跳转到PG Query Detail面板查看具体查询的详细信息

Query Overview

Database Statementes

Statemente RT

Statement Time Spend per Second

Statement RT Ranking

5.4 - PG Table Catalog

PG Catalog可以直接从数据库目录中获取并展示特定表的元数据

PG Catalog可以直接从数据库目录中获取并展示特定表的元数据

请注意,Catalog类型的信息是直接连接至数据库目录进行查询的,可能导致不必要的安全风险。

身份信息

基本指标

标识符

表特性

关键数值描述

持久化

访问权限

表选项

统计指标

垃圾清理

分析诊断

IO统计

字段详情

索引详情

关系大小

5.5 - PG Table

PG Table关注单个数据库中的所有表的增删改查等。

PG Table关注单个数据库中的所有表,增删改查,访问等。

您可以点击具体的表,跳转至PG Table Detail查阅这张表的详细指标。

5.6 - PG Table Detail

PG Table Detail关注单个数据库中的单张表

PG Table Detail关注单个数据库中的单张表

您可以在本面板中跳转至 PG Cluster Table Detail,来了解这张表在整个集群的不同实例上的工作状态。

5.7 - PG Query Detail

PG Query Detail关注单个数据库内发生的单个查询的细节

PG Query Detail关注单个数据库内发生的单个查询的细节。

请注意,这里的查询都使用QueryID进行标识。 您可以使用PG Stat Statementes面板提供的实时查询接口获取查询对应的语句。 直接在面板中展示SQL语句可能会导致不必要的安全风险,但该特性会在Pigsty专业版中提供。