普罗米修斯在缺席的情况下使用avg_over_time

时间:2018-07-20 15:47:16

标签: grafana prometheus promql

我们已经开始使用Prometheus来监视我们的基础架构。一种服务已配置了以下警报:

  • (缺少(up {job =“ service”}}或(up {job =“ service”} == 0)+1)== 1

这样,如果“ up”为零或无法达到任何指标,我们将收到警报。

现在,我们需要一个显示服务的“正常运行时间”的grafana“单一状态”面板,但“ avg_over_time”不能与“ absent”一起使用,因此我们可以在其中添加“ absent”之类的选项正常运行时间的面板?

1 个答案:

答案 0 :(得分:0)

您可以通过以下类似方式对其进行估算:

sum_over_time(up{job="service"}[24h]) / sum_over_time(up{job="prometheus"}[24h])

这会将记录您的服务为“运行中”(过去24小时)的样本数除以记录普罗米修斯为“运行中”的样本数。

否则,您可以使用一条记录规则来记录类似于您的警报条件的内容,如果服务已启动,则该值为1,否则为0。然后您可以在该指标上使用avg_over_time()