注释 API - Amazon Managed Grafana

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

注释 API

使用注释 API 在 Amazon Managed Grafana 工作区中创建、更新、删除和处理注释。

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

注意

要对 Amazon Managed 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

查询参数:

  • from:(可选)以毫秒为单位的纪元日期时间。

  • to:(可选)以毫秒为单位的纪元日期时间。

  • limit:(可选)返回的最大结果数。默认值为 100。

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

  • dashboardId:(可选)查找范围限于指定控制面板的注释。

  • panelId:(可选)查找范围限于指定面板的注释。

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

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

  • tags:(可选)使用该参数来筛选全局注释。全局注释是来自注释数据来源的注释,这些注释没有专门连接到控制面板或面板。要对多个标签进行 "AND" 筛选,请多次指定标签参数。例如,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 属性。

timetimeEnd 的格式应为毫秒分辨率的纪元数字。

请求示例

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

以 graphite 格式创建注释

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 匹配的注释的一个或多个属性。此操作目前支持更新 texttagstimetimeEnd 属性。

请求示例:

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