0

我正在尝试为多个 Prometheus 数据源配置 Grafana 仪表板。这两个数据源存在于两个不同的服务器中。

Prometheus 从三个作业中抓取指标,prometheus 本身,用于主机指标的节点导出器,用于 docker 容器指标的顾问。

prometheus.yaml看起来像:

global:
 scrape_interval: 5s
scrape_configs:
 - job_name: 'prometheus'
   static_configs:
       - targets: ['localhost:9090']
 - job_name: 'node-exporter'
   static_configs:
     - targets: ['node-exporter:9100']
 - job_name: 'cadvisor'
   static_configs:
     - targets: ['cadvisor:8080']

两台服务器都使用相同的 yaml 配置。

我在 Grafana UI 中创建了两个数据源,它们各自的名称是Prometheus, 和Prometheus-Certify. 第一个数据源是默认数据源。我正在使用 Grafana v7.1.0。

这是我的仪表板对于数据源的样子Prometheus

仪表板-1

还有其他面板,但显示这些面板就足以解释问题。

如果单击Host下拉选项,则可以看到 hosts cadvisor:8080localhost:9090node-exporter:9100

要求

我想要实现的是为两个数据源配置此仪表板。我可以看到datasource下拉菜单中的所有选项default, Prometheus, Prometheus-Certify. 当我选择特定数据源时,我希望仪表板向我显示来自特定源的数据。这就是我卡住的地方。

我对此进行了研究,发现我们可以在一个面板中同时显示来自两个不同来源的数据。我在 Grafana 文档和这个线程中看到了这个选项,它实际上让我更接近我想要实现的目标。

所以我遵循了这种方法并--Mixed--为面板配置了数据源。

仪表板-2

它完美地工作并且在不同的面板上执行相同的操作导致了这个:

仪表板-3

虽然它有效,但是,这不是我想要做的。这里的问题是:

  1. 为了查看来自两个来源的数据,我必须为每个面板执行此操作。
  2. 它同时显示来自两个来源的数据。我只想查看来自所选数据源的数据,而不是两者。
  3. 如果我将来添加另一个数据源,我将不得不重新执行所有操作。

我看到很多地方都建议使用[模板和变量][6]。我试了一下,但它什么也没做。

如果更改变量是要走的路,那么请仅提供针对此问题的建议,因为我已经浏览了该部分并且找不到任何特定于此的内容。

我希望我能够向你们解释我的问题。我只想查看来自所选数据源的数据而不创建新仪表板。您的帮助将不胜感激。谢谢你。

4

1 回答 1

0

我意识到我导入的仪表板创建了一个变量DS_PROMETHEUS,它的类型是Datasource.

仪表板-1

此变量保存所选数据源的值。我无法看到来自所选数据源的数据,因为数据源在面板的查询中有点硬编码。

仪表板-2

正如您在上图中所见,预选的数据源是Prometheus. 更改此值以$DS_PROMETHEUS完成工作。

仪表板-3

所以这一切都归结为如何使这个变量作为每个面板中每个查询的数据源?现在的问题是如何运行查询/命令来一次修改多个面板的设置。

在做了一些研究后,我发现了这个线程。它已被归类为功能请求。Person/People 已经开发了一种工具来处理这些场景。到目前为止,我还没有使用过这个工具,但是一旦我使用它,我会更新我的答案。

简单而老式的方法是用仪表板 JSON 中的任何地方prometheus替换。$DS_PROMETHEUS所以我做到了,瞧!有效。

于 2020-08-11T00:39:59.067 回答