为啥 Prometheus 不会在不可见的指标上引发错误?

Posted

技术标签:

【中文标题】为啥 Prometheus 不会在不可见的指标上引发错误?【英文标题】:Why Prometheus does not raise error on invisible metric?为什么 Prometheus 不会在不可见的指标上引发错误? 【发布时间】:2021-12-14 21:36:45 【问题描述】:

我们有一个自定义指标,仅在应用中出现某些错误情况时才会导出

警报规则使用在 Prometheus 的规则管理器中注册的自定义指标

为什么 Prometheus 在查询此指标名称时不会引发错误?尽管该指标在 Prometheus 中尚不可用...

【问题讨论】:

【参考方案1】:

没有信号不被视为错误似乎是正确的。

但是,它可能会导致仪表板和警报出现问题。

请参阅 Prometheus 的一位创作者的演示文稿:Best Practices & Beastly Pitfalls

【讨论】:

具有不可见指标的警报规则已成功与 Prometheus 挂钩。 “挂钩”是指警报已注册吗?这是意料之中的。或者,您的意思是警报触发?这是出乎意料的。如果您在问题中包含您正在做什么和观察的详细信息,将会很有帮助。 是的,警报已注册。我们正在观察“缺失系列”问题,因为在使用该指标注册警报之前,指标名称尚未在目标中检测。 请看一下我在回答中包含的牌组(参见幻灯片#10+)和Existential issues with metrics

以上是关于为啥 Prometheus 不会在不可见的指标上引发错误?的主要内容,如果未能解决你的问题,请参考以下文章

Spring boot 2.3.4 - Kafka 指标在 /actuator/prometheus 中不可见

在不使用 spring-boot 执行器的情况下将来自 spring 应用程序的指标公开给 prometheus

prometheus问题赏析-填坑的心路历程

使用 prometheus 的自定义计数器在 /actuator/prometheus 上不可见

指标在普罗米修斯中不可见

Prometheus 使用 PushGateway 进行数据上报采集