通过grafana的API /api/dashboards/db POST json文件的内容导入dashboard失败

Viewed 72

请教个问题:
为何官方提供的json文件可以在Grafana通过Import->Upload JSON file方式导入dashboard,但是通过grafana的API /api/dashboards/db POST json文件的内容却不能导入呢?

报错:
curl -X POST -H "Content-Type: application/json" -d @/work/test.json "http://admin:admin@10.10.10.10:9999/api/dashboards/db"
[{"fieldNames":["Dashboard"],"classification":"RequiredError","message":"Required"}]

2 Answers

没看懂。

Grafana导出的JSON可以导入夜莺,大部分图表都是兼容的,n9e导出的json,理论上无法导入Grafana,你现在是想把 n9e 导出的json导入Grafana?

比如下面的json可以在Grafana通过Import->Upload JSON file方式导入dashboard,但是通过grafana的API /api/dashboards/db POST json文件的内容却不能导入dashboard。
http://starrocks-thirdparty.oss-cn-zhangjiakou.aliyuncs.com/StarRocks-Overview-19.json

呃,这个不清楚了,或许可以去Grafana社区提个issue

好的,谢谢

api导入的格式与界面导入的格式是有差异的。如果想通过api导入,需要在那个json的外面包一层。格式像这样:{“dashboard”:原来的json对象}。官方文档有说到这个格式:https://grafana.com/docs/grafana/latest/developers/http_api/dashboard/

我重新编辑了json文件,格式为{"dashboard": json文件内容, "folderId": 0, "folderUid": "l3KqBxCMz", "message": "Made changes to xyz", "overwrite": false}, 然后执行命令curl -X POST -H "Content-Type: application/json" -d @/work/test.json "http://admin:admin@10.10.10.10:9999/api/dashboards/db"却报错{"message":"Dashboard not found","status":"not-found"}
请问是哪里不对吗?

我明白了,编辑后的json文件有2处错误:(1)json文件的id没有改为null; (2)json文件中配置的数据源名称与Grafana数据源Name的不一致; 不过这报错提示的确实不够明显