注释 API
编辑注释 API编辑
注释 API 允许您使用重要事件(例如部署)对 APM 应用程序中的可视化进行注释,从而使您能够轻松查看这些事件如何影响现有应用程序的性能。
默认情况下,注释存储在新创建的 observability-annotations
索引中。可以通过编辑 config.yml
中的 xpack.observability.annotations.index
来更改此索引的名称。如果更改默认索引名称,您还需要相应地更新用户权限。
以下 API 可用
- 创建或更新注释以创建 APM 的注释。
如何使用 APM API编辑
展开以获取所需标头、权限和使用详细信息
使用 cURL 或其他 API 工具与 APM API 进行交互。所有 APM API 都是 Kibana API,而不是 Elasticsearch API;因此,Kibana 开发工具控制台不能用于与 APM API 进行交互。
对于所有 APM API,您必须使用请求标头。支持的标头是 Authorization
、kbn-xsrf
和 Content-Type
。
-
Authorization: ApiKey {credentials}
-
Kibana 支持使用 Elasticsearch API 密钥服务的基于令牌的身份验证。Elasticsearch 创建 API 密钥 API 返回的 API 密钥可以通过发送带有
Authorization
标头的请求来使用,该标头的值为ApiKey
,后跟{credentials}
,其中{credentials}
是id
和api_key
由冒号连接的 base64 编码。或者,您可以创建一个用户并使用其用户名和密码对 API 访问进行身份验证:
-u $USER:$PASSWORD
。无论是使用
Authorization: ApiKey {credentials}
还是-u $USER:$PASSWORD
,与 APM API 交互的用户都必须具有足够的权限。 -
kbn-xsrf: true
-
默认情况下,您必须对所有 API 调用使用
kbn-xsrf
,但以下情况除外- API 端点使用
GET
或HEAD
操作 - 使用
server.xsrf.allowlist
设置允许该路径 - 使用
server.xsrf.disableProtection
设置禁用了 XSRF 保护
- API 端点使用
-
Content-Type: application/json
- 仅当您在 API 请求中发送有效负载时适用。Kibana API 请求和响应使用 JSON。通常,如果包含
kbn-xsrf
标头,则还必须包含Content-Type
标头。
创建或更新注释编辑
请求编辑
POST /api/apm/services/:serviceName/annotation
请求正文编辑
-
服务
-
(必填,对象)标识要创建或更新的配置的服务。
service
的属性-
版本
- (必填,字符串)服务的版本。
-
环境
- (可选,字符串)服务的运行环境。
-
-
@timestamp
- (必填,字符串)注释的日期和时间。必须采用 ISO 8601 格式。
-
消息
- (可选,字符串)注释中显示的消息。默认为
service.version
。 -
标签
- (可选,数组)APM 应用程序使用标签来区分 APM 注释和其他注释。标签在未来版本中可能具有其他功能。默认为
[apm]
。虽然您可以添加其他标签,但不能删除apm
标签。
示例编辑
以下示例为名为 opbeans-java
的服务创建注释。
curl -X POST \ https://127.0.0.1:5601/api/apm/services/opbeans-java/annotation \ -H 'Content-Type: application/json' \ -H 'kbn-xsrf: true' \ -H 'Authorization: Basic YhUlubWZhM0FDbnlQeE6WRtaW49FQmSGZ4RUWXdX' \ -d '{ "@timestamp": "2020-05-08T10:31:30.452Z", "service": { "version": "1.2" }, "message": "Deployment 1.2" }'
响应正文编辑
{ "_index": "observability-annotations", "_id": "Lc9I93EBh6DbmkeV7nFX", "_version": 1, "_seq_no": 12, "_primary_term": 1, "found": true, "_source": { "message": "Deployment 1.2", "@timestamp": "2020-05-08T10:31:30.452Z", "service": { "version": "1.2", "name": "opbeans-java" }, "tags": [ "apm", "elastic.co", "customer" ], "annotation": { "type": "deployment" }, "event": { "created": "2020-05-09T02:34:43.937Z" } } }