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中你只需要显示结果中的标签。