仪表盘 API
如果您运行的是 Grafana Enterprise,则某些端点需要您具有特定权限。有关更多信息,请参阅 基于角色的访问控制权限。
标识符 (id) 与唯一标识符 (uid)
仪表盘的标识符 (id) 是一个自动递增的数字值,并且仅在每个 Grafana 安装中是唯一的。
仪表盘的唯一标识符 (uid) 可用于在多个 Grafana 安装之间唯一标识仪表盘。如果没有在创建仪表盘时提供,它将自动生成。uid 允许为访问仪表盘提供一致的 URL,以及在多个 Grafana 安装之间同步仪表盘时,请参阅 仪表盘配置以获取更多信息。这意味着更改仪表盘的标题不会破坏任何指向该仪表盘的书签链接。
uid 的最大长度为 40 个字符。
创建/更新仪表盘
POST /api/dashboards/db
创建新的仪表盘或更新现有的仪表盘。当更新现有仪表盘时,如果您没有定义 folderId
或 folderUid
属性,则仪表盘将移动到根级别。(您只需要定义一个属性,而不是两个)。
注意:此端点不适用于创建文件夹,请使用
POST /api/folders
来创建文件夹。
所需权限
有关说明,请参阅 介绍中的注释。
操作 | 范围 |
---|---|
dashboards:create | folders:* |
新仪表盘示例请求:
POST /api/dashboards/db HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"dashboard": {
"id": null,
"uid": null,
"title": "Production Overview",
"tags": [ "templated" ],
"timezone": "browser",
"schemaVersion": 16,
"refresh": "25s"
},
"folderUid": "l3KqBxCMz",
"message": "Made changes to xyz",
"overwrite": false
}
JSON 主体模式
- dashboard – 完整的仪表盘模型。
- dashboard.id – id = null 以创建新的仪表盘。
- dashboard.uid – 在创建仪表盘时,可选的唯一标识符。uid = null 将生成新的 uid。
- dashboard.refresh - 设置仪表盘刷新间隔。如果此间隔小于 最小刷新间隔,则 Grafana 将忽略它并强制执行最小刷新间隔。
- folderId – 要保存仪表盘的文件夹的 id。
- folderUid – 要保存仪表盘的文件夹的 UID。覆盖
folderId
。 - overwrite – 如果要使用新版本覆盖现有仪表盘,请设置为 true,文件夹中具有相同仪表盘标题或相同的仪表盘 uid。
- message - 为版本历史记录设置提交消息。
更新仪表盘的示例请求:
POST /api/dashboards/db HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"dashboard": {
"id": 1,
"title": "Production Overview Updated",
"tags": [ "templated" ],
"timezone": "browser",
"schemaVersion": 16,
"version": 1,
"refresh": "25s"
},
"folderUid": "l3KqBxCMz",
"message": "Made changes to xyz",
"overwrite": false
}
示例响应:
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 78
{
"id": 1,
"uid": "e883f11b-77c0-4ee3-9a70-3ba223d66e56",
"url": "/d/e883f11b-77c0-4ee3-9a70-3ba223d66e56/production-overview-updated",
"status": "success",
"version": 2
"slug": "production-overview-updated",
}
状态代码
- 200 – 已创建
- 400 – 错误(无效 json、缺少或无效字段等)
- 401 – 未授权
- 403 – 拒绝访问
- 412 – 前提条件失败
412 状态代码用于说明您无法创建仪表盘以及原因。这可能有多种原因。
- 仪表盘已被其他人更改,
status=version-mismatch
- 文件夹中已经存在具有相同名称的仪表盘,
status=name-exists
- 已经存在具有相同 uid 的仪表盘,
status=name-exists
- 仪表盘属于插件
<plugin title>
,status=plugin-dashboard
响应主体将具有以下属性
HTTP/1.1 412 Precondition Failed
Content-Type: application/json; charset=UTF-8
Content-Length: 97
{
"message": "The dashboard has been changed by someone else",
"status": "version-mismatch"
}
如果标题已存在,则 status
属性将为 name-exists
。
按 uid 获取仪表盘
GET /api/dashboards/uid/:uid
将返回给定仪表盘唯一标识符 (uid) 的仪表盘。有关包含所请求仪表盘的文件夹的唯一标识符的信息,可能可以在元数据中找到。
所需权限
有关说明,请参阅 介绍中的注释。
操作 | 范围 |
---|---|
dashboards:read | dashboards:* |
示例请求:
GET /api/dashboards/uid/cIBgcSjkk HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
示例响应:
HTTP/1.1 200
Content-Type: application/json
{
"dashboard": {
"id": 1,
"uid": "cIBgcSjkk",
"title": "Production Overview",
"tags": [ "templated" ],
"timezone": "browser",
"schemaVersion": 16,
"version": 0
},
"meta": {
"isStarred": false,
"url": "/d/cIBgcSjkk/production-overview",
"folderId": 2,
"folderUid": "l3KqBxCMz",
"slug": "production-overview" //deprecated in Grafana v5.0
}
}
状态代码
- 200 – 已找到
- 401 – 未授权
- 403 – 拒绝访问
- 404 – 未找到
按 uid 删除仪表盘
DELETE /api/dashboards/uid/:uid
将删除给定唯一标识符 (uid) 的仪表盘。
所需权限
有关说明,请参阅 介绍中的注释。
操作 | 范围 |
---|---|
dashboards:delete | dashboards:* folders:* |
示例请求:
DELETE /api/dashboards/uid/cIBgcSjkk HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
示例响应:
HTTP/1.1 200
Content-Type: application/json
{
"title": "Production Overview",
"message": "Dashboard Production Overview deleted",
"id": 2
}
状态代码
- 200 – 已删除
- 401 – 未授权
- 403 – 拒绝访问
- 404 – 未找到
按 uid 硬删除仪表盘
注意
此功能目前处于私人预览版,并且位于dashboardRestore
功能切换器之后。
DELETE /api/dashboards/uid/:uid/trash
将永久删除给定唯一标识符 (uid) 的仪表盘。
所需权限
有关说明,请参阅 介绍中的注释。
操作 | 范围 |
---|---|
dashboards:delete | dashboards:* folders:* |
示例请求:
DELETE /api/dashboards/uid/cIBgcSjkk/trash HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
示例响应:
HTTP/1.1 200
Content-Type: application/json
{
"title": "Production Overview",
"message": "Dashboard Production Overview deleted",
"uid": "cIBgcSjkk"
}
状态代码
- 200 – 已删除
- 401 – 未授权
- 403 – 拒绝访问
- 404 – 未找到
恢复按 uid 删除的仪表盘
注意
此功能目前处于私人预览版,并且位于dashboardRestore
功能切换器之后。
PATCH /api/dashboards/uid/:uid/trash
将恢复给定唯一标识符 (uid) 的已删除仪表盘。
所需权限
有关说明,请参阅 介绍中的注释。
操作 | 范围 |
---|---|
dashboards:create | dashboards:* folders:* |
示例请求:
PATCH /api/dashboards/uid/cIBgcSjkk/trash HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
示例响应:
HTTP/1.1 200
Content-Type: application/json
{
"title": "Production Overview",
"message": "Dashboard Production Overview restored",
"uid": "cIBgcSjkk"
}
状态代码
- 200 – 已删除
- 401 – 未授权
- 403 – 拒绝访问
- 404 – 未找到
获取主仪表盘
GET /api/dashboards/home
将返回主仪表盘。
示例请求:
GET /api/dashboards/home HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
示例响应:
HTTP/1.1 200
Content-Type: application/json
{
"dashboard": {
"editable":false,
"nav":[
{
"enable":false,
"type":"timepicker"
}
],
"style":"dark",
"tags":[],
"templating":{
"list":[
]
},
"time":{
},
"timezone":"browser",
"title":"Home",
"version":5
},
"meta": {
"isHome":true,
"canSave":false,
"canEdit":false,
"canStar":false,
"url":"",
"expires":"0001-01-01T00:00:00Z",
"created":"0001-01-01T00:00:00Z"
}
}
仪表盘的标签
GET /api/dashboards/tags
获取所有仪表盘的标签
示例请求:
GET /api/dashboards/tags HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
示例响应:
HTTP/1.1 200
Content-Type: application/json
[
{
"term":"tag1",
"count":1
},
{
"term":"tag2",
"count":4
}
]
仪表盘搜索
请参阅 文件夹/仪表盘搜索 API。