RUM 源映射 API
编辑RUM 源映射 API
编辑此端点仅与Elastic Agent 的 APM 集成兼容。
源映射允许将最小化文件映射回原始源代码,使您可以保持最小化代码的速度优势,而不会失去快速轻松调试应用程序的能力。
为了获得最佳效果,上传源映射应该成为您部署过程的一部分,而不仅仅是在看到无用的错误时才进行。这是因为在错误发生后上传源映射不会使旧错误神奇地可读——必须再次发生错误才能进行源映射。
提供以下 API:
Kibana 的最大有效负载大小为 1MB。如果您尝试上传超过最大有效负载大小的源映射,您将收到413
错误。
在上传超过此默认值的源映射之前,请使用server.maxPayload
变量更改 Kibana 允许的最大有效负载大小。
展开以查看所需的标头、权限和使用详细信息
使用 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
标头。
创建或更新源映射
编辑为特定服务和版本创建或更新源映射。
访问此端点的用户需要 APM 和用户体验功能的所有
Kibana 权限。有关更多信息,请参见Kibana 权限。
POST /api/apm/sourcemaps
-
service_name
- (必需,字符串) 服务映射应应用到的服务的名称。
-
service_version
- (必需,字符串) 服务映射应应用到的服务的版本。
-
bundle_filepath
- (必需,字符串) Web 应用程序中使用的最终 bundle 的绝对路径。
-
sourcemap
- (必需,字符串或文件上传) 源映射。它必须遵循源映射修订版 3 建议。
以下示例上传名为foo
的服务和版本为1.0.0
的服务的源映射
curl -X POST "https://127.0.0.1:5601/api/apm/sourcemaps" \ -H 'Content-Type: multipart/form-data' \ -H 'kbn-xsrf: true' \ -H 'Authorization: ApiKey ${YOUR_API_KEY}' \ -F 'service_name="foo"' \ -F 'service_version="1.0.0"' \ -F 'bundle_filepath="/test/e2e/general-usecase/bundle.js"' \ -F 'sourcemap="{\"version\":3,\"file\":\"static/js/main.chunk.js\",\"sources\":[\"fleet-source-map-client/src/index.css\",\"fleet-source-map-client/src/App.js\",\"webpack:///./src/index.css?bb0a\",\"fleet-source-map-client/src/index.js\",\"fleet-source-map-client/src/reportWebVitals.js\"],\"sourcesContent\":[\"content\"],\"mappings\":\"mapping\",\"sourceRoot\":\"\"}"'
{ "type": "sourcemap", "identifier": "foo-1.0.0", "relative_url": "/api/fleet/artifacts/foo-1.0.0/644fd5a997d1ddd90ee131ba18e2b3d03931d89dd1fe4599143c0b3264b3e456", "body": "eJyFkL1OwzAUhd/Fc+MbYMuCEBIbHRjKgBgc96R16tiWr1OQqr47NwqJxEK3q/PzWccXxchnZ7E1A1SjuhjVZtF2yOxiEPlO17oWox3D3uPFeSRTjmJQARfCPeiAgGx8NTKsYdAc1T3rwaSJGcds8Sp3c1HnhfywUZ3QhMTFFGepZxqMC9oex3CS9tpk1XyozgOlmoVKuJX1DqEQZ0su7PGtLU+V/3JPKc3cL7TJ2FNDRPov4bFta3MDM4f7W69lpJjLO9qdK8bzVPhcJz3HUCQ4LbO/p5hCSC4cZPByrp/wFqOklbpefwAhzpqI", "created": "2021-07-09T20:47:44.812Z", "id": "apm:foo-1.0.0-644fd5a997d1ddd90ee131ba18e2b3d03931d89dd1fe4599143c0b3264b3e456", "compressionAlgorithm": "zlib", "decodedSha256": "644fd5a997d1ddd90ee131ba18e2b3d03931d89dd1fe4599143c0b3264b3e456", "decodedSize": 441, "encodedSha256": "024c72749c3e3dd411b103f7040ae62633558608f480bce4b108cf5b2275bd24", "encodedSize": 237, "encryptionAlgorithm": "none", "packageName": "apm" }
获取源映射
编辑返回 Fleet 工件数组,包括源映射上传。
访问此端点的用户需要 APM 和用户体验功能的读取
或所有
Kibana 权限。有关更多信息,请参见Kibana 权限。
GET /api/apm/sourcemaps
以下示例请求所有已上传的源映射
curl -X GET "https://127.0.0.1:5601/api/apm/sourcemaps" \ -H 'Content-Type: application/json' \ -H 'kbn-xsrf: true' \ -H 'Authorization: ApiKey ${YOUR_API_KEY}'
{ "artifacts": [ { "type": "sourcemap", "identifier": "foo-1.0.0", "relative_url": "/api/fleet/artifacts/foo-1.0.0/644fd5a997d1ddd90ee131ba18e2b3d03931d89dd1fe4599143c0b3264b3e456", "body": { "serviceName": "foo", "serviceVersion": "1.0.0", "bundleFilepath": "/test/e2e/general-usecase/bundle.js", "sourceMap": { "version": 3, "file": "static/js/main.chunk.js", "sources": [ "fleet-source-map-client/src/index.css", "fleet-source-map-client/src/App.js", "webpack:///./src/index.css?bb0a", "fleet-source-map-client/src/index.js", "fleet-source-map-client/src/reportWebVitals.js" ], "sourcesContent": [ "content" ], "mappings": "mapping", "sourceRoot": "" } }, "created": "2021-07-09T20:47:44.812Z", "id": "apm:foo-1.0.0-644fd5a997d1ddd90ee131ba18e2b3d03931d89dd1fe4599143c0b3264b3e456", "compressionAlgorithm": "zlib", "decodedSha256": "644fd5a997d1ddd90ee131ba18e2b3d03931d89dd1fe4599143c0b3264b3e456", "decodedSize": 441, "encodedSha256": "024c72749c3e3dd411b103f7040ae62633558608f480bce4b108cf5b2275bd24", "encodedSize": 237, "encryptionAlgorithm": "none", "packageName": "apm" } ] }
删除源映射
编辑删除以前上传的源映射。
访问此端点的用户需要 APM 和用户体验功能的所有
Kibana 权限。有关更多信息,请参见Kibana 权限。
DELETE /api/apm/sourcemaps/:id
以下示例删除 ID 为apm:foo-1.0.0-644fd5a9
的源映射
curl -X DELETE "https://127.0.0.1:5601/api/apm/sourcemaps/apm:foo-1.0.0-644fd5a9" \ -H 'Content-Type: application/json' \ -H 'kbn-xsrf: true' \ -H 'Authorization: ApiKey ${YOUR_API_KEY}'
{}