Web 应用前后端链路关联配置
功能概述
前后端链路关联功能允许您将 Web 应用的前端请求与后端服务的调用链路关联起来,提供完整的端到端可观测性。通过此功能,您可以:
- 追踪从用户交互到后端服务的完整请求链路
- 快速定位性能瓶颈和错误根因
- 分析前后端请求的关联性能数据
支持说明
目前支持 Web 应用的前后端链路关联,其他类型应用(如移动端)的支持正在开发中。
配置步骤
1. 启用链路关联
在 RUM SDK 的初始化配置中,添加 allowedTracingUrls
配置项:
LIGHT_RUM.init({
// ... 其他配置项 ...
// 链路关联配置
allowedTracingUrls: [
{
match: "http://your-backend-api.com", // 后端服务地址
propagatorTypes: ["tracecontext"], // 使用 W3C trace context 标准
},
],
});
2. 配置参数说明
- allowedTracingUrls:配置需要进行链路关联的后端服务
match
:后端服务的 URL 匹配规则,支持以下格式:- 完整域名:
"http://api.example.com"
- 带端口:
"http://192.168.1.100:8080"
- 正则表达式:
"^https://api\\.example\\.com/.*$"
- 完整域名:
propagatorTypes
:链路上下文传播方式- 当前支持
"tracecontext"
(W3C Trace Context 标准)
- 当前支持
完整配置示例
<script src="/lighthouse-rum.js"></script>
<script>
LIGHT_RUM.init({
// 基础配置
applicationId: 'your-app-id',
site: 'collector.example.com',
service: 'web-frontend',
env: 'production',
version: '1.0.0',
// 采样配置
sessionSampleRate: 100,
sessionReplaySampleRate: 100,
// 监控配置
trackUserInteractions: true,
trackResources: true,
trackLongTasks: true,
defaultPrivacyLevel: 'mask-user-input',
// 链路关联配置
allowedTracingUrls: [
{
match: "http://api.example.com",
propagatorTypes: ["tracecontext"]
}
],
});
</script>
链路关联原理
W3C Trace Context
当启用链路关联后,RUM SDK 会在发送到后端的请求中自动添加 traceparent
请求头,后端 APM 服务通过此标识符将前端请求与后端调用链路关联起来。
traceparent
请求头格式:
traceparent: 00-{trace-id}-{span-id}-01
字段说明:
00
:版本号(固定值)trace-id
:32 位十六进制的链路标识符span-id
:16 位十六进制的跨度标识符01
:跟踪标志(固定值)
请求头示例
GET /api/users HTTP/1.1
Host: api.example.com
traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
Accept: application/json
在这个示例中:
4bf92f3577b34da6a3ce929d0e0e4736
是 trace-id00f067aa0ba902b7
是 span-id
这个请求头会被 RUM SDK 自动注入到所有匹配 allowedTracingUrls
配置的请求中。
最佳实践
- 建议在测试环境先小规模验证链路关联配置
- 确保后端服务已正确配置 APM 采集
- 定期检查链路关联的采集率和准确性