如果报告的普罗米修斯测量指标超过3小时,则发出警报



我大约每个月在基础设施中的每个主机上运行一个进程。每当进程在任何主机上运行时,它都会发送一个度量"process_running{instance=<>}";每分钟一次,当进程退出时,显然没有指标从该主机发送到PROM。现在,我想在进程卡在任何主机上时发出警报—该主机正在运行>3 h。我尝试了各种组合的缺席()和度量<>本身。但是,当我执行group by (instance)

时,它不起作用。

如果您知道Prometheus为给定instance记录的度量process_running的样本间隔(该间隔称为scrape_interval),则可以使用以下查询来确定时间序列,该时间序列在最后一天持续超过3小时:

(count_over_time(process_running[1d]) * scrape_interval) > 3*3600

如果scrape_interval是未知的,那么普罗米修斯不提供确定时间序列持续时间的能力。在这种情况下,您可以使用victoria ametrics的lifetime()函数(这是我使用的一个类似普罗米修斯的监控系统)。例如,下面的MetricsQL查询返回时间序列,这些时间序列在最后一天接收样本超过3小时:

lifetime(process_running[1d]) > 3h

最新更新