关于缺失系列/数据的警报

Posted

技术标签:

【中文标题】关于缺失系列/数据的警报【英文标题】:Alert on missing series/data 【发布时间】:2019-03-19 18:43:30 【问题描述】:

我正在尝试了解如何在不再抓取指标时让 Grafana 提醒我。

我在此示例中使用的指标是mongodb_instance_uptime_seconds。当实例关闭时,不再生成指标,导致 Prometheus 中缺少指标。目前警报在when last() query(A, 1m, now) < 600 上触发。如您所见,目标是在正常运行时间低于 5 分钟时发出警报。这意味着我想提醒重启和停止,但 Grafana 不会在一个实例关闭时发出警报,因为 last() 值实际上不存在,并且当实例关闭超过 5 分钟时,它甚至不再报告。

关于如何前进的任何线索?

【问题讨论】:

【参考方案1】:

通常用于确定实例是否被成功抓取的指标是up。它是由所有抓取作业自动生成的,因此如果您想要对任何已关闭的抓取端点发出警报,只需使用查询up == 0,它将显示最后一次抓取未成功的任何端点。如果您只想针对此特定端点发出警报,请使用 upinstance="mongodb.foo.com",job="mongo" == 0 等标签

如果您曾经有兴趣使用 Alertmanager 而不是 Grafana,规则如下所示:

groups:
- name: General
  rules:
  - alert: Endpoint_Down
    expr: up == 0
    for: 5m
    labels:
      severity: critical
    annotations:
      summary: "Exporter is down:  $labels.instance "
      description: "The endpoint  $labels.instance  is not able to be scraped by Prometheus."

【讨论】:

在警报配置界面上,我在哪里可以找到up?我可以看到avgcountsum 等内容,但看不到up 不要单独在up 上设置警报,而是考虑在absent 上设置它。例如:absent(uppod=~"deployment-name.+")==1 @samadmontazeri 你能解释一下原因吗?对我来说缺席不会返回任何数据点。 absent 不应该替换。缺席的目的是检查时间序列是否缺少数据robustperception.io/absent-alerting-for-jobs。在上面的情况下,up ==0 会在没有东西被抓取时返回,但如果它刚刚从发现中消失,absent(up) 会发出警报。也不是一个包罗万象的@judos

以上是关于关于缺失系列/数据的警报的主要内容,如果未能解决你的问题,请参考以下文章

关于 Nan 值的 Prometheus 警报

以系列值和丰富的文本格式发送警报通知。

关于风控业务中特征缺失值的思考

关于风控业务中特征缺失值的思考

关于风控业务中特征缺失值的思考

关于api-ms-win-crt-runtimel1-1-0.dll缺失的解决方案