应用程序版本的 Prometheus 指标,允许在版本更改时构建警报

问题描述 投票:0回答:1

我需要为应用程序的版本构建一个指标,以检测版本更改后的异常情况并围绕它构建警报。

例如,我可以查看错误响应率。可能会有尖峰,但没关系。但是,如果错误率在部署后立即飙升,我希望收到警报。 因此,我需要一种方法来跟踪和检测应用程序的版本。

我计划构建一个具有恒定值的仪表,并使用带有版本和提交 sha1 的标签。像这样的东西:https://www.robustperception.io/exusing-the-software-version-to-prometheus/

但是,现在我正在努力构建一个查询来检测版本更改。 监视标签的变化会很棒。这似乎是不可能的。我还看到 Prometheus 将 (metric_name, label) 对保留为不同的时间序列。

可能吗?如何在 Prometheus 中保留应用程序的版本,以便我可以在警报中使用它?

prometheus metrics instrumentation promql
1个回答
0
投票

每当应用程序版本发生变化时,以下查询都会返回非空结果,并持续返回非空结果 5 分钟 - 参见方括号中的

5m

(
  count(last_over_time(app_info[5m])) without (version)
) > 1

因此,此查询可以通过

and on(instance) (...)
附加到任何警报查询,因此生成的查询将触发(例如,仅当原始查询触发并且应用程序的版本在过去 5 年内发生更改时,才会返回非空结果分钟。请参阅有关
and
运算符
on()
修饰符
的文档。

© www.soinside.com 2019 - 2024. All rights reserved.