配置真实用户监控 (RUM)
本节中的大多数选项都受所有 APM Server 部署方法支持。
真实用户监控 (RUM) 代理捕获用户与客户端(如网页浏览器)的交互。这些交互作为事件发送到 APM Server。由于 RUM 代理在客户端运行,代理与服务器之间的连接未经身份验证。因此,出于安全防范考虑,RUM 默认处于禁用状态。
要使用 RUM,你需要一个集中的 APM Server,它可以作为独立二进制文件运行,也可以通过 Fleet 进行管理。
要启用 RUM 支持,请在 APM Server 配置文件中将 apm-server.rum.enabled 设置为 true。
示例配置
apm-server.rum.enabled: true
apm-server.auth.anonymous.rate_limit.event_limit: 300
apm-server.auth.anonymous.rate_limit.ip_limit: 1000
apm-server.auth.anonymous.allow_service: [your_service_name]
apm-server.rum.allow_origins: ['*']
apm-server.rum.allow_headers: ["header1", "header2"]
apm-server.rum.library_pattern: "node_modules|bower_components|~"
apm-server.rum.exclude_from_grouping: "^/webpack"
apm-server.rum.source_mapping.enabled: true
apm-server.rum.source_mapping.cache.expiration: 5m
apm-server.rum.source_mapping.elasticsearch.api_key: TiNAGG4BaaMdaH1tRfuU:KnR6yE41RrSowb0kQ0HWoA
要启用 RUM,请将 Enable RUM 设置为 true。
直接在 Kibana 中配置和自定义 Fleet 管理的 APM 设置
- 在 Kibana 中,在主菜单中找到 Fleet 或使用全局搜索字段。
- 在 Agent policies 选项卡下,选择你要配置的策略。
- 找到 Elastic APM 集成并选择 Actions > Edit integration。
- 请在 Real User Monitoring 下查找这些选项。
此外,如果 APM Server 的部署源(origin)与页面的源不同,则需要在代理中配置跨域资源共享 (CORS)。
要启用 RUM 支持,请设置为 true。默认情况下此功能处于禁用状态。(bool)
| APM Server 二进制文件 | apm-server.rum.enabled |
| Fleet 管理 | Enable RUM |
RUM 支持允许的源列表。用户代理会发送一个 Origin 标头,该标头将对照此列表进行验证。现代浏览器会自动执行此操作,作为 CORS 规范的一部分。源由协议方案、主机和端口组成,不包含 URL 路径。
默认值:['*'](允许所有)。(text)
| APM Server 二进制文件 | apm-server.rum.allow_origins |
| Fleet 管理 | Allowed Origins |
从 RUM 代理发往 APM Server 的 HTTP 请求在其允许包含的 HTTP 标头方面受到限制。如果添加了任何其他标头,由于跨域资源共享 (CORS) 限制,该请求将被浏览器拒绝。使用此设置可允许附加标头。默认允许的标头列表包括 "Content-Type"、"Content-Encoding" 和 "Accept";在此处配置的自定义值将附加到默认列表后,并用作 Access-Control-Allow-Headers 标头的值。
默认值:[]。(text)
| APM Server 二进制文件 | apm-server.rum.allow_headers |
| Fleet 管理 | Access-Control-Allow-Headers |
要添加到 RUM 响应中的自定义 HTTP 标头。这对于符合安全政策非常有用。
为同一个键设置的值将被串联。
默认值:无。(text)
| APM Server 二进制文件 | apm-server.rum.response_headers |
| Fleet 管理 | Custom HTTP response headers |
要与堆栈跟踪帧的 file_name 和 abs_path 属性进行匹配的正则表达式。如果正则表达式匹配,则该堆栈跟踪帧将被视为库帧。应用源码映射时,error.culprit 会被设置为反映第一个非库帧的函数和文件名。这旨在为识别问题提供一个入口点。
默认值:"node_modules|bower_components|~"。(text)
| APM Server 二进制文件 | apm-server.rum.library_pattern |
| Fleet 管理 | Library Frame Pattern |
要与堆栈跟踪帧的 file_name 进行匹配的正则表达式。如果正则表达式匹配,则该堆栈跟踪帧将被排除在用于计算错误组之外。
默认值:"^/webpack"(排除文件名以 /webpack 开头的堆栈跟踪帧)。(text)
| APM Server 二进制文件 | apm-server.rum.exclude_from_grouping |
| Fleet 管理 | Exclude from grouping |
所有 APM Server 部署方法都支持源码映射,但是,本节中的选项仅受 APM Server 二进制文件支持。
用于启用/禁用 RUM 事件的源码映射。启用后,APM Server 需要额外的权限来读取源码映射。有关更多详细信息,请参阅使用功能角色。
默认值:true
配置 Elasticsearch 源码映射检索位置,采用与 output.elasticsearch 相同的选项。当使用 Elasticsearch 以外的输出且该输出正在写入 Elasticsearch 时,必须设置此项。否则,请将此部分留空。
如果源码映射已上传到 APM Server,则源码映射会自动应用于发送到 RUM 端点的文档。源码映射从 Elasticsearch 中获取,然后在内存缓存中保留配置的时间。未配置时间单位的值将被视为秒。
默认值:5m(5 分钟)
早期版本的 APM Server 将源码映射存储在 apm-%{[observer.version]}-sourcemap 索引中。使用此设置可以搜索存储在旧版本中的源码映射。
默认值:"apm-*-sourcemap*"
默认的 APM Server 管道包括在将 RUM 数据索引到 Elasticsearch 之前对其进行丰富(enrich)的处理程序。有关如何定位、编辑或禁用此预处理的详细信息,请参阅使用提取管道解析数据。