普罗米修斯查询 grafana 中的表

lac*_*ted 9 grafana prometheus

当我制作一个表格面板并转到“选项”选项卡时,列参数设置为自动:列及其顺序由数据查询决定。

是否有关于如何为 grafana 表编写 prometheus 查询的文档?

我的普罗米修斯数据是一个带有 2 个标签的指标,my_col并且my_row

my_metric{instance="lh",job="job",my_col="1",my_row="A"} 6
my_metric{instance="lh",job="job",my_col="2",my_row="A"} 8
my_metric{instance="lh",job="job",my_col="1",my_row="B"} 10
my_metric{instance="lh",job="job",my_col="2",my_row="B"} 17
Run Code Online (Sandbox Code Playgroud)

我想做一个看起来像的表:

|   | 1 | 2 |
| A | 6 | 8 |
| B | 10| 17|
Run Code Online (Sandbox Code Playgroud)

小智 7

经过在Grafana 9.1.1中的一些实验后,我获得了一种构建表的方法,就像您使用普罗米修斯度量所描述的那样。以下是您需要的Grafana转换函数:

  1. 字段标签
    此函数将指标中的标签分隔为列。
  • 将模式设置为
  • 将标签设置为仅相关的列,因此在本例中为my_colmy_row
  • 值字段名称设置为my_col
  1. 减少
    此功能将不同时间的所有值减少到一行。
  • 将模式设置为减少字段
  • 将计算设置为Last*。您可以根据您的需要更改这部分。
  • 包含时间设置为false
  1. 合并
    此功能会将所有数据集合并为一个具有相应列的数据集。
  2. 组织字段
    最后,此功能将帮助您将表格重新组织为更合适的内容。为了以条形图显示数据,请确保my_row列是最左边的一列。


fis*_*man 6

Grafana 7.0.3 可以实现这一点。我认为早期版本也是可能的,但自 7.0.0 以来,随着转换的引入,这种方法已经发生了变化。

添加两个查询:

my_metric{instance="lh",job="job",my_col="1"}
my_metric{instance="lh",job="job",my_col="2"}
Run Code Online (Sandbox Code Playgroud)

让它们即时查询并将它们格式化为表格。创建转换Outer join并通过 加入my_col。您应该得到两个值Value #AValue #B。您可以使用转换Organize fields来重命名它们并删除所有其他字段。


小智 2

Grafana 文档中有一些关于表格面板的文档:https://grafana.com/docs/features/panels/table_panel/#table-panel

不幸的是,您在示例中显示的特定转换似乎在上述文档中不受支持。

如果可能的话,将普罗米修斯数据的结构更改为如下所示应该会使这更容易:

my_metric{instance="lh",job="job",col_1="6",col_2="8",my_row="A"}
my_metric{instance="lh",job="job",col_1="10",col_2="17",my_row="B"}
Run Code Online (Sandbox Code Playgroud)