尽管 Prometheus 数据源已成功验证,但 Grafana 无法获取 Prometheus 指标

Posted

技术标签:

【中文标题】尽管 Prometheus 数据源已成功验证,但 Grafana 无法获取 Prometheus 指标【英文标题】:Grafana is not able to get Prometheus metrics although Prometheus Datasource is validated successfully 【发布时间】:2017-01-04 16:23:35 【问题描述】:

我正在尝试将 Grafana 配置为可视化 Prometheus 收集的指标。 我的 Prometheus 数据源已成功验证。但是当我尝试创建仪表板时,它会显示错误消息"can not read property 'result' of undefined"

我正在添加屏幕截图。

【问题讨论】:

【参考方案1】:

看起来您指向的是节点导出器端点,而不是 Prometheus 服务器。默认的 Prometheus Server 端点是 9090。尝试将源更改为 http://192.168.33.22:9090

Grafana 不直接查询 Node Exporter,它查询 Prometheus Server 收集时间序列统计信息。

【讨论】:

谢谢@dcos。在您的宝贵帮助下,终于可以在 grafan 中访问 proemtheus 指标了。 但是我已经在数据源中给出了PRometheus url,仍然没有获取数据,任何想法 您是否将访问类型从代理更改为直接?您是否在所有 k8s 节点上安装了 node_exporter?【参考方案2】:

请参阅下面的指南来解决问题!

只要你的 Grafana 和 Prometheus 都作为 docker 镜像运行,这将起作用,所以在开始之前,请运行以下命令以确保 prom 和 Grafana 镜像都已启动

docker ps 

要将 prometheus 连接到 GRAFANA,您需要从主机获取作为 docker 映像运行的 prometheus 服务器 IP 地址。

在您的终端上使用此命令显示所有容器 ID:

docker ps -a 

您将看到显示的 prometheus 服务器容器 ID,例如“faca0c893603”。请复制 ID 并在您的终端上运行以下命令以查看您的 Prometheus 服务器的 IP 地址:

docker inspect -f 'range.NetworkSettings.Networks.IPAddressend' faca0c893603 

注意:(faca0c893603 是 prom/prometheus 服务器的 ContainerID)

当你运行该命令时,它会显示 Prometheus 容器的 IP 地址(172.17.0.3),该容器需要与 Grafana 上的 prometheus 服务器的端口进行映射。

在 Grafana 上的数据源上,将其放在 URL http://172.17.0.3:9090 上并尝试保存并测试。

【讨论】:

以上是关于尽管 Prometheus 数据源已成功验证,但 Grafana 无法获取 Prometheus 指标的主要内容,如果未能解决你的问题,请参考以下文章

验证 prometheus 指标是不是已更新

尽管订阅成功,Paypal 仍返回“INVALID”

npm install 成功,但 npm run start 无法找到 rimraf 和 react-scripts,尽管它们已安装

尽管 Angular 中的表单已重置,但输入字段仍标记为红色

prometheus-adapter 空项目列表但成功的 HTTP 请求

尽管验证成功,Auth对象仍为空