儀表板版本 API - Amazon Managed Grafana

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

儀表板版本 API

使用儀表板版本 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 — 代表新儀表板版本的物件。

  • 差異類型-要返回的差異類型。有效值為 jsonbasic

範例回應 (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 — 未找到