如何手动导入 grafana 仪表板 json 文件
Posted
技术标签:
【中文标题】如何手动导入 grafana 仪表板 json 文件【英文标题】:How to import grafana dashboard json file manually 【发布时间】:2019-11-13 20:37:23 【问题描述】:我已将仪表板导出为 json 格式。
我想手动导入 json 文件以在新的 grafana 实例中创建相同的仪表板。
在谷歌搜索时,我得到了一些相关信息,但发现难以成功实施。
从网站Grafana API link我得到了类似sn-p的代码,
POST /api/dashboards/db HTTP/1.1 接受:应用程序/json 内容类型:应用程序/json 授权:承载eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
“仪表板”: “id”:空, “uid”:空, “标题”:“生产概述”, “标签”:[“模板化”], “时区”:“浏览器”, “模式版本”:16, “版本”:0 , “文件夹ID”:0, “覆盖”:假
上面的代码 sn-p 看起来我们可以用现有的 json 文件创建新的仪表板,但我不知道如何成功实现这个代码 sn-p。
有人指导我如何实现这一目标?
【问题讨论】:
【参考方案1】:复制当前仪表板有两种技术 - 如果你想导出这个
-
转到当前 Grafana 仪表板
选择顶部的分享按钮
选择导出按钮并复制 JSON 或将其保存为 JSON
创建新的 Grafana 仪表板并将此 JSON 模型复制到
点击顶部的设置按钮 单击 JSON 模型 - 从左侧面板 通过 JSON 并保存仪表板并运行如果您有任何问题,请告诉我。
【讨论】:
嗨汤姆,谢谢你的回复,我已经像你上面提到的那样导出了 json 文件,现在我需要通过 HTTP API 或命令行在我的新 grafana 实例中导入保存的 json 文件要求 请协助如何通过HTTP API导入保存的json文件 我希望更新 grafana 仪表板,例如 'curl --user admin:admin "localhost:3000/api/dashboards/db" -X POST -H "Content-Type:application/json;charset=UTF- 8" --data-binary @c:/Users/Myname/Desktop/Dashboard.json ' 告诉我你想要什么,很简单,只需在不同的实例中启动类似的仪表板,复制并粘贴 json。【参考方案2】:我在 Grafana 社区委员会的这篇文章中找到并回答了您的问题 - 如何通过 api 在 grafana 中导入仪表板:
https://community.grafana.com/t/how-create-dashboard-and-panel-via-api/10947
虽然还没有尝试过(我们也计划做类似的事情)。
我将在这篇文章中引用原始问题:
大家好,
我知道如何通过 API 创建仪表板,但我没有找到有关如何通过 API 在该仪表板中创建面板的说明。任何想法? 解释答案的消息部分:
以及包含问题答案的响应:
需要在您在 POST 请求中提交的 JSON 中定义面板。 文档中的示例并没有说明这一点,超出 仪表板——完整的仪表板模型
要亲自动手,您可以 (1) 手动创建一个带有一些面板的新仪表板,(2) 将该仪表板的定义导出为 JSON,(3) 将导出的仪表板定义放在一个新的 JSON 对象,(4) 将生成的 JSON 对象发布到 API 端点。这将创建原始仪表板的副本。从那里开始,您可以编辑您发布的 JSON 模型,以便修改或添加您想要的任何面板。
所以对于您最初的问题,如果您想将面板添加到现有仪表板,您可以通过 API 获取其定义,将面板添加到 JSON 对象,然后推送更新的模型。 (保持相同的 id/uid 并设置 "overwrite": true)"
【讨论】:
【参考方案3】:请注意(现在?)grafana 也有一个不错的导入功能:
【讨论】:
以上是关于如何手动导入 grafana 仪表板 json 文件的主要内容,如果未能解决你的问题,请参考以下文章
“消息”:使用 HTTP API 导入 grafana 现有 json 文件时出现“无法导入仪表板”错误
使用 Helm 导入仪表板,使用 Sidecar 进行仪表板
如何从导出的 JSON 自动更新 Docker 映像中的 Grafana 仪表板(和数据源)?
使用 Gitlab 仪表板 - 如何将 grafonnet 与 jsonnet 一起使用以生成我可以与 Grafana 一起使用的 json 文件