监控与告警

更新时间:2025-04-03 08:23:22

PolarDB PostgreSQL轻量版支持采集核心组件(数据库、代理)及主机监控信息,且内部集成PrometheusGrafana。

功能介绍

  • 支持采集核心组件(数据库、代理)及主机的监控信息。

  • 内部集成的Prometheus用于存储监控数据,并提供Grafana可视化工具查看集群状态和监控数据。

  • 采集的监控数据还支持对接外部开源监控组件,例如InfluxDBZabbix

监控指标

  • 数据库:

    • 常规:连接、事务。

    • 资源:CPU、内存、IO按数据库进程级别上的分解。

    • 会话:等待事件、锁。

    • SQL:Top SQL、包含执行时间、执行次数、IO消耗的排序。

    • 对象:表(Relation)、索引(Index)、函数(Function)、序列(Sequence)。

  • 主机:

    包含CPU、系统负载、内存、磁盘IO、文件系统和网络的监控信息。

开源对接

监控组件

  • 支持PrometheusInfluxDBZabbix三种流行的监控组件,可通过监控采集组件Monitor Agent的配置实现指标推送。

  • 监控采集组件Monitor Agent支持标准的Prometheus Exporter协议,能够由Prometheus发起数据采集。

可视化组件

除了PolarDB PostgreSQL轻量版PolarFlex形态内部集成的Grafana + Prometheus外,还支持外部自建Grafana

告警组件

支持Grafana内置的告警能力,并支持进一步对接开源组件Alertmanager

开源组件对接操作

Prometheus对接

PolarFlex通过exporter监听9974端口实现与Prometheus的对接。可以在Prometheus中进行如下配置,获取完整的监控指标。

scrape_configs:
- job_name: 'polardb_o'

  static_configs:
  - targets: ['0.0.0.0:9974']

  honor_labels: true

  scrape_interval: 20s
  scrape_timeout: 20s

Grafana导入

可参考下图将dashboard.json导入Grafana:

image.png

查询效果如下:

image.png

查看监控信息

支持使用Grafana进行展示。除了PolarDB PostgreSQL轻量版PolarFlex形态内部集成的Grafana + Prometheus外,还支持外部自建Grafana

PolarDB PostgreSQL轻量版PolarFlex形态提供集群、数据库、代理和主机四个Dashboard,以便于加载和查看。

集群
数据库
代理
主机

展示集群代理和数据库的状态:

image.png

  • 等待事件:展示数据库操作等待类型的分布情况,有助于分析数据库性能瓶颈。

    image.png

  • 资源

    image.png

  • 慢查询、长事务:用于识别和解决潜在的性能瓶颈和资源竞争问题。

    慢查询统计

    长事务跟踪

    image.png

    image.png

  • Top SQL:识别高负载查询,优化相关语句可显著提升系统的响应速度与效率。

    image.png

  • Top Relation:完成Top SQL分析后,可进一步查看Top Relation了解表级访问热点。

    image.png

image.png

image.png

告警配置

建议的告警指标、测试验证方法及建议处理措施如下:

说明
  • 此处测试验证方法采用压力测试工具pgbench进行数据库告警测试,并配置数据库连接信息的环境变量。详细介绍请参见pgbench

  • 为了便于及时监测和查看监控变化,部分指标的测试验证方法下调了告警阈值。您可以根据您的目标阈值模拟相应的业务环境,验证告警配置的有效性。

告警指标

描述

单位

告警阈值

测试验证方法

建议处理措施

告警指标

描述

单位

告警阈值

测试验证方法

建议处理措施

polar_cpu_user + polar_cpu_sys

cpu使用率

百分比

>= 70

  1. 数据库环境初始化。

    pgbench -i -s 1000
  2. 提升数据库压力,设置$CONNECTIONCPU核数的2倍。

    pgbench -c $CONNECTION -j $CONNECTION -M prepared -n -r -P 1 -T 10000 

polar_cgroup_mem_usage

内存使用率

百分比

>= 80

  1. 数据库环境初始化。

    pgbench -i -s 1000
  2. 提升数据库压力,设置$CONNECTION128。

    pgbench -c $CONNECTION -j $CONNECTION -M prepared -n -r -P 1 -T 10000
  3. 将告警阈值调整至5%,便于及时监测和查看监控变化。

polar_size_usage

磁盘空间使用率

百分比

>= 80

  1. 数据库环境初始化。

    pgbench -i -s 10000
  2. 将告警阈值调至10%,便于及时监测和查看监控变化。

polar_inodes_usage

文件系统inode使用率

百分比

>= 80

  1. 数据库环境初始化。

    pgbench -i -s 10000
  2. 将告警阈值调至5%,便于及时监测和查看监控变化。

polar_connection_ratio

连接使用率

百分比

>= 90

  1. 使用psql访问集群,查询集群最大连接数polar_max_non_super_conns,该值为连接使用率的分母。

    SHOW polar_max_non_super_conns;
  2. 提升数据库压力,设置$CONNECTION=polar_max_non_super_conns-1。

    pgbench -c $CONNECTION -j $CONNECTION -M prepared -n -r -P 1 -T 10000

polar_db_age

数据库年龄

xids

>= 1573741824

  1. 连接集群执行以下语句,模拟长事务。

    CREATE TABLE test_swell_time(id int);
    BEGIN;
    INSERT INTO test_swell_time VALUES(1);
  2. 同时提升数据库压力。

    pgbench -c $CONNECTION -j $CONNECTION -M prepared -n -r -P 1 -T 10000
  3. 将告警阈值调至128*1000,便于及时监测和查看监控变化。

查看是否存在长事务。

polar_inactive_slots

非活跃复制槽

> 0

不建议验证

确认slots的有效性,如无用,应尽快删除。

polar_replay_latency_in_mb

最大同步延迟

MB

>= 128

不建议验证

联系我们

polar_active_connections

活跃连接

>= CPU核数 * 5

提升数据库压力, 设置$CONNECTIONCPU核数的5倍。

pgbench -c $CONNECTION -j $CONNECTION -M prepared -n -r -P 1 -T 10000

降低并发。

polar_swell_time

当前最长事务持续时间

>= 600

  1. 连接集群执行以下语句,模拟长事务。

    CREATE TABLE test_swell_time(id int);
    BEGIN;
    INSERT INTO test_swell_time VALUES(1);
  2. 告警阈值调整至30秒,30秒后启动报警。

尽快结束事务。

polar_checkpoint_latency_in_mb

checkpoint延迟

MB

>=128

不建议验证

联系我们

  • 本页导读 (1)
  • 功能介绍
  • 监控指标
  • 开源对接
  • 监控组件
  • 可视化组件
  • 告警组件
  • 开源组件对接操作
  • 查看监控信息
  • 告警配置
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等