本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
注解 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 —(可选)指定返回警报或用户创建的注释。值为
alert
和annotation
。 -
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 数据库中创建注解。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, }
以石墨格式创建注释
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" }