You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Prometheus枚举值合并为Grafana单条State Timeline图表

解决Grafana State Timeline展示Prometheus枚举值的问题

需要使用Grafana的转换功能来合并三条时间序列,实现单条State Timeline展示,具体操作步骤如下:

  1. 查询Prometheus数据
    在Grafana查询面板中输入指标查询语句:

    my_enum
    

    此时会返回分别对应a、b、c的三条时间序列。

  2. 添加「Reduce」转换

    • 切换到「转换」标签页,点击「添加转换」,选择「Reduce」。
    • 在转换设置中:
      • 「Mode」选择「Series to rows」
      • 「Fields to reduce」保留默认的「Value」字段
        该操作会将三条序列的时间戳、枚举标签值、对应数值转换为结构化的表格数据。
  3. 添加「Filter」转换(可选)
    由于同一时间仅一个枚举值为1,可过滤掉数值为0的冗余数据:

    • 添加「Filter」转换,选择「Value」字段,条件设为「Is greater than」,值填0。
  4. 配置State Timeline面板

    • 在可视化设置中选择「State Timeline」。
    • 字段配置:
      • 「Time field」选择「Time」
      • 「State field」选择「my_enum」(即枚举标签对应的字段)
        完成后即可将不同时间点的枚举状态合并为单条时间线展示。

另外也可以通过PromQL提前处理数据,比如用label_replace结合max提取活跃枚举值:

label_replace(max by (my_enum) (my_enum * on() group_left() vector(1)), "state", "$1", "my_enum", "(.*)")

但这种方式依赖“同一时间仅一个值为1”的前提,相比之下Grafana转换的方式更稳妥直观。

内容的提问来源于stack exchange,提问作者Bill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 22:45:45