Grafana: (4) 使用外联表格(Outer Join Table) 展示多个查询结果

建议点击 查看原文 查看最新内容。

原文链接: https://typonotes.com/posts/2023/06/16/grafana-outer-join-table/

在使用 Grafana 的时候, 通常会希望将 多个查询结果 展示到 同一个的表格 上。

这个时候, 就需要使用到 外联表格

我们现在需要一个表格, 展示 Pod 的的状态, 包括 CPU 的 当前、 Request、 Limit

查询的合并

1
2
3
4
5
6
7
8
# 当前用量
container_cpu_usage_seconds_total{pod=~"node-exporter-.*"}

# request
kube_pod_container_resource_requests_cpu_cores{pod=~"node-exporter-.*"}

# limit
kube_pod_container_resource_limits_cpu_cores{pod=~"node-exporter-.*"}

可以看到, 多个查询以 字母 区分 (A,B,C)

在没进行展示优化钱, grafana 会按照查询 独立展示 表格内容。 用户需要在下拉菜单中选择对应的查询展示。

外联表格

通过 相同字段 进行 外联。 这里选择 pod

  1. 在查询 Query 标签旁有 Transform 的标签, 用于对表格进行高级处理(变形)。
  2. 在 Transform 中搜索 Outer Join 外联选型。
  3. 在 Outer Join 中, 为 Field name 选择 外联字段。 我们这里选择 pod, 因为 pod 名是唯一且相同的。

  1. 在展示界面, 可以看到其他 冲突 字段已经自动命名了 数字后缀 用与区分, 例如 namespace 1
  2. 对应的, 值字段 字段名根据查询条件对应并区分, Value #A

优化外联表格

优化外联表格展示, 也在 Transform 标签中选择属性。

  1. 进入到 Transform 标签
  2. 选择属性 Organize fields
  3. 隐藏所有字段, 显示需要字段。 这里为 namespace, pod, Value #A-C
  4. 将字段名称添加 具有字面意义/阅读性好 的名称。

在调整完成后, 可以看到表格和之前对比,已经非常简洁清爽了。

使用 Overrides 优化字段

虽然我们使用了 Transform 进行表格优化, 同样的也可以使用 Overrides 对字段进行二次优化。

这里就不多说了, 在之前 Grafana: (2) 创建第一个 Table 表格面板 时已经做过详细阐述。

这里主要提一下, 使用 Overrides 的时候, 会多刚才我们在 Transform 下 Organize Table 时的 自定义字段名称

  1. 使用 字段名义名称 进行选中, 意味着与查询条件的位置进行 解耦 了。
  2. 相对的, 自定义名称 也不能在随意更改了。