类似表格的可视化,其中标签值作为行值和列名称

问题描述 投票:0回答:2

我有一些来自 Prometheus 数据源的指标,如下所示(真实数据包含更多标签组合):

status{pod = "A", platform = "X",} 1
status{pod = "C", platform = "X",} 3
status{pod = "A", platform = "Y",} 5
status{pod = "A", platform = "P",} 8
status{pod = "C", platform = "Y",} 7
status{pod = "B", platform = "Y",} 4
status{pod = "B", platform = "P",} 1

为此,我需要使用 Grafana 可视化来显示信息,如下所示:

X P
A 1 5 8
C 3 7
B 4 1

标签

pod
platform
无法硬编码到可视化配置中,但需要从指标的值中获取。

所以基本上,我需要:

  • pod
    标签值作为第一列的行值,
  • platform
    标签值作为下一列的列名称,并且,
  • 将指标值作为 Pod 和平台之间的交集,如上所示。

我尝试使用表格面板使用字段标签转换但无法使其工作。

那么,我怎样才能实现所描述的场景呢?我愿意接受任何可以给我带来类似结果的建议。

如果您能为我提供任何见解,我将非常感激。

最初发布于Grafana 社区。发布在这里是为了吸引更广泛的受众

prometheus grafana promql
2个回答
1
投票

我只需在 Grafana 查询编辑器上选择 Time Series 格式,然后在 Transform 选项卡中正确填充 Value field name 下拉列表。

现在我可以为该下拉列表选择

pod
,平台值将按预期呈现为列名称,并为每个 pod 提供各自的值。


0
投票

解析标签后,您会注意到默认表格上有一个

labels
列。这些可以提取为 JSON,并在表中显示为新列。

要实现这一点:

  1. Query
    选项卡中,解析您的标签(即使用诸如
    Logfmt
    之类的解析器)。您会注意到默认表格上有一个
    Labels
    列。
  2. Transform data
    选项卡中,添加
    Extract fields
    变换。
    • Source
      设置为
      labels
    • Format
      设置为
      JSON
    • 要隐藏默认列,同时仍显示时间列,请勾选
      Replace all fields
      Keep time

© www.soinside.com 2019 - 2024. All rights reserved.