如何根据警报条件成立的持续时间来路由警报

问题描述 投票:0回答:1

我想设置来自 Alertmanager 的警报通知,以便我收到:

  • 立即松弛通知
  • 如果给定警报触发至少 1 小时,OpsGenie 会发出通知
  • 如果给定警报触发至少八小时,则会发送电子邮件通知

我已经在我的警报管理器配置中设置了这些通知集成,除了延迟方面之外,它们都可以工作。

我知道警报管理器本身没有关于给定警报已触发多长时间的信息,因此该信息不易用于做出路由决策。

如果普罗米修斯生成的警报中有一些标签,我应该能够在警报管理器中使用它来相当简单地做出这个决定。我不想在普罗米修斯中创建警报的单独副本来添加额外的标签。

我猜测应该可以根据警报条件成立的时间在普罗米修斯端的警报上设置标签。通过阅读文档和到目前为止的所有搜索,我找不到任何指示。

prometheus monitoring prometheus-alertmanager observability
1个回答
0
投票

您可以使用

for
来完成此操作吗?

rules.yaml

groups:
  - name: some-alert-immediate
    rules:
      - alert: some-alert
        expr: same-promql
        labels:
          severity: slack
        annotations:
          summary: "Some Summary"
  - name: some-alert-an-hour
    rules:
      - alert: some-alert
        expr: same-promql
        for: 1h
        labels:
          severity: opsgenie
        annotations:
          summary: "Some Summary"
  - name: some-alert-an-hour
    rules:
      - alert: some-alert
        expr: same-promql
        for: 8h
        labels:
          severity: email
        annotations:
          summary: "Some Summary"

alertmanager.yaml

global:

route:
  routes:
    - matchers:
      - severity="slack
      receiver: slack
    - matchers:
      - severity="opsgenie"
      receiver: opsgenie
    - matchers:
      - severity="email"
      receiver: email

receivers:
  - name: slack
  - name: opsgenie
  - name: email

参见路由树编辑器和例如

{severity="opsgenie"}

© www.soinside.com 2019 - 2024. All rights reserved.