在 Prometheus 中显示标签出现次数大于 N 的系列 table

Display table for series with label's occurrence count greater than N in Prometheus

在 Prometheus 中,在下面给出的指标定义中,我如何为指标系列的前 5 个经常性设备部分呈现 table?

top_5_noisy_devices:

    { "device" : "1234", "type" : "foo"}
    { "device" : "1234", "type" : "foo"}
    { "device" : "1234", "type" : "foo"}
    { "device" : "2345", "type" : "foo"}
    { "device" : "4231", "type" : "foo"}
    { "device" : "4354", "type" : "foo"}

我想在 Grafana 中为上述标签呈现一个 table 以显示设备 1234 是所选持续时间内的嘈杂设备。 我尝试了 topk 运算符,但它呈现了超过 3 个。(我在 table 中看到了 100 行,而不仅仅是 3 行) https://www.robustperception.io/graph-top-n-time-series-in-grafana 声称在 Grafana 中支持 topk。但是我不明白如何让它适应 table.

prometheus好像不支持这个功能。 参考文献:

  1. Prometheus topk returns more results than expected
  2. https://github.com/prometheus/prometheus/issues/586

我使用下面的方法来显示 table。

  • 定义一个具有少量静态值的变量 interval(示例)

  • 在 Grafana 中添加面板(作为 table 或您选择的饼图)并在查询下方使用

topk(5,round(increase(top_5_noisy_devices{type="Foo"}[$interval])))

  • 图例格式为{{设备}}
  • 格式为 -> 时间序列
  • 图例格式为{{设备}}
  • Select即时复选框

并使用变量选择任何间隔下拉列表来获取特定时期的 topk 数据。