You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Grafana Geomap:解决经纬度与CPU值展示问题

在Grafana Geomap中配置经纬度字段展示CPU数据

以下是几种可行的解决方案,针对你遇到的经纬度字段不支持字符串的问题:

方案1:用Grafana字段转换直接映射国家到数值经纬度

这是最快速的临时方案,适合国家数量不多的场景:

  1. 确保你的Prometheus查询返回带country标签的CPU聚合值,比如:
    sum(rate(cpu_usage_total{job="your-service"}[5m])) by (country)
    
  2. 切换到面板的Transform标签页,点击Add transformation,选择Add field from calculation:
    • 第一个字段命名为latitude,类型选Number,计算模式选Condition
    • 依次添加条件:比如当country等于China时返回35.8617,当country等于USA时返回37.0902,以此类推覆盖所有需要展示的国家
    • 重复上述步骤,创建longitude字段,对应每个国家的经度数值(比如China对应104.1954)
  3. 回到Geomap配置页,在Location区域选择Coordinates,分别将latitude和longitude绑定到对应的字段,Value字段选择CPU的聚合数值字段即可

方案2:在Prometheus层添加经纬度标签(推荐长期方案)

从指标源头处理,避免在Grafana中做大量映射:

  1. 如果可以修改采集配置,在暴露CPU指标时直接为每个实例添加数值型的latitude和longitude标签,比如:
    cpu_usage_total{job="your-service", country="China", latitude="35.8617", longitude="104.1954"} 42.5
    
  2. 或者通过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
      # 为其他国家添加相同格式的规则
    
  3. 在Grafana中查询时,带上经纬度标签做聚合:
    sum(rate(cpu_usage_total{job="your-service"}[5m])) by (country, latitude, longitude)
    
  4. 切换到Transform标签页,添加Convert field type转换,把latitude和longitude从字符串类型转为Number
  5. 最后在Geomap配置中绑定这两个数值字段即可

方案3:用Lookup数据源批量映射国家与经纬度

适合需要管理大量国家映射的场景:

  1. 创建一个包含国家、纬度、经度的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}
    ]
    
  2. 在Grafana中添加这个JSON文件作为数据源(使用支持本地JSON的数据源插件)
  3. 在面板中添加两个查询:一个是Prometheus的CPU聚合查询,一个是JSON数据源的国家经纬度查询
  4. 切换到Transform标签页,添加Join转换,通过country字段将两个查询的结果关联起来,生成包含CPU值、纬度、经度的合并数据集
  5. 确认经纬度字段为数值类型后,在Geomap中配置对应字段

注意事项

  • 必须确保latitude和longitude字段是数值类型,可在Grafana的字段面板(右侧边栏)查看字段类型,若为字符串需用Convert field type转换
  • Geomap的Location模式必须选择Coordinates,不要选Country/Region(后者依赖Grafana内置的地理名称解析,可能和你的标签不匹配)
  • 如果country标签存在大小写不一致的情况,可先添加Convert field type将country转为小写/大写,再做映射匹配

内容的提问来源于stack exchange,提问作者cloud-engineer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 01:15:53