Prometheus:如何检查给定指标和标签组合是不是存在至少一个时间序列?

Posted

技术标签:

【中文标题】Prometheus:如何检查给定指标和标签组合是不是存在至少一个时间序列?【英文标题】:Prometheus : How to check if there is atleast one time series for a given metric and label combination?Prometheus:如何检查给定指标和标签组合是否存在至少一个时间序列? 【发布时间】:2021-08-09 15:35:27 【问题描述】:

我有指标 LATENCY 和标签 status。 我想在LATENCYstatus=CRITICAL 时发出警报

LATENCYstatus="CRITICAL"

LATENCY 状态只有在延迟超过阈值时才会很关键。 如何检查LATENCYstatus="CRITICAL"是否至少有一个时间序列?

我用了expr: absent(LATENCYstatus="CRITICAL") == 0,但是没用。

【问题讨论】:

count(LATENCYstatus="CRITICAL") >0? @anemyte 非常感谢,它有效!只是好奇我可以给 expr: LATENCYstatus="CRITICAL" 吗?如果有一个或多个矢量元素,则警报将被视为处于活动状态 【参考方案1】:

首先你可以试试下面的表达式:

count(LATENCYstatus="CRITICAL") > 0

如果没有按预期工作,请尝试以下方法:

count(LATENCYstatus="CRITICAL" or vector(0)) > 1

【讨论】:

非常感谢,它有效!只是好奇我可以给 expr: LATENCYstatus="CRITICAL" 吗?如果有一个或多个矢量元素,则警报将被视为处于活动状态 表达式必须返回真或假。 根据文档“只要警报表达式在给定时间点产生一个或多个矢量元素,警报就会被视为这些元素的标签集的活动。”我错过了什么吗? prometheus.io/docs/prometheus/latest/configuration/… 嗯...我认为你是对的,我不知道为什么 "LATENCY(status="CRITICAL"" 不起作用。

以上是关于Prometheus:如何检查给定指标和标签组合是不是存在至少一个时间序列?的主要内容,如果未能解决你的问题,请参考以下文章

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

Prometheus:每个用户的标签 VS 每个用户的指标

如何在 Prometheus/Grafana 中不指定标签的情况下通过唯一标签计算指标数量?

如何查询 Prometheus 中所有具有特定标签值的时间序列?

具有动态标签值的 Prometheus 指标

仅在不存在的情况下在 Python 中注册 Prometheus 指标