Files
homelab-infra/platform/observability/metrics/rules/shared-postgresql.yaml
T
panxiao81 3a2fe5fa0c
yaml / yaml (pull_request) Successful in 41s
ansible / collection-test (pull_request) Successful in 2m41s
terraform / validate (pull_request) Successful in 2m41s
ansible / lint (pull_request) Successful in 4m36s
feat: 纳管共享 etcd 与 k3s 外 PostgreSQL 高可用及备份
2026-09-25 19:34:48 +00:00

41 lines
1.8 KiB
YAML

# 使用 Patroni 原生指标及现有 Alertmanager;不新增监控栈。
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMRule
metadata:
name: shared-postgresql
namespace: monitoring
spec:
groups:
- name: shared-postgresql
rules:
- alert: SharedPostgresMemberUnavailable
expr: up{job="shared-postgresql-patroni"} == 0
for: 2m
labels: {severity: warning, service: shared-postgresql}
annotations:
summary: '共享 PG 成员 {{ $labels.member }} 无法采集'
- alert: SharedPostgresNoObservedPrimary
expr: (sum(patroni_primary{job="shared-postgresql-patroni"}) or vector(0)) == 0
for: 1m
labels: {severity: critical, service: shared-postgresql}
annotations:
summary: 共享 PG 监控未观察到 primary,请检查实际角色和入口
- alert: SharedPostgresMultiplePrimaries
expr: sum(patroni_primary{job="shared-postgresql-patroni"}) > 1
for: 30s
labels: {severity: critical, service: shared-postgresql}
annotations:
summary: 共享 PG 监控观察到多个 primary,需立即核实
- alert: SharedPostgresReplicaNotStreaming
expr: patroni_replica{job="shared-postgresql-patroni"} == 1 and patroni_postgres_streaming{job="shared-postgresql-patroni"} == 0
for: 2m
labels: {severity: warning, service: shared-postgresql}
annotations:
summary: '共享 PG replica {{ $labels.member }} 没有流复制'
- alert: SharedPostgresProcessDown
expr: patroni_postgres_running{job="shared-postgresql-patroni"} == 0
for: 1m
labels: {severity: critical, service: shared-postgresql}
annotations:
summary: '共享 PG 成员 {{ $labels.member }} 数据库进程未运行'