注解 API - Amazon Managed Grafana

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

注解 API

使用注解 API 在亚马逊托管 Grafana 工作区中创建、更新、删除和处理注释。

注释保存在工作区的 Grafana 数据库(sqlite、mysql 或 postgres)中。标注可以是全局注释,可以通过配置注释数据源将其显示在任何仪表板上。批注按标签过滤。或者,它们可以绑定到仪表板上的面板,并且仅显示在该面板上。

注意

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

查找注释

GET /api/annotations?from=1506676478816&to=1507281278816&tags=tag1&tags=tag2&limit=100

示例请求

GET /api/annotations?from=1506676478816&to=1507281278816&tags=tag1&tags=tag2&limit=100 HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

查询参数:

  • fro m —(可选)以毫秒为单位的新纪元日期时间。

  • t@@ o —(可选)以毫秒为单位的纪元日期时间。

  • lim it —(可选)返回的最大结果数。默认值为 100。

  • alertid —(可选)查找指定警报的注释。

  • DashboarD id —(可选)查找范围限于指定仪表板的注释。

  • P@@ anelId —(可选)查找范围限于指定面板的注释。

  • userID-(可选)查找由指定用户创建的注释。

  • type —(可选)指定返回警报或用户创建的注释。值为alertannotation

  • tags —(可选)使用它来筛选全局注释。全局批注是来自注释数据源的注释,这些注释没有专门连接到仪表板或面板。要对多个标签进行 “AND” 筛选,请多次指定 tags 参数。例如,tags=tag1&tags=tag2。这些是 Grafana 标签,而不是标签。 AWS

响应示例

HTTP/1.1 200 Content-Type: application/json [ { "id": 1124, "alertId": 0, "dashboardId": 468, "panelId": 2, "userId": 1, "userName": "", "newState": "", "prevState": "", "time": 1507266395000, "timeEnd": 1507266395000, "text": "test", "metric": "", "tags": [ "tag1", "tag2" ], "data": {} }, { "id": 1123, "alertId": 0, "dashboardId": 468, "panelId": 2, "userId": 1, "userName": "", "newState": "", "prevState": "", "time": 1507265111000, "text": "test", "metric": "", "tags": [ "tag1", "tag2" ], "data": {} } ]

创建注释

POST /api/annotations

在工作区的 Grafana 数据库中创建注解。dashboardIdpanelId 字段是可选的。如果未指定,则会创建一个全局注释,并且可以在任何添加 Grafana 注释数据源的仪表板中进行查询。创建区域注释时,请务必包含该timeEnd属性。

time和的格式timeEnd应为毫秒分辨率的纪元数字。

示例请求

POST /api/annotations HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "dashboardId":468, "panelId":1, "time":1507037197339, "timeEnd":1507180805056, "tags":["tag1","tag2"], "text":"Annotation Description" }

响应示例

HTTP/1.1 200 Content-Type: application/json { "message":"Annotation added", "id": 1, }

以石墨格式创建注释

POST /api/annotations/graphite

使用与 Graphite 兼容的事件格式创建注释。whendata 字段是可选的。如果when未指定,则使用当前时间作为注释的时间戳。该tags字段也可以采用 Graphite 0.10.0 之前的格式(多个标签用空格分隔的字符串)。

示例请求

POST /api/annotations/graphite HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "what": "Event - deploy", "tags": ["deploy", "production"], "when": 1467844481, "data": "deploy of master branch happened at Wed Jul 6 22:34:41 UTC 2016" }

响应示例

HTTP/1.1 200 Content-Type: application/json { "message":"Graphite annotation added", "id": 1 }

更新注释

PUT /api/annotations/:id

更新与指定 id 匹配的注释的所有属性。要仅更新某些属性,请使用补丁注释操作。

示例请求

PUT /api/annotations/1141 HTTP/1.1 Accept: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk Content-Type: application/json { "time":1507037197339, "timeEnd":1507180805056, "text":"Annotation Description", "tags":["tag3","tag4","tag5"] }

响应示例:

HTTP/1.1 200 Content-Type: application/json { "message":"Annotation updated" }

补丁注释

PATCH /api/annotations/:id

更新与指定 id 匹配的注释的一个或多个属性。此操作目前支持更新texttagstime、和timeEnd属性。

请求示例:

PATCH /api/annotations/1145 HTTP/1.1 Accept: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk Content-Type: application/json { "text":"New Annotation Description", "tags":["tag6","tag7","tag8"] }

响应示例

HTTP/1.1 200 Content-Type: application/json { "message":"Annotation patched" }

按 ID 删除注释

DELETE /api/annotations/:id

删除与指定 ID 匹配的注释。

示例请求

DELETE /api/annotations/1 HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

响应示例

HTTP/1.1 200 Content-Type: application/json { "message":"Annotation deleted" }