Files
homelab-infra/platform/observability/metrics/rules/shared-data-maintenance.yaml
T
panxiao81andClaude Opus 5.5 0cd4a67e12 新增共享 PG 的 SQL 级指标与 dev 告警分流
- 数据库主机上按实例运行 prometheus-community/postgres_exporter 0.20.1,
  以实例 OS 用户走本地 socket,经 peer + ident 映射到仅有 pg_monitor 的
  homelab_monitor 角色;无密码、不经 Bao。版本与官方 sha256sums.txt 同源。
- prod/dev 启用 pg_stat_statements;monitoring.yml 仅在未生效时 reload/重启
  (prod 走 Patroni pending restart),重复执行 changed=0。
- 告警以上游 postgres_mixin 为底改写为 PrometheusRule,阈值对齐 Patroni
  failover lag 与 max_slot_wal_keep_size;抓取目标带 env 标签。
- Alertmanager 新增 env="dev" 路由到独立 dev 频道,dev SQL 检查告警补 env。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-01 16:20:15 +00:00

65 lines
3.2 KiB
YAML

apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: shared-data-maintenance
namespace: monitoring
spec:
groups:
- name: shared-data-maintenance
rules:
- alert: SharedDataMonitoringUnavailable
expr: up{job="shared-data-maintenance"} == 0 or absent(up{job="shared-data-maintenance"})
for: 3m
labels: {severity: warning, service: shared-data}
annotations:
summary: 共享数据维护指标无法采集
- alert: SharedDataCollectorStale
expr: >-
(time() - homelab_data_collection_timestamp_seconds{job="shared-data-maintenance"} > 180)
or (up{job="shared-data-maintenance"} == 1
unless on(instance) homelab_data_collection_timestamp_seconds{job="shared-data-maintenance"})
or node_textfile_scrape_error{job="shared-data-maintenance"} == 1
for: 3m
labels: {severity: warning, service: shared-data}
annotations:
summary: 共享数据本地采集结果缺失或停止更新
- alert: SharedDataCheckFailed
expr: homelab_data_check_success{job="shared-data-maintenance"} == 0
for: 3m
labels: {severity: warning, service: shared-data}
annotations:
summary: 共享数据维护检查失败,请核对对应检查项
- alert: SharedDataBackupStale
expr: time() - homelab_data_backup_timestamp_seconds{job="shared-data-maintenance"} > 36 * 3600
for: 5m
labels: {severity: warning, service: shared-data}
annotations:
summary: 共享数据备份已超过 36 小时或没有成功备份
- alert: SharedDataCertificateExpiringSoon
expr: >-
homelab_data_certificate_expiry_timestamp_seconds{job="shared-data-maintenance"} - time() < 10 * 86400
and homelab_data_certificate_expiry_timestamp_seconds{job="shared-data-maintenance"} - time() >= 3 * 86400
for: 5m
labels: {severity: warning, service: shared-data}
annotations:
summary: 共享数据证书剩余不足 10 天,请检查自动续签
- alert: SharedDataCertificateExpiryCritical
expr: homelab_data_certificate_expiry_timestamp_seconds{job="shared-data-maintenance"} - time() < 3 * 86400
for: 5m
labels: {severity: critical, service: shared-data}
annotations:
summary: 共享数据证书不足 3 天、已过期或无法读取
- alert: SharedDataRenewalStale
expr: time() - homelab_data_renewal_success_timestamp_seconds{job="shared-data-maintenance"} > 36 * 3600
for: 5m
labels: {severity: warning, service: shared-data}
annotations:
summary: 共享数据续签检查失败、停用或超过 36 小时未成功
- alert: SharedPostgresDevUnavailable
expr: homelab_data_dev_sql_ready{job="shared-data-maintenance"} == 0
for: 3m
# env 供 Alertmanager 把 dev 分流到独立 channel。
labels: {severity: warning, service: shared-postgresql, env: dev}
annotations:
summary: 共享 PG 开发实例本地 SQL 不可用或处于只读状态