【问题标题】:Prometheus use of avg_over_time with absentPrometheus 使用 avg_over_time 与缺席
【发布时间】:2018-12-28 23:31:51
【问题描述】:
我们已经开始使用 prometheus 来监控我们的基础架构。一项服务配置了以下警报:
- (缺席(up{job="service"}) 或 (up{job="service"} == 0)+1) == 1
这样,如果“up”为零或无法访问任何指标,我们就会收到警报。
现在我们想要一个 grafana “single stat”面板来显示服务的“正常运行时间”,但是“absent”不能与“avg_over_time”一起使用,有一个选项可以在我们的uptime 的面板?
【问题讨论】:
标签:
grafana
prometheus
promql
【解决方案1】:
你可以这样近似:
sum_over_time(up{job="service"}[24h]) / sum_over_time(up{job="prometheus"}[24h])
这会将记录您的服务“正常”(过去 24 小时内)的样本数除以记录 Prometheus “正常”的样本数。
否则,您可以使用记录规则来记录与警报条件类似的内容,如果您的服务已启动,则值为 1,否则为 0。然后您可以在该指标上使用avg_over_time()。