菜单
企业版 开源版

仪表盘 API

如果您运行的是 Grafana Enterprise,则某些端点需要您具有特定权限。有关更多信息,请参阅 基于角色的访问控制权限

标识符 (id) 与唯一标识符 (uid)

仪表盘的标识符 (id) 是一个自动递增的数字值,并且仅在每个 Grafana 安装中是唯一的。

仪表盘的唯一标识符 (uid) 可用于在多个 Grafana 安装之间唯一标识仪表盘。如果没有在创建仪表盘时提供,它将自动生成。uid 允许为访问仪表盘提供一致的 URL,以及在多个 Grafana 安装之间同步仪表盘时,请参阅 仪表盘配置以获取更多信息。这意味着更改仪表盘的标题不会破坏任何指向该仪表盘的书签链接。

uid 的最大长度为 40 个字符。

创建/更新仪表盘

POST /api/dashboards/db

创建新的仪表盘或更新现有的仪表盘。当更新现有仪表盘时,如果您没有定义 folderIdfolderUid 属性,则仪表盘将移动到根级别。(您只需要定义一个属性,而不是两个)。

注意:此端点不适用于创建文件夹,请使用 POST /api/folders 来创建文件夹。

所需权限

有关说明,请参阅 介绍中的注释。

操作范围
dashboards:createfolders:*

新仪表盘示例请求:

http
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 - 为版本历史记录设置提交消息。

更新仪表盘的示例请求:

http
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
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
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:readdashboards:*

示例请求:

http
GET /api/dashboards/uid/cIBgcSjkk HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

示例响应:

http
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:deletedashboards:*
folders:*

示例请求:

http
DELETE /api/dashboards/uid/cIBgcSjkk HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

示例响应:

http
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:deletedashboards:*
folders:*

示例请求:

http
DELETE /api/dashboards/uid/cIBgcSjkk/trash HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

示例响应:

http
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:createdashboards:*
folders:*

示例请求:

http
PATCH /api/dashboards/uid/cIBgcSjkk/trash HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

示例响应:

http
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

将返回主仪表盘。

示例请求:

http
GET /api/dashboards/home HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

示例响应:

http
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

获取所有仪表盘的标签

示例请求:

http
GET /api/dashboards/tags HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

示例响应:

http
HTTP/1.1 200
Content-Type: application/json

[
  {
    "term":"tag1",
    "count":1
  },
  {
    "term":"tag2",
    "count":4
  }
]

请参阅 文件夹/仪表盘搜索 API