可在警报模板中使用的 Prometheus 标签和变量列表是什么

dor*_*and 0 prometheus prometheus-alertmanager

我正在为 Prometheus 编写一些检查,我想知道我可以在模板中使用哪些变量。我正在使用$labels.container,但是$labels.service$labels.instance不起作用。例如,我在普罗米修斯查询中使用实例,但无法在模板中使用它。如何找到所有标签或可以在模板中使用的其他变量?我实现了用 python 编写的自己的导出器,用于控制 docker swarm 中的哪些容器不断重新启动。

我是 Prometheus 和 Alertmanager 的新手,在我看来,文档看起来不太清楚。谢谢。

bja*_*ski 5

可用标签是警报查询返回的标签。因此,如果您的查询如下所示:

sum ( something_here ) > 0
Run Code Online (Sandbox Code Playgroud)

您将没有可用的标签。

如果你有

sum by (label_foo)(...) > 0
Run Code Online (Sandbox Code Playgroud)

那么你将只有 label_foo 可用。

如果你这样做:

metric_name
Run Code Online (Sandbox Code Playgroud)

然后您将获得 metric_name 指标上可用的所有标签。

只需直接在普罗米修斯中执行警报查询(确保查询确实返回某些内容 - 删除任何阈值等),您就会看到可用的标签。