Select 出现频率最高的指标值
Select the most frequent metric value
我需要创建一个 PromQL 查询以 select 最频繁的指标值并将其显示在 Grafana 面板中;像 (Find most frequent value in SQL column)
在以下示例中,对于带有标签 job
的指标 status
,
我想在面板中显示 status 1(给定计数 1
= 2,算作 2
= 1,算作 3
= 1 )(并可能在 Grafana 中使用 1
,即作为面板 Values Mapping 部分中的值,例如 Polystat) .
status(job="a") = 1
status(job="b") = 2
status(job="c") = 1
status(job="d") = 3
尝试:
count_values("val", status)
您可以尝试对其应用 topk(1, ...)
,但这很棘手(如果两个最高值的出现次数相同怎么办?)。
查询max(count_values("value",status)) == ignoring(value) group_right count_values("value",status)
会给你
{value="1"} 2
(与 topk
不同,如果多个指标具有相同的最大计数,可能会给您更多行)。
然后在Grafana中你只需要显示结果中的标签。
我需要创建一个 PromQL 查询以 select 最频繁的指标值并将其显示在 Grafana 面板中;像 (Find most frequent value in SQL column)
在以下示例中,对于带有标签 job
的指标 status
,
我想在面板中显示 status 1(给定计数 1
= 2,算作 2
= 1,算作 3
= 1 )(并可能在 Grafana 中使用 1
,即作为面板 Values Mapping 部分中的值,例如 Polystat) .
status(job="a") = 1
status(job="b") = 2
status(job="c") = 1
status(job="d") = 3
尝试:
count_values("val", status)
您可以尝试对其应用 topk(1, ...)
,但这很棘手(如果两个最高值的出现次数相同怎么办?)。
查询max(count_values("value",status)) == ignoring(value) group_right count_values("value",status)
会给你
{value="1"} 2
(与 topk
不同,如果多个指标具有相同的最大计数,可能会给您更多行)。
然后在Grafana中你只需要显示结果中的标签。