本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用儀表板版本 API 擷取儀表板版本,並將儀表板還原到指定的版本。
注意
若要將 Grafana API 與您的 Amazon 受管理工作區搭配使用,您必須擁有有效的 Grafana API 權杖。您可以在 API 要求的Authorization
欄位中包含此項目。如需如何建立權杖以驗證 API 呼叫的相關資訊,請參閱使用令牌進行身。
取得所有儀表板版本
GET /api/dashboards/id/:dashboardId/versions
獲取帶有給定儀表板的所有現有儀表板版本dashboardId
。
查詢參數:
-
limit — 要傳回的結果數目上限。
-
start — 傳回查詢時開始的版本。
範例請求
GET /api/dashboards/id/1/versions?limit=2?start=0 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
回應範例
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 428
[
{
"id": 2,
"dashboardId": 1,
"parentVersion": 1,
"restoredFrom": 0,
"version": 2,
"created": "2017-06-08T17:24:33-04:00",
"createdBy": "admin",
"message": "Updated panel title"
},
{
"id": 1,
"dashboardId": 1,
"parentVersion": 0,
"restoredFrom": 0,
"version": 1,
"created": "2017-06-08T17:23:33-04:00",
"createdBy": "admin",
"message": "Initial save"
}
]
狀態碼:
-
二百 — 好
-
錯誤
-
401 — 未經授權
-
404-找不到儀表板版本
取得儀表板版本
GET /api/dashboards/id/:dashboardId/versions/:id
獲取具有給定 ID 的儀表板版本,用於給定的儀表板dashboardId
。
範例請求
GET /api/dashboards/id/1/versions/1 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
回應範例
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 1300
{
"id": 1,
"dashboardId": 1,
"parentVersion": 0,
"restoredFrom": 0,
"version": 1,
"created": "2017-04-26T17:18:38-04:00",
"message": "Initial save",
"data": {
"annotations": {
"list": [
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"hideControls": false,
"id": 1,
"links": [
],
"rows": [
{
"collapse": false,
"height": "250px",
"panels": [
],
"repeat": null,
"repeatIteration": null,
"repeatRowId": null,
"showTitle": false,
"title": "Dashboard Row",
"titleSize": "h6"
}
],
"schemaVersion": 14,
"style": "dark",
"tags": [
],
"templating": {
"list": [
]
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "browser",
"title": "test",
"version": 1
},
"createdBy": "admin"
}
狀態碼:
-
二百 — 好
-
401 — 未經授權
-
404-找不到儀表板版本
還原儀表板
POST /api/dashboards/id/:dashboardId/restore
將管控面板還原至您指定的儀表板版本。
範例請求
POST /api/dashboards/id/1/restore
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"version": 1
}
主體結構定義:
-
版本 — 要還原至的儀表板版本。
回應範例
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 67
{
"slug": "my-dashboard",
"status": "success",
"version": 3
}
JSON 回應主體結構描述:
-
蛞蝓-儀表板標題的 URL 友好的蛞蝓。
-
狀態 — 還原是否成功。
-
version — 還原後的新儀表板版本。
狀態碼:
-
200 — 已建立
-
401 — 未經授權
-
404-未找到儀表板或儀表板版本
-
500 — 內部伺服器錯誤 (表示從資料庫擷取儀表板標籤的問題)
錯誤響應示例:
HTTP/1.1 404 Not Found
Content-Type: application/json; charset=UTF-8
Content-Length: 46
{
"message": "Dashboard version not found"
}
JSON 回應主體結構描述:
-
message — 說明失敗原因的訊息。
比較儀表板版本
POST /api/dashboards/calculate-diff
通過計算它們的 JSON 差異來比較兩個儀表板版本。
範例請求
POST /api/dashboards/calculate-diff HTTP/1.1
Accept: text/html
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"base": {
"dashboardId": 1,
"version": 1
},
"new": {
"dashboardId": 1,
"version": 2
},
"diffType": "json"
}
主體結構定義:
-
base — 代表基礎儀表板版本的物件。
-
new — 代表新儀表板版本的物件。
-
差異類型-要返回的差異類型。有效值為
json
和basic
。
範例回應 (JSON 差異)
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
<p id="l1" class="diff-line diff-json-same">
<!-- Diff omitted -->
</p>
響應是差異的文本表示形式,儀表板值以 JSON 格式顯示,類似於在或等 GitHub 網站上看到的差異。 GitLab
狀態碼:
-
二百 — 好
-
200 — 錯誤的請求,發送了無效的 JSON
-
401 — 未經授權
-
404 — 未找到
示例響應(基本差異)
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
<div class="diff-group">
<!-- Diff omitted -->
</div>
回應是變更的摘要,衍生自兩個 JSON 物件之間的差異。
狀態碼:
-
二百 — 好
-
200 — 錯誤的請求,發送了無效的 JSON
-
401 — 未經授權
-
404 — 未找到