Grafana 如何导入 JSON 格式的仪表盘模板到指定文件夹?

文章导读
在 Grafana 界面导入 JSON 仪表盘时,导入向导中直接提供了“文件夹”选择项,这是最稳妥的方式。对于自动化场景,可通过 API 指定 folderUid 实现批量导入。
📋 目录
  1. 通过 Web 界面导入
  2. 通过 API 自动化导入
  3. JSON 模板关键字段
  4. 验证方法
  5. 常见坑
  6. 参考来源
A A

在 Grafana 界面导入 JSON 仪表盘时,导入向导中直接提供了“文件夹”选择项,这是最稳妥的方式。对于自动化场景,可通过 API 指定 folderUid 实现批量导入。

先说结论:通过 Grafana 原生导入功能,可以在上传 JSON 后的配置步骤中指定目标文件夹;自动化场景建议使用 API 并携带 folderUid。

  • 适合:拥有 Grafana 界面操作权限的用户或运维自动化脚本
  • 先看:确认目标文件夹已创建,获取其 UID
  • 建议:导入后检查数据源映射,确保图表能正常加载

通过 Web 界面导入

1. 登录 Grafana 控制台,左侧导航栏点击 Dashboards(仪表盘)。

2. 点击 Import(导入)按钮。

3. 上传 JSON 文件:点击 Upload .json file 选择本地文件,或将 JSON 内容粘贴到文本框。

4. 配置元数据:在加载后的配置页面中,找到 Folder 选项,从下拉列表中选择目标文件夹。

5. 确认数据源:如果 JSON 中硬编码了数据源名称,需在此处映射到当前实例可用的数据源。

6. 点击 Import 按钮完成导入。

通过 API 自动化导入

若需批量导入或集成到 CI/CD 流程,可使用 Grafana HTTP API。需先获取目标文件夹的 UID。

1. 获取文件夹 UID:

Grafana 如何导入 JSON 格式的仪表盘模板到指定文件夹?
GET /api/folders
# 响应中找到目标文件夹的 uid 字段

2. 导入仪表盘:

curl -X POST 'http://localhost:3000/api/dashboards/db' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -d '{
    "dashboard": { ... },
    "folderUid": "target-folder-uid",
    "overwrite": false
  }'

注意:payload 中的 dashboard 字段内容为完整的 JSON 模板内容,folderUid 指定存放位置。

JSON 模板关键字段

导入时需关注以下字段,避免冲突或映射错误:

  • uid:仪表盘唯一标识,若与现有冲突需修改或开启 overwrite。
  • folderUid:部分导出的 JSON 可能包含此字段,但导入时通常以操作时的选择为准。
  • datasources:若模板中硬编码了数据源 UID,导入时需重新映射。

验证方法

1. 返回 Dashboards 列表页,查看左侧文件夹分组,确认新仪表盘出现在目标文件夹下。

2. 打开仪表盘,检查图表是否有数据加载,无红色报错提示。

3. API 导入可通过返回状态码 200 及响应中的 slug 确认成功。

常见坑

1. 文件夹不存在:导入前需手动创建好目标文件夹,否则下拉列表中无法选择或 API 返回 400。

2. 数据源不匹配:若 JSON 写死了数据源 UID 而当前实例没有,图表会显示错误,需在导入时重新映射。

3. UID 冲突:如果导入的仪表盘 UID 已存在,可能需要勾选 Overwrite 或修改 UID,否则导入失败。

参考来源