如何在 Grafana 表中显示多个 Prometheus 服务器名称?

Posted

技术标签:

【中文标题】如何在 Grafana 表中显示多个 Prometheus 服务器名称?【英文标题】:How do I display multiple Prometheus server names in a Grafana table? 【发布时间】:2021-10-10 01:06:20 【问题描述】:

我有多个 Prometheus 数据源,希望在 1 个表中显示。我需要它们显示如下:

另一种表述方式是如何获取数据源的名称以显示在表格的每一行中。这可以用模板变量或标签函数来完成吗?

【问题讨论】:

sum by (data_source)? 好吧,如果这是你想要的,你不需要从函数或度量中获取数据源的名称。您可以在 grafana 面板上使用混合源和多个 [e 查询。然后在每个面板上写一个Legend w.r.t。您正在收集指标的数据源。 【参考方案1】:

使用“混合”数据源在一个面板中聚合多个数据源。来自docs:

混合 - 选择此项可在同一面板中查询多个数据源。选择此数据源后,Grafana 允许您为添加的每个新查询选择一个数据源。 第一个查询将使用在您选择混合之前选择的数据源。 您不能更改现有查询以使用混合数据源。

使用“合并”转换将数据合并到一个数据帧中。

要准确实现您在此处寻找的内容,最简单的方法是在 Prometheus 端为您的指标添加另一个标签,大概命名为 data_source 或类似名称。然后,您可以在表格标题中包含新标签。

您可以在prometheus.yml 中使用relabel_configs 执行此操作。例如,对于 node_exporter 之类的抓取作业(我假设您正在使用它来获取资源利用率信息),试试这个:

  - job_name: 'node_exporter'
    metrics_path: /metrics
    static_configs:
    - targets:
      - prometheus.hostname:9000
    relabel_configs:
      - source_labels: [__address__]
        target_label: data_source
        replacement: server1

我不确切知道您的设置是什么样的,但是对这些配置选项进行一些调整应该可以满足您的需求。

【讨论】:

以上是关于如何在 Grafana 表中显示多个 Prometheus 服务器名称?的主要内容,如果未能解决你的问题,请参考以下文章

连接mongodb到grafana的方法

基于Grafana+SimpleJson的灵活报表解决方案

在没有 API 的情况下删除 prometheus 中的时间序列

在 Grafana 中将多个数据系列组合为相同的值

使用通配符在 Grafana 上显示多个系列

如何在 Grafana 中显示完成百分比(我的服务器有多少是最新的)