API снимков
Note
Starting in Grafana 13,
/apiendpoints are being deprecated in favor of the/apisroute. Note that while Grafana is working on migrating existing APIs, currently there may not be an exact match to the legacy API you’re using.This change doesn’t disrupt or break your current setup. Legacy APIs are not being disabled and remain fully accessible and operative, but
/apiroutes will no longer be updated.To learn more refer to the new API structure in Grafana.
Создание нового снимка
POST /api/snapshots
Пример запроса:
POST /api/snapshots HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
{
"dashboard": {
"editable":false,
"nav":[
{
"enable":false,
"type":"timepicker"
}
],
"rows": [
{
}
],
"style":"dark",
"tags":[],
"templating":{
"list":[
]
},
"time":{
},
"timezone":"browser",
"title":"Home",
"version":5
},
"expires": 3600
}
Схема тела JSON:
- dashboard — обязательно. Полная модель дашборда.
- name — необязательно. Имя снимка
- expires — необязательно. Когда снимок должен истечь, в секундах. 3600 — это 1 час, 86400 — 1 день. По умолчанию срок действия не истекает.
- external — необязательно. Сохранить снимок на внешнем сервере, а не локально. По умолчанию
false. - key — необязательно. Задаёт уникальный ключ. Обязательно, если external равно
true. - deleteKey — необязательно. Уникальный ключ, используемый для удаления снимка. Он отличается от key, чтобы только создатель мог удалить снимок. Обязательно, если external равно
true.
Note
При создании снимка через API необходимо предоставить полную полезную нагрузку дашборда, включая данные снимка. Эта конечная точка предназначена для интерфейса Grafana.
Пример ответа:
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 — ограничение числа возвращаемых результатов. По умолчанию 1000, если не задано или передано недопустимое значение.
Пример запроса:
GET /api/dashboard/snapshots HTTP/1.1
Accept: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
Пример ответа:
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 <SERVICE_ACCOUNT_TOKEN>
Пример ответа:
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 <SERVICE_ACCOUNT_TOKEN>
Пример ответа:
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}