如何使用 prometheus Alertmanager 在工作时间之外抑制警报?

2023-12-28

我们的应用程序依赖于仅在工作时间内活跃的数据源。我们在普罗米修斯中设置了警报,以便在溪流干涸时通知我们。但是,我们不希望在工作时间之外收到“错误”警报。

我跟着这个帖子 https://medium.com/@tom.fawcett/time-of-day-based-notifications-with-prometheus-and-alertmanager-1bf7a23b7695设置一个“假警报”,在工作时间之外触发,并应该抑制所有其他警报。

设置如下所示。在普罗米修斯中:

rules:

# This special alert will be used to inhibit all other alerts outside business hours
- alert: QuietHours
  expr: day_of_week() == 6 or day_of_week() == 0 or europe_amsterdam_hour >= 18 or europe_amsterdam_hour <= 7
  for: 1m
  labels:
    notification: page
    severity: critical
  annotations:
    description: 'This alert fires during quiet hours. It should be blackholed by Alertmanager.'

The europe_amsterdam_hour函数被定义为规则,为了简洁起见,本示例中省略了该函数。

在警报管理器中:

routes:
# ensure to forward to blackhole receiver during quiet hours
- match:
    alertname: QuietHours
  receiver: blackhole

inhibit_rules:
- source_match:
    alertname: QuietHours
  target_match_re:
    alertname: '[^(QuietHours)]'

我验证了触发 QuietHours 警报的逻辑正在工作。它在工作时间后很好地触发,并在工作时间解决。但是,抑制部分似乎不起作用,因为当 QuietHours 处于活动状态时我仍然会收到其他警报。我找不到对抑制配置有详细解释的好资源。

有什么想法我做错了吗?


问题在于您的目标 re,语法不正确。没有必要排除QuietHours如中所解释的抑制规则 https://prometheus.io/docs/alerting/configuration/#inhibit_rule文档。

为了防止警报抑制自身,与两者都匹配的警报 规则的目标端和源端不能被警报抑制 对于这也是如此(包括它本身)。

正则表达式应该简单地匹配与您的数据源相关的警报。

添加标签来识别与源相关的警报以抑制和使用它比使用警报名称更容易。

inhibit_rules:
- source_match:
    alertname: QuietHours
  target_match:
    component: 'data_source'

这样,任何与源相关的新警报都将被禁止。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 prometheus Alertmanager 在工作时间之外抑制警报? 的相关文章

随机推荐

  • Haskell/Parsec:如何使用 Text.Parsec.Indent 中的函数?

    我无法弄清楚如何使用其中的任何功能Text Parsec Indent http hackage haskell org packages archive indents latest doc html Text Parsec Indent
  • 消息或具有 MessageContractAttribute 和其他不同类型参数的类型

    我正在开发 WCF 服务 其中一些类具有 MessageContract 属性 有些则没有 当我尝试运行服务时 我收到以下错误消息 无法加载操作 ProcessOperation 因为它具有 System ServiceModel Chan
  • 无法从 JSON 反序列化 PyMongo ObjectId

    我似乎无法使用 BSON 反序列化我的 MongoDB JSON 文档json util http api mongodb org python current api bson json util html json loads 函数令人
  • cpan 忽略 makepl_arg 和 mbuild_arg

    我按照这个问题得票最多的答案中的说明进行操作如何将 CPAN 模块安装到本地目录中 https stackoverflow com questions 540640 how can i install a cpan module into
  • 无法使用 autofac 注册结构体实例

    我刚刚开始搬到Autofac from Unity我在尝试注册实例时遇到问题 public static void Register ContainerBuilder containerBuilder CancellationToken s
  • console.developers.google.com 与 appengine.google.com 有何不同?

    谷歌云有https console developers google com https console developers google com 并且 App Engine 有http appengine google com htt
  • MockK - 为每个测试重新初始化模拟

    我使用以下方法创建了一些模拟 val someService mockk
  • iPad 上的 UIActivityViewController

    我一直在使用下面的代码来展示UIActivityViewController当我使用 Xcode 6 Swift 1 2 和 iOS 8 时 它工作得很好 但是 当我更新时 它显示UIActivityViewController但它完全是空
  • php中的十六进制数填充零

    不知道我在这里做错了什么 当我在十六进制数字前面填充零时 它似乎改变了数字 number 1741 strtoupper dechex number output is 6CD sprintf 03x strtoupper dechex n
  • JavaScript 压缩

    我正在寻找可以压缩JavaScript源代码的工具 我发现一些网络工具只能删除空格字符 但也许存在更好的工具 可以压缩用户的函数名称 字段名称 删除未使用的字段等 经常用来压缩 JS 代码的工具是YUI压缩器 http developer
  • LESS/SASS CSS 与缩小/优化相反?

    我想知道我可以说 LESS SASS CSS 预处理器 我认为他们被称为 与缩小等优化相反 我想知道是否会对性能产生明显的影响 或者您认为易于开发更重要 我问这个是因为 LESS CSS 生成的是类似的东西 body div1 div2 p
  • 使用 SimpleXML 的 XML 声明标签

    我开始使用带有注释的简单 XML 框架 link http simple sourceforge net download stream doc tutorial tutorial php namesoace 对于 Java 但我不明白如何
  • matplotlib 图例位置编号

    我开始使用 Python 进行科学计算 而且我真的很喜欢它 但是我对 matplotlib pylab legend 函数的一个功能感到困惑 特别是 位置功能允许人们使用数字指定图例的位置 遵循以下方案 最好 0 右上角 1 左上 2 左下
  • 如何将对象字符串解析为javascript对象? [复制]

    这个问题在这里已经有答案了 我从数据库得到这个字符串 from 15 00 to 16 00 from 16 00 to 17 00 from 17 00 to 18 00 from 18 00 to 19 00 它是一个字符串 在这种情况
  • 在多个显示器上居中用户表单

    我在网上搜索了一段时间 确实找到了一些解决方案 但似乎没有一个对我有帮助 我在 Excel 2010 中有一个用户窗体 我想将其置于 Excel 窗口的中心 我有双显示器 它似乎总是在两个显示器之间居中 我知道您可以编辑一些属性 例如 St
  • Objective-C 中如何改变鼠标光标

    我正在制作一个图像编辑应用程序 但如果没有像 Photoshop 中的画笔那样的光标 它看起来非常不完整 如何设置图标 并在退出应用程序时将其更改回来 这是我的头文件中的代码 以防万一需要 interface test NSWindow
  • PHP:涉及爆炸键的映射数组[重复]

    这个问题在这里已经有答案了 在尝试使用多个 foreach 循环解决此问题后 我仍然不知道如何映射 arr to arr mapped 我需要爆炸钥匙 arr获取最多具有三个要创建的新键的元素 arr mapped
  • 通过两个模型来查看[重复]

    这个问题在这里已经有答案了 我是 mvc 新手 并尝试通过用它做一个小项目来学习它 我有一个页面应该显示特定日期的货币和天气 所以我应该通过货币模型和天气模型 我已经完成了通过货币模型并且工作正常 但我不知道如何通过第二个模型 大多数教程都
  • 为什么 python MSAL 身份验证卡在 ConfidentialClientApplication 处?

    我有这段 python 代码 它在我的计算机上完美运行 但当我在带有 Amazon Linux 的 EC2 上运行它时 它会卡在这个函数中 检查了所有网络和防火墙规则 一切正常 事实上 如果我从我的 PC 获取令牌并尝试通过 cURL 直接
  • 如何使用 prometheus Alertmanager 在工作时间之外抑制警报?

    我们的应用程序依赖于仅在工作时间内活跃的数据源 我们在普罗米修斯中设置了警报 以便在溪流干涸时通知我们 但是 我们不希望在工作时间之外收到 错误 警报 我跟着这个帖子 https medium com tom fawcett time of