菜单
Enterprise Open source

快照 API

创建新快照

POST /api/snapshots

请求示例:

http
    POST /api/snapshots HTTP/1.1
    Accept: application/json
    Content-Type: application/json
    Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

    {
      "dashboard": {
        "editable":false,
        "nav":[
        {
          "enable":false,
        "type":"timepicker"
        }
        ],
        "rows": [
          {

          }
        ],
        "style":"dark",
        "tags":[],
        "templating":{
          "list":[
          ]
        },
        "time":{
        },
        "timezone":"browser",
        "title":"Home",
        "version":5
        },
      "expires": 3600
    }

JSON Body schema

  • dashboard – 必需。完整的仪表盘模型。
  • name – 可选。快照名称
  • expires - 可选。快照应在多少秒后过期。3600 表示 1 小时,86400 表示 1 天。默认为永不过期。
  • external - 可选。在外部服务器而非本地保存快照。默认为 false
  • key - 可选。定义唯一密钥。如果 **external** 为 true,则必需。
  • deleteKey - 可选。用于删除快照的唯一密钥。它与 **key** 不同,以便只有创建者可以删除快照。如果 **external** 为 true,则必需。

注意

使用 API 创建快照时,必须提供包含快照数据的完整仪表盘 payload。此端点专为 Grafana UI 设计。

响应示例:

http
    HTTP/1.1 200
    Content-Type: application/json
    {
      "deleteKey":"XXXXXXX",
      "deleteUrl":"myurl/api/snapshots-delete/XXXXXXX",
      "key":"YYYYYYY",
      "url":"myurl/dashboard/snapshot/YYYYYYY",
      "id": 1
    }

密钥

  • deleteKey – 用于删除快照生成的密钥
  • key – 用于分享仪表盘生成的密钥

获取快照列表

GET /api/dashboard/snapshots

查询参数

  • query – 搜索查询
  • limit – 限制返回结果的数量

请求示例:

http
GET /api/dashboard/snapshots HTTP/1.1
Accept: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

响应示例:

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

[
  {
    "id":8,
    "name":"Home",
    "key":"YYYYYYY",
    "orgId":1,
    "userId":1,
    "external":false,
    "externalUrl":"",
    "expires":"2200-13-32T25:23:23+02:00",
    "created":"2200-13-32T28:24:23+02:00",
    "updated":"2200-13-32T28:24:23+02:00"
  }
]

按密钥获取快照

GET /api/snapshots/:key

请求示例:

http
GET /api/snapshots/YYYYYYY HTTP/1.1
Accept: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

响应示例:

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

{
  "meta":{
    "isSnapshot":true,
    "type":"snapshot",
    "canSave":false,
    "canEdit":false,
    "canStar":false,
    "slug":"",
    "expires":"2200-13-32T25:23:23+02:00",
    "created":"2200-13-32T28:24:23+02:00"
  },
  "dashboard": {
    "editable":false,
    "nav": [
      {
        "enable":false,
        "type":"timepicker"
      }
    ],
    "rows": [
      {

      }
    ],
    "style":"dark",
    "tags":[],
    "templating":{
      "list":[
      ]
    },
    "time":{
    },
    "timezone":"browser",
    "title":"Home",
    "version":5
  }
}

按密钥删除快照

DELETE /api/snapshots/:key

请求示例:

http
DELETE /api/snapshots/YYYYYYY HTTP/1.1
Accept: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

响应示例:

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

{"message":"Snapshot deleted. It might take an hour before it's cleared from any CDN caches.", "id": 1}

按 deleteKey 删除快照

使用快照的秘密删除密钥,可以在不进行身份验证的情况下使用此 API 调用。

GET /api/snapshots-delete/:deleteKey

请求示例:

http
GET /api/snapshots-delete/XXXXXXX HTTP/1.1
Accept: application/json

响应示例:

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

{"message":"Snapshot deleted. It might take an hour before it's cleared from any CDN caches.", "id": 1}