Skip to content

feat: 支持按标签配置告警阈值覆盖#249

Open
myrat92 wants to merge 2 commits into
opsre:masterfrom
myrat92:feat/label-threshold-overrides
Open

feat: 支持按标签配置告警阈值覆盖#249
myrat92 wants to merge 2 commits into
opsre:masterfrom
myrat92:feat/label-threshold-overrides

Conversation

@myrat92
Copy link
Copy Markdown

@myrat92 myrat92 commented Apr 27, 2026

变更说明

本 PR 为 Prometheus 告警规则增加按指标标签配置阈值覆盖的能力。

在保留原有全局阈值规则的基础上,允许用户针对特定指标标签配置独立的告警条件,例如按 instancehostnamejobos_type 等标签设置不同阈值。

背景

实际生产环境中,同一类节点或同一条 PromQL 告警规则下,不同节点可能需要不同阈值。

例如:

  • 节点 A 内存阈值为 98%
  • 节点 B 内存阈值为 95%

如果为每个节点复制一条告警规则,规则数量会膨胀,维护成本较高。

主要改动

  • Prometheus 规则配置增加阈值覆盖字段
  • 告警评估时根据当前指标 labels 匹配覆盖规则
  • 命中覆盖规则时使用覆盖阈值
  • 未命中覆盖规则时回退原有全局规则
  • 支持覆盖规则中的独立 severityexprforDuration
  • 保持旧规则兼容,未配置覆盖字段时行为不变
  • 增加阈值覆盖匹配逻辑的单元测试

兼容性

兼容已有规则。

如果规则中没有配置 thresholdModethresholdOverrides,告警评估逻辑仍使用原有全局 rules,不会改变现有行为。

当前覆盖规则按配置顺序匹配,第一条命中的覆盖规则生效。建议将更具体的标签匹配项放在更前面。

关联 Issue

Refs opsre/WatchAlert#ISSUE_ID

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant