控制面板版本 API - Amazon Managed Grafana

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

控制面板版本 API

使用控制面板版本 API 检索仪表板版本并将仪表板恢复到指定版本。

注意

要在亚马逊托管 Grafana 工作空间中使用 Grafana API,您必须拥有有效的 Grafana API 令牌。您可以将其包含在 API 请求的Authorization字段中。有关如何创建令牌来验证您的 API 调用的信息,请参阅使用令牌进行身份验证

获取所有仪表板版本

GET /api/dashboards/id/:dashboardId/versions

使用给定的,获取仪表板的所有现有仪表板版本dashboardId

查询参数:

  • 限制-要返回的最大结果数。

  • 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" } ]

状态码:

  • 200 — 没问题

  • 400 — 错误

  • 401 — 未经授权

  • 404-找不到仪表板版本

获取仪表板版本

GET /api/dashboards/id/:dashboardId/versions/:id

获取具有给定 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" }

状态码:

  • 200 — 没问题

  • 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 }

JSON 正文架构:

  • 版本-要还原到的仪表板版本。

响应示例

HTTP/1.1 200 OK Content-Type: application/json; charset=UTF-8 Content-Length: 67 { "slug": "my-dashboard", "status": "success", "version": 3 }

JSON 响应正文架构:

  • s@@ lug — 仪表板标题中对网址友好的标题。

  • 状态-恢复是否成功。

  • 版本-恢复后的新仪表板版本。

状态码:

  • 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 响应正文架构:

  • 消息-解释失败原因的消息。

比较仪表板版本

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" }

JSON 正文架构:

  • base — 表示基本仪表板版本的对象。

  • ne@@ w-表示新仪表板版本的对象。

  • di@@ ffty pe — 要返回的差异类型。有效值为 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 — 没问题

  • 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 — 没问题

  • 200 — 请求错误,发送的 JSON 无效

  • 401 — 未经授权

  • 404 — 未找到