Prometheus的Grafana仪表板无法工作

3
我是Grafana和Prometheus的新手。我使用来自此帖https://github.com/vegasbrianc/prometheus的docker-compose.yml设置了Prometheus、Grafana、Alertmanager、Nodeexporter和Cadvisor。
我还导入了Grafana仪表板#893,地址为https://grafana.com/dashboards/893
但是,该仪表板不能正常工作,因为我可以看到一些面板中出现了“N/A”。例如以下是面板使用的查询,并且我无法找出如何获取查询中模板变量的值。我查看了http://node-exporter:9100/metrics,没有看到变量"$server"的值。
Query1: time() - node_boot_time{instance=~"$server:.*"}
Query2:min((node_filesystem_size_bytes{fstype=~"xfs|ext4",instance=~"$server:.*"} - node_filesystem_free_bytes{fstype=~"xfs|ext4",instance=~"$server:.*"} )/ node_filesystem_size_bytes{fstype=~"xfs|ext4",instance=~"$server:.*"})

我应该如何配置node-exporter和prometheus以在查询中评估模板变量$server?

在我的仪表板设置中-->变量,我看到一个类型为“query”的变量'server',并且查询=label_values(node_boot_time, instance)。这个查询是如何工作的? - cnu
2个回答

1

$server 是 Grafana 模板变量。通常这些会显示为 Grafana 仪表板顶部的下拉菜单。

label_values 是一个Prometheus-specific Grafana函数,应用于 Prometheus 查询中。你的特定示例 label_values(node_boot_time, instance) 将返回 Prometheus 收集的所有 node_boot_time 指标的 instance 标签的所有值(即 Prometheus 监控的所有节点导出器目标)。

我没有使用过你所用的仪表板(或节点导出器),但通常面板显示“N/A”或没有值,而其他面板正常工作的原因是底层指标名称可能已更改。您可以在Grafana中单击有问题的面板标题,选择编辑,然后单击指标选项卡以尝试不同的指标名称。如果需要“灵感”,请检查您的节点导出器的/metrics端点。如果您不知道如何访问它,请在Prometheus Web界面上导航到状态>目标,然后单击您的节点导出器的URL。

我已将指标名称从node_boot_time更改为node_boot_time_seconds,因为我可以在node-exporter/metrics中看到这个名称。但出于某种原因,似乎Grafana无法评估此查询。当我在Prometheus查询中键入“node_boot_time”时,我可以看到实例的值。我将进一步研究。 - cnu

0
一个老问题,但对我仍然没有用。原因是label_values(...)可以很好地获取所有具有node_boot_time指标的实例名称。
问题在于接下来的正则表达式(下一行)。在我的情况下,它类似于“/([^:].*):/”,有些棘手。我的实例名称以“i-”开头,不包含冒号,因此没有被选中。我只是使用ProductCode来找到正确的实例。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接