在带有 Prometheus 的 Grafana 中使用世界地图插件

Using world map plugin in Grafana with Prometheus

我正在将 Grafana 与 Prometheus 结合使用,并想使用世界地图插件:我的想法是我有几个地理点,其中包含一些我想用世界地图可视化的值。

从 prometheus 返回的数据示例具有以下结构:

我还编辑了 probes.json 并 100% 确定世界地图插件正在使用我自定义的 probes.json 文件。这是它的一部分:

…
{
“key”: “taipei”,
“latitude”: 25.105497,
“longitude”: 121.597366,
“name”: “Taipei”
},
{
“key”: “tokyo”,
“latitude”: 35.652832,
“longitude”: 139.839478,
“name”: “Tokyo”
},
{
“key”: “y1918”,
“latitude”: 53.717564,
“longitude”: 91.429317,
“name”: “ABAKAN”
},
{
“key”: “szvpz”,
“latitude”: 44.993166,
“longitude”: 41.103135,
“name”: “ARMAVIR”
},
{
“key”: “ugkz7”,
“latitude”: 64.5562829,
“longitude”: 40.5962809,
“name”: “ARKHANGELSK”
},
{
“key”: “v04pt”,
“latitude”: 46.3432541,
“longitude”: 47.933211,
“name”: “ASTRAKHAN”
},
…

这是 Grafana 设置:

我没有收到任何错误,但地图上没有圆圈,我做错了什么?如果这是我遇到问题的原因,我应该从普罗米修斯向 grafana 提供什么数据?添加图例格式“{{geohash}}”也无济于事。

根据 World Panel documentation,普罗米修斯不直接支持 geohashes 作为数据源,仅支持国家和州。

但是,如果您还提供带有位置数据的自定义 json 文件来解析它们,您仍然可以使用它们。

首先,配置您的 Prometheus 数据源并输入您的查询。确保将图例设置为 {{ whatever your geohash field in the Prometheus timeseries is }}。如果我没有图例,设置则什么都不会显示。

现在转到 "Worldmap" 选项卡并将 drop-down 设置为 "json endpoint" 并将 URL 指向您保存 json 文件的任何位置映射。

确保它有效 json 并确保网络服务器设置正确的 CORS headers 以便您的浏览器可以加载文件(通过网络检查器选项卡确认)。

现在刷新地图,您应该会看到数据点。

我在 grafana community forum 中得到了答案,我打算在这里重新发布,以便人们在需要时可以找到。 所以看起来 World Map Plugin for Grafana with Prometheus 支持 geohash,尽管它没有写在文档中。

要使其正常工作,您必须输入正确的设置,我从 Prometheus 提供的数据是正确的。首先,您需要将指标格式化为 table:

在世界地图面板中,您应该输入以下数据:

要让 ES Metric Field 与 geohash 一起工作,你总是应该输入 "Value",ES Location Name Field 是你从哪里得到点名,ES geo_point Filed 你从哪里得到数据geohash值来自。我从 Prometheus 获得的数据,您可以在问题部分找到。