Agent 配置 API
编辑Agent 配置 API
编辑APM Agent 配置 API 允许您微调 APM Agent 配置,无需重新部署您的应用程序。
以下 APM Agent 配置 API 可用:
展开以查看所需的标头、权限和使用细节
使用 cURL 或其他 API 工具与 APM API 交互。所有 APM API 都是 Kibana API,而不是 Elasticsearch API;因此,不能使用 Kibana 开发工具控制台与 APM API 交互。
对于所有 APM API,您必须使用请求标头。支持的标头包括 Authorization
、kbn-xsrf
和 Content-Type
。
-
Authorization: ApiKey {凭据}
-
Kibana 支持使用 Elasticsearch API 密钥服务进行基于令牌的身份验证。Elasticsearch 创建 API 密钥 API 返回的 API 密钥可通过发送具有
Authorization
标头的请求来使用,该标头的值为ApiKey
后跟{凭据}
,其中{凭据}
是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
标头。
创建或更新配置
编辑PUT /api/apm/settings/agent-configuration
-
service
-
(必需,对象) 用于标识要创建或更新的配置的服务。
service
的属性-
name
- (必需,字符串) 服务名称
-
environment
- (可选,字符串) 服务环境
-
-
settings
- (必需) 包含选项名称和选项值的键/值对象。
-
agent_name
- (可选) Agent 名称用于 UI 确定要显示哪些设置。
PUT /api/apm/settings/agent-configuration { "service": { "name": "frontend", "environment": "production" }, "settings": { "transaction_sample_rate": "0.4", "capture_body": "off", "transaction_max_spans": "500" }, "agent_name": "nodejs" }
删除配置
编辑DELETE /api/apm/settings/agent-configuration
-
service
-
(必需,对象) 用于标识要删除的配置的服务
service
的属性-
name
- (必需,字符串) 服务名称
-
environment
- (可选,字符串) 服务环境
-
DELETE /api/apm/settings/agent-configuration { "service" : { "name": "frontend", "environment": "production" } }
列出配置
编辑GET /api/apm/settings/agent-configuration
[ { "agent_name": "go", "service": { "name": "opbeans-go", "environment": "production" }, "settings": { "transaction_sample_rate": "1", "capture_body": "off", "transaction_max_spans": "200" }, "@timestamp": 1581934104843, "applied_by_agent": false, "etag": "1e58c178efeebae15c25c539da740d21dee422fc" }, { "agent_name": "go", "service": { "name": "opbeans-go" }, "settings": { "transaction_sample_rate": "1", "capture_body": "off", "transaction_max_spans": "300" }, "@timestamp": 1581934111727, "applied_by_agent": false, "etag": "3eed916d3db434d9fb7f039daa681c7a04539a64" }, { "agent_name": "nodejs", "service": { "name": "frontend" }, "settings": { "transaction_sample_rate": "1", }, "@timestamp": 1582031336265, "applied_by_agent": false, "etag": "5080ed25785b7b19f32713681e79f46996801a5b" } ]
GET /api/apm/settings/agent-configuration
搜索配置
编辑POST /api/apm/settings/agent-configuration/search
-
service
-
(必需,对象) 用于标识配置的服务。
service
的属性-
name
- (必需,字符串) 服务名称
-
environment
- (可选,字符串) 服务环境
-
-
etag
- (必需) etag 由 APM Agent 发送,用于指示最后成功应用的配置的 etag。如果 etag 与现有配置匹配,则其
applied_by_agent
属性将设置为true
。每次编辑配置时,applied_by_agent
将重置为false
。
{ "_index": ".apm-agent-configuration", "_id": "CIaqXXABmQCdPphWj8EJ", "_score": 2, "_source": { "agent_name": "nodejs", "service": { "name": "frontend" }, "settings": { "transaction_sample_rate": "1", }, "@timestamp": 1582031336265, "applied_by_agent": false, "etag": "5080ed25785b7b19f32713681e79f46996801a5b" } }
POST /api/apm/settings/agent-configuration/search { "etag": "1e58c178efeebae15c25c539da740d21dee422fc", "service" : { "name": "frontend", "environment": "production" } }