本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
注释 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:(可选)指定返回警报或用户创建的注释。有效值为
alert
和annotation
。 -
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 数据库中创建注解。dashboardId
和 panelId
字段是可选的。如果未指定这两个字段,则会创建一个全局注释,并且可以在任何添加了 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, }
以 graphite 格式创建注释
POST /api/annotations/graphite
使用与 Graphite 兼容的事件格式创建注释。when
和 data
字段是可选的。如果 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 匹配的注释的一个或多个属性。此操作目前支持更新 text
、tags
、time
和 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" }