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

Grafana已部署仪表盘提示${prometheus}数据源不存在的修复方法咨询

修复Grafana 9.2.15升级后仪表盘数据源绑定问题

问题根源

升级后仪表盘内的数据源占位符${prometheus}未与实际部署环境的Prometheus数据源完成映射,而手动导入时Grafana会触发数据源匹配引导流程,因此能正常工作。以下是几种可行的修复方案:


方案1:通过Grafana API批量更新(适合自动化场景)

适合用Ansible管理多环境的场景,批量修正已部署仪表盘的数据源绑定:

  1. 获取目标Prometheus数据源的UID
    调用API获取所有数据源列表,提取目标Prometheus的UID:

    curl -X GET -H "Authorization: Bearer YOUR_GRAFANA_API_TOKEN" http://<grafana-host>:<port>/api/datasources
    

    从返回JSON中找到对应Prometheus数据源的uid字段值(例如prom-prod-123)。

  2. 批量更新仪表盘数据源映射
    先获取所有仪表盘的UID列表:

    curl -X GET -H "Authorization: Bearer YOUR_GRAFANA_API_TOKEN" http://<grafana-host>:<port>/api/search?type=dash-db | jq '.[] | .uid'
    

    对每个仪表盘UID,执行数据源映射更新:

    curl -X POST -H "Authorization: Bearer YOUR_GRAFANA_API_TOKEN" \
      -H "Content-Type: application/json" \
      http://<grafana-host>:<port>/api/dashboards/uid/<TARGET_DASHBOARD_UID>/datasource/map \
      -d '{
        "datasourceUid": "prom-prod-123",
        "oldDatasourceName": "${prometheus}"
      }'
    

    可将此逻辑整合进Ansible playbook,实现自动化批量修复。


方案2:修改仪表盘JSON并重新部署(适配Ansible复用流程)

调整复用的仪表盘模板,消除动态占位符与实际数据源的不匹配:

  1. 修改仪表盘JSON文件
    打开模板JSON,将所有"datasource": "${prometheus}"的字段,替换为目标环境Prometheus数据源的名称或UID:

    // 替换前
    "datasource": "${prometheus}",
    // 替换后(示例)
    "datasource": "Prometheus-Production",
    // 或使用UID更可靠
    "datasource": "prom-prod-123",
    
  2. 用Ansible重新部署
    使用grafana_dashboard模块部署时,可通过datasource参数强制指定数据源映射:

    - name: Deploy Grafana dashboard
      community.grafana.grafana_dashboard:
        url: "http://{{ grafana_host }}:{{ grafana_port }}"
        api_key: "{{ grafana_api_token }}"
        path: "{{ dashboard_json_path }}"
        datasource:
          name: "Prometheus-Production"
          uid: "prom-prod-123"
        state: present
    

方案3:UI手动修正(适合少量仪表盘)

若仪表盘数量较少,可直接通过Grafana UI操作:

  • 打开异常仪表盘,点击右上角齿轮图标进入设置页面。
  • 切换到数据源标签页,找到${prometheus}对应的条目,点击更改数据源选择正确的Prometheus实例。
  • 保存仪表盘后刷新,验证图表数据是否恢复。

方案4:检查数据源变量配置

若仪表盘使用了数据源变量,升级后变量规则可能失效:

  • 进入仪表盘设置的变量标签页,找到名为prometheus的数据源变量。
  • 确认变量的数据源类型为Prometheus,且默认值设置为当前环境的目标数据源。
  • 保存变量配置后刷新仪表盘。

内容的提问来源于stack exchange,提问作者BraveAdmin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 17:40:13