Microservices 为在特定时间间隔内发生的活动触发警报(使用Prometheus Metrics和AlertManager)
我对普罗米修斯alertmanager还相当陌生,对只在特定时期发出警报有疑问 我有一个microservice,它接收一个文件并对其进行一些处理,只有当它通过Kafka队列获得消息时才会调用它。上述信息应在每天早上5点到早上6点(UTC时间)之间出现。微服务有一个度量,它在每次接收文件时都会增加1。如果在间隔时间内未收到文件,我希望发出警报。我创建了如下查询:Microservices 为在特定时间间隔内发生的活动触发警报(使用Prometheus Metrics和AlertManager),microservices,prometheus,metrics,prometheus-alertmanager,Microservices,Prometheus,Metrics,Prometheus Alertmanager,我对普罗米修斯alertmanager还相当陌生,对只在特定时期发出警报有疑问 我有一个microservice,它接收一个文件并对其进行一些处理,只有当它通过Kafka队列获得消息时才会调用它。上述信息应在每天早上5点到早上6点(UTC时间)之间出现。微服务有一个度量,它在每次接收文件时都会增加1。如果在间隔时间内未收到文件,我希望发出警报。我创建了如下查询: expr : sum(increase(metric_name[1m]) and on() hour(vector(time(
expr : sum(increase(metric_name[1m]) and on() hour(vector(time()))==5) < 1
for: 1h
expr:sum(增加(度量单位名称[1m])和on()小时(向量(时间())==5)<1
时间:1小时
我的问题:-1) 这是正确的还是有更好的方法 2) 如果没有更新,将返回0或“未找到数据点”
3) 是增加正确的函数,因为由于外推,它倾向于以小数为单位给出结果,但我知道如果增加为0,它将显示0
我真的无法使用设置为30秒的“刮擦间隔”(scrape_interval)。我还没有运行此表达式,但我希望它只会在06:00触发警报,然后在06:01发出警报。这是唯一一次该表达式在一小时内保持正确 回答您的问题
expr: increase(metric_name[1h])==0 and on() hour()==6 and on() minute()<1
它的内容是:从早上6点开始(hour()>5
),计算接下来18个小时内5-6点的增长。如果您喜欢挂起,可以删除结尾的on()hour()>5
并使用for:1h
子句
如果要在提交文件之前发出警报,从而检测分辨率,只需转换表达式以计算到目前为止的增加:
expr: increase((metric and on() hour()>5)[18h:])==0 and on() hour()>5
我没有运行此表达式,但我希望它只会在06:00触发警报,然后在06:01熄灭。这是唯一一次该表达式在一小时内保持正确 回答您的问题
expr: increase(metric_name[1h])==0 and on() hour()==6 and on() minute()<1
它的内容是:从早上6点开始(hour()>5
),计算接下来18个小时内5-6点的增长。如果您喜欢挂起,可以删除结尾的on()hour()>5
并使用for:1h
子句
如果要在提交文件之前发出警报,从而检测分辨率,只需转换表达式以计算到目前为止的增加:
expr: increase((metric and on() hour()>5)[18h:])==0 and on() hour()>5