如何配置Grafana Geomap:解决经纬度与CPU值展示问题
在Grafana Geomap中配置经纬度字段展示CPU数据
以下是几种可行的解决方案,针对你遇到的经纬度字段不支持字符串的问题:
方案1:用Grafana字段转换直接映射国家到数值经纬度
这是最快速的临时方案,适合国家数量不多的场景:
- 确保你的Prometheus查询返回带
country标签的CPU聚合值,比如:sum(rate(cpu_usage_total{job="your-service"}[5m])) by (country) - 切换到面板的Transform标签页,点击Add transformation,选择Add field from calculation:
- 第一个字段命名为
latitude,类型选Number,计算模式选Condition - 依次添加条件:比如当
country等于China时返回35.8617,当country等于USA时返回37.0902,以此类推覆盖所有需要展示的国家 - 重复上述步骤,创建
longitude字段,对应每个国家的经度数值(比如China对应104.1954)
- 第一个字段命名为
- 回到Geomap配置页,在Location区域选择
Coordinates,分别将latitude和longitude绑定到对应的字段,Value字段选择CPU的聚合数值字段即可
方案2:在Prometheus层添加经纬度标签(推荐长期方案)
从指标源头处理,避免在Grafana中做大量映射:
- 如果可以修改采集配置,在暴露CPU指标时直接为每个实例添加数值型的
latitude和longitude标签,比如:cpu_usage_total{job="your-service", country="China", latitude="35.8617", longitude="104.1954"} 42.5 - 或者通过Prometheus的
relabel_configs做标签映射,在prometheus.yml中添加:relabel_configs: - source_labels: [country] target_label: latitude replacement: '35.8617' regex: China - source_labels: [country] target_label: longitude replacement: '104.1954' regex: China # 为其他国家添加相同格式的规则 - 在Grafana中查询时,带上经纬度标签做聚合:
sum(rate(cpu_usage_total{job="your-service"}[5m])) by (country, latitude, longitude) - 切换到Transform标签页,添加Convert field type转换,把
latitude和longitude从字符串类型转为Number - 最后在Geomap配置中绑定这两个数值字段即可
方案3:用Lookup数据源批量映射国家与经纬度
适合需要管理大量国家映射的场景:
- 创建一个包含国家、纬度、经度的JSON文件,示例内容:
[ {"country": "China", "latitude": 35.8617, "longitude": 104.1954}, {"country": "USA", "latitude": 37.0902, "longitude": -95.7129}, {"country": "Germany", "latitude": 51.1657, "longitude": 10.4515} ] - 在Grafana中添加这个JSON文件作为数据源(使用支持本地JSON的数据源插件)
- 在面板中添加两个查询:一个是Prometheus的CPU聚合查询,一个是JSON数据源的国家经纬度查询
- 切换到Transform标签页,添加Join转换,通过
country字段将两个查询的结果关联起来,生成包含CPU值、纬度、经度的合并数据集 - 确认经纬度字段为数值类型后,在Geomap中配置对应字段
注意事项
- 必须确保
latitude和longitude字段是数值类型,可在Grafana的字段面板(右侧边栏)查看字段类型,若为字符串需用Convert field type转换 - Geomap的Location模式必须选择
Coordinates,不要选Country/Region(后者依赖Grafana内置的地理名称解析,可能和你的标签不匹配) - 如果
country标签存在大小写不一致的情况,可先添加Convert field type将country转为小写/大写,再做映射匹配
内容的提问来源于stack exchange,提问作者cloud-engineer
相关产品推荐
相关产品推荐

