配置真实用户监控 (RUM)

编辑

真实用户监控 (RUM) 代理捕获用户与客户端(例如 Web 浏览器)的交互。这些交互作为事件发送到 APM 服务器。由于 RUM 代理运行在客户端,因此代理和服务器之间的连接未经身份验证。因此,作为安全预防措施,默认情况下禁用 RUM。

要启用 RUM 支持,请在 APM 服务器配置文件中将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

此外,如果 APM 服务器的部署来源与页面的来源不同,则需要在代理中配置跨源资源共享 (CORS)

配置参考
编辑
启用 RUM编辑

要启用 RUM 支持,请设置为true。默认情况下禁用此选项。(布尔值)

APM 服务器二进制文件

apm-server.rum.enabled

Fleet 管理

启用 RUM

如果配置了API 密钥密钥令牌,则启用 RUM 支持将自动启用匿名身份验证。由于 RUM 代理运行在浏览器中,因此需要匿名身份验证。

允许的来源编辑

RUM 支持的允许来源列表。用户代理发送一个 Origin 头,该头将针对此列表进行验证。现代浏览器会在CORS 规范的一部分中自动执行此操作。来源由协议方案、主机和端口组成,不包含 URL 路径。

默认值:['*'](允许所有内容)。(文本)

APM 服务器二进制文件

apm-server.rum.allow_origins

Fleet 管理

允许的来源

Access-Control-Allow-Headers编辑

从 RUM 代理到 APM 服务器的 HTTP 请求在其允许具有的 HTTP 头方面受到限制。如果添加任何其他头,则由于跨源资源共享 (CORS) 限制,浏览器将拒绝该请求。使用此设置允许其他头。允许的头默认列表包括“Content-Type”、“Content-Encoding”和“Accept”;此处配置的自定义值将附加到默认列表中,并用作Access-Control-Allow-Headers头的值。

默认值:[]。(文本)

APM 服务器二进制文件

apm-server.rum.allow_headers

Fleet 管理

Access-Control-Allow-Headers

自定义 HTTP 响应头编辑

要添加到 RUM 响应的自定义 HTTP 头。这对于安全策略合规性很有用。

为同一键设置的值将被连接。

默认值:无。(文本)

APM 服务器二进制文件

apm-server.rum.response_headers

Fleet 管理

自定义 HTTP 响应头

库框架模式编辑

与堆栈跟踪框架的file_nameabs_path属性匹配的正则表达式。如果正则表达式匹配,则堆栈跟踪框架被认为是库框架。应用源映射后,error.culprit将设置为反映第一个非库框架的函数文件名。这旨在提供一个用于识别问题的入口点。

默认值:"node_modules|bower_components|~"。(文本)

APM 服务器二进制文件

apm-server.rum.library_pattern

Fleet 管理

库框架模式

排除分组编辑

与堆栈跟踪框架的file_name匹配的正则表达式。如果正则表达式匹配,则堆栈跟踪框架将被排除在用于计算错误组之外。

默认值:"^/webpack"(排除文件名以/webpack开头的堆栈跟踪框架)。(文本)

APM 服务器二进制文件

apm-server.rum.exclude_from_grouping

Fleet 管理

排除分组

源映射配置选项
编辑
source_mapping.enabled编辑

用于启用/禁用RUM 事件的源映射。启用后,APM 服务器需要其他权限才能读取源映射。有关更多详细信息,请参见使用功能角色

默认值:true

source_mapping.elasticsearch编辑

配置 Elasticsearch 源映射检索位置,采用与output.elasticsearch相同的选项。在使用 Elasticsearch 之外的输出且该输出正在写入 Elasticsearch 时,必须设置此项。否则,请将此部分留空。

source_mapping.cache.expiration编辑

如果源映射已上传到 APM 服务器,则源映射将自动应用于发送到 RUM 端点的文档。源映射是从 Elasticsearch 获取的,然后在内存缓存中保留配置的时间。配置的值如果未指定时间单位,则视为秒。

默认值:5m(5 分钟)

source_mapping.index_pattern编辑

早期版本的 APM 服务器将源映射存储在apm-%{[observer.version]}-sourcemap索引中。使用此设置搜索存储在旧版本中的源映射。

默认值:"apm-*-sourcemap*"

已弃用的配置选项
编辑
event_rate.limit编辑

在 7.15.0 中已弃用。

替换为事件限制

每个代理 IP 地址每秒允许的最大事件数。

默认值:300

event_rate.lru_size编辑

在 7.15.0 中已弃用。

替换为IP 限制

在 LRU 缓存中跟踪的唯一 IP 地址数量。缓存中的 IP 地址将根据事件限制设置进行速率限制。如果您的网站有很多并发客户端,请考虑增加此默认值。

默认值:1000

allow_service_names编辑

在 7.15.0 中已弃用。

替换为允许的服务

RUM 支持的允许服务名称列表。此列表中的名称必须与代理的service.name匹配。可以将其设置为将 RUM 事件限制为具有已知服务名称集之一的那些事件,以便限制创建的服务特定索引或数据流的数量。

默认值:未设置(接受任何服务名称)

摄取管道
编辑

默认的 APM 服务器管道包含在 Elasticsearch 中编入索引之前丰富 RUM 数据的处理器。有关如何查找、编辑或禁用此预处理的详细信息,请参见使用摄取管道解析数据