快照 API
创建新快照
POST /api/snapshots
请求示例:
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/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 – 限制返回结果的数量
请求示例:
GET /api/dashboard/snapshots HTTP/1.1
Accept: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
响应示例:
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
请求示例:
GET /api/snapshots/YYYYYYY HTTP/1.1
Accept: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
响应示例:
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
请求示例:
DELETE /api/snapshots/YYYYYYY HTTP/1.1
Accept: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
响应示例:
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
请求示例:
GET /api/snapshots-delete/XXXXXXX HTTP/1.1
Accept: application/json
响应示例:
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}