prometheus - prometheus alertmanager 中基于时间的警报
问题描述
我想在 Prometheus alertmanager 中设置一个必须在给定时间之间触发的警报例如:要在 09:15 到 15:30 之间检查的条件
解决方案
Prometheus 中的警报会定期评估,您无法真正为它们设置时间表。
我认为可以通过一些 PromQL 功夫来实现:
scalar(clamp(hour() > 9 and hour() < 15, 1, 1)) * <alert_promql>
hour() > 9 and hour() < 15
根据一天中的小时定义时间范围(您也可以添加分钟)
clamp(..., 1, 1)
确保该值为 1 而不是别的
*
- 这就是魔法发生的地方。如果我们从前一个函数中得到任何值,它将为 1,因此乘以 1 对第二个表达式没有影响。否则,第一个表达式没有级数,所以乘法无论如何都不会返回任何结果。
推荐阅读
- windows - Visual Studio 2019 路径中的非法字符
- powershell - Powershell - 启动文件资源管理器 UNC 路径
- node.js - 在亚马逊 ec2 上启动节点套接字服务器时遇到问题,端口权限问题
- php - 如何限制用户访问 Wordpress 中的自定义帖子类型?
- python - 由于 GMP 版本不兼容,scikit-geometry 不起作用
- python - VerticaPy kmeans 无需访问公共模式即可适用
- sql - 计算最后一天和公司同一分支机构的价值
- xml - Flutter - 基于 XML 文件的动态页面设计(通过 REST API)
- javascript - 在 Openlayers 6 中移动一个点
- javascript - 如何导出电子邮件模板并使用 react-email-editor 传递道具?