Snapshot API
Snapshot API
이 문서는 Grafana에서 스냅샷을 생성, 조회, 삭제하는 API를 설명해요. 스냅샷을 만들고 특정 키로 가져오거나 삭제할 수 있습니다.
출처: 문서
본문
참고: Grafana 13부터
/api엔드포인트는/apis경로를 위해 더 이상 사용되지 않습니다(deprecated). Grafana가 기존 API를 마이그레이션하는 동안 현재 여러분이 사용하는 레거시 API와 정확히 일치하는 항목이 없을 수도 있어요. 이 변경은 현재 설정을 방해하거나 깨지 않습니다. 레거시 API는 비활성화되지 않으며 완전히 접근 가능하고 정상 작동하지만,/api경로는 더 이상 업데이트되지 않습니다. 자세한 내용은 Grafana의 새 API 구조를 참고하세요.
새 스냅샷 생성하기
POST /api/snapshots
예시 요청:
POST /api/snapshots HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVI...KEN>
{
"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이면 필수.
참고: API로 스냅샷을 생성할 때는 스냅샷 데이터를 포함한 전체 대시보드 페이로드를 제공해야 합니다. 이 엔드포인트는 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– 반환 결과 수 제한. 설정하지 않거나 잘못된 값을 제공하면 기본값 1000.
예시 요청:
GET /api/dashboard/snapshots HTTP/1.1
Accept: application/json
Authorization: Bearer <SERVI...KEN>
예시 응답:
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 <SERVI...KEN>
예시 응답:
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 <SERVI...KEN>
예시 응답:
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}