Flashduty Docs
中文EnglishRoadmapAPI官网控制台
中文EnglishRoadmapAPI官网控制台
  1. 最佳实践
  • 简介
  • On-call
    • 快速开始
      • 快速开始
      • 常见问题
      • 产品对比
    • 故障管理
      • 什么是故障
      • 检索与查看故障
      • 处理与更新故障
      • 升级与分派故障
      • 自定义字段
      • 自定义操作
      • 了解降噪过程
      • 了解历史故障
      • 了解新奇故障
    • 配置On-call
      • 协作空间管理
      • 多种方式接入告警
      • 配置路由规则
      • 配置标签增强
      • 配置告警降噪
      • 配置分派策略
      • 故障静默与抑制
      • 配置值班规则
      • 配置通知模板
      • 配置服务日历
      • 配置个人信息
      • 配置过滤条件
      • 通知配置
      • 告警处理 pipeline
    • 高级功能
      • 引用变量
      • 动态分派
      • 分析数据
      • 作战室
    • 集成引导
      • 告警集成
        • 邮件 Email 集成指引
        • 夜莺 Flashcat 集成指引
        • Prometheus 集成指引
        • 标准告警事件集成指引
        • Grafana 集成指引
        • Zabbix 集成指引
        • Uptime Kuma 集成指引
        • 阿里云 ARMS 集成指引
        • 阿里云监控 CM 事件集成指引
        • 阿里云监控 CM 指标集成指引
        • 阿里云 SLS 集成指引
        • AWS CloudWatch 集成指引
        • Azure Monitor 集成指引
        • 百度云监控 BCM 集成指引
        • 华为云监控 CES 集成指引
        • 腾讯云 CLS 集成指引
        • 腾讯云监控 CM 集成指引
        • 腾讯云 Event Bridge 集成指引
        • Influxdata 集成指引
        • Open Falcon 集成指引
        • Pagerduty 集成指引
        • 蓝鲸智云集成指引
        • OceanBase 集成指引
        • Graylog 集成指引
        • Skywalking 集成指引
        • Sentry 集成指引
        • 监控宝告警集成指引
        • AWS EventBridge 集成指引
        • Dynatrace 集成指引
        • 华为云 LTS 集成指引
        • GoogleCloud 集成指引
        • Splunk 集成指引
        • AppDynamics 集成指引
        • SolarWinds 集成指引
        • 火山引擎CM 指标集成指引
        • 火山引擎CM 事件集成指引
        • 火山引擎日志服务 TLS 集成指引
        • Opmanager 告警事件
        • Meraki 告警事件
        • 天翼云告警集成
        • 观测云告警事件
        • zilliz 告警事件
        • 华为云 APM 告警事件
        • zstack 告警事件
        • Keep 告警集成指引
        • ElastAlert2 告警集成
        • Monit 告警集成指引
        • RUM 告警集成指引
      • 即时消息
        • 飞书 Lark 集成指引
        • 钉钉 Dingtalk 集成指引
        • 企业微信 Wecom 集成指引
        • Slack 集成指引
        • Microsoft Teams 集成指引
      • 单点登录
        • Authing 集成指引
        • Keycloak 集成指引
        • OpenLDAP 集成指引
      • Webhooks
        • 告警 webhook
        • 故障 webhook
        • 自定义操作
        • Jira 同步
        • ServiceNow 同步
      • 变更集成
        • 标准变更事件集成指引
      • 其他集成
        • Link 集成
  • RUM
    • 快速开始
      • 入门介绍
      • 快速开始
      • 常见问题
    • 应用管理
      • 应用管理
      • SDK接入
      • 高级配置
      • 分析看板
    • 性能监控
      • 概览
      • 指标上报
      • 性能分析
      • 诊断优化
    • 查看器
      • 概览
      • 数据查询
    • 异常追踪
      • 概览
      • 异常上报
      • 异常聚合
      • Issue状态
      • 异常查看
      • 源码映射
      • Issue告警
    • 会话重放
      • 概览
      • SDK配置
      • 查看 RUM 会话重放记录
      • 隐私保护说明
    • 最佳实践
      • 分布式追踪
    • 其他
      • 术语说明
      • 数据收集
      • 数据安全
  • 平台功能
    • 团队和成员
    • 了解权限设计
    • 配置单点登录
  • 服务协议
    • 服务条款
    • 用户协议/隐私政策
    • SLA承诺
    • 数据安全
  1. 最佳实践

分布式追踪

概述#

FlashDuty RUM 的 Trace 追踪 功能将前端用户监控与分布式追踪系统深度集成,让您能够将 Web 应用程序的请求与其对应的后端跟踪关联起来。这种组合使您能够一目了然地查看完整的前端和后端数据,实现端到端的性能监控和问题排查。
通过 Trace 追踪,您可以:
关联前后端请求:将前端用户操作与后端 API 调用关联
端到端问题排查:快速定位从前端到后端的完整请求链路问题
性能瓶颈分析:识别整个请求链路中的性能瓶颈点
用户体验优化:基于完整的请求链路数据优化用户体验

工作原理#

Trace 追踪基于 W3C Trace Context 标准实现,通过在 HTTP 请求头中注入追踪信息来关联前后端请求:
1.
前端发起请求:RUM SDK 自动为配置的 API 请求添加追踪头信息
2.
后端接收处理:后端服务接收并处理带有追踪信息的请求
3.
链路关联:通过相同的 trace_id 将前后端数据关联起来
4.
可视化展示:通过 trace 关联根据 trace_id 查看完整的请求链路信息

配置步骤#

1. SDK 配置#

首先需要在 RUM SDK 中配置分布式追踪功能。基于 RUM 高级配置文档 中的配置,在初始化 RUM SDK 时添加以下参数:

关键配置参数说明#

allowedTracingUrls:指定需要添加追踪信息的 API 端点
字符串:匹配以该值开头的 URL,如 https://api.example.com
正则表达式:使用正则表达式匹配 URL
函数:自定义匹配逻辑,返回 true 表示匹配成功
traceSampleRate:追踪采样率,控制多少比例的请求会被追踪
范围:0-100
默认值:100(追踪所有请求)
建议:生产环境可设置为 10-20 以平衡监控覆盖率和性能

2. 应用管理配置#

SDK 配置完成后,可在应用管理页面进行 trace 跳转相关配置:
1.
进入 应用管理 页面
2.
选择对应的 RUM 应用
3.
配置 trace 系统的跳转地址(如已集成分布式追踪系统)
4.
在 高级配置 中启用 Trace 追踪 功能
提示
在配置的跳转链接中,系统会自动将 ${trace_id} 替换为实际的 trace_id。
2025-09-28-10-58-31

3. 后端服务配置#

为了完整支持分布式追踪,后端服务需要:
1.
接收追踪头信息:处理 traceparent 和 tracestate 请求头
2.
传递追踪信息:在调用其他服务时继续传递追踪头信息
3.
生成追踪数据:将请求处理过程记录到追踪系统中

追踪头信息说明#

RUM SDK 会在配置的请求中自动添加以下 HTTP 头信息:

traceparent 头#

traceparent: 00-00000000000000008448eb211c80319c-b7ad6b7169203331-01
格式:[version]-[trace-id]-[parent-id]-[trace-flags]
version:当前为 00
trace-id:128 位的 trace ID,16 进制处理后为 32 个字符
parent-id:64 位的 span ID,16 进制处理后为 16 个字符
trace-flags:采样标志,01 表示命中采样,00 表示非采样

tracestate 头#

tracestate: dd=s:1;o:rum
格式:dd=s:[sampling-priority];o:[origin]
sampling-priority:1 表示 trace 被采样
origin:始终为 rum,表示通过 RUM SDK 采集

使用场景#

1. 在 RUM 查看器中查看 Trace#

配置完成后,在 RUM 查看器的 View 视图 中可以查看对应的 trace 信息:
1.
进入 RUM 查看器
2.
选择包含 API 调用的页面视图
3.
在视图详情中查看 Trace 信息
4.
点击 trace 链接可跳转至 trace 系统查看详细的请求链路
2025-09-28-11-01-59

2. 通过 trace_id 查找资源#

通过 trace_id 也可以在查看器中进行资源查找:
1.
在查看器搜索栏中输入 trace_id
2.
查看对应的资源和视图加载情况
3.
分析资源加载性能与后端 API 调用的关联关系
2025-09-28-11-03-07
提示
也可以通过在 url 上拼接对应的参数直接查询相应的 resource. url 示例:
其中 start、end、appid 均为选填参数,若不传则会复用当前 rum 默认查询的应用和时间范围。您可按照实际情况进行 url 拼接。

3. 端到端问题排查#

当用户报告性能问题或者异常时:
1.
在 RUM 查看器中找到问题用户的会话
2.
查看问题页面的 trace 信息
3.
跳转到 trace 系统查看完整的请求链路
4.
定位是前端问题还是服务问题,或是网络问题

最佳实践#

1. 合理配置采样率#

开发环境:建议设置为 100%,确保所有请求都被追踪
测试环境:建议设置为 50-80%,平衡监控覆盖率和性能
生产环境:建议设置为 10-20%,避免对性能造成影响

2. 精确配置追踪 URL#

3. 跨域请求处理#

如果您的 HTTP 请求涉及跨域问题,需要确保:
服务器配置了正确的 CORS 头信息
支持预检请求(Preflight Request)
允许 traceparent 和 tracestate 头信息

4. 性能监控#

定期检查 trace 采样率对应用性能的影响
监控追踪数据的存储和查询性能
根据业务需求调整追踪策略

常见问题#

Q: 为什么某些请求没有 trace 信息?#

A: 可能的原因包括:
请求 URL 不在 allowedTracingUrls 配置范围内
请求被 traceSampleRate 采样率过滤
请求在 SDK 初始化之前发起
跨域请求缺少必要的 CORS 配置

Q: 如何验证 trace 配置是否正确?#

A: 可以通过以下方式验证:
1.
在浏览器开发者工具中检查网络请求头
2.
确认请求包含 traceparent 和 tracestate 头信息
3.
在 RUM 查看器中查看是否有 trace 信息显示

注意事项#

1.
隐私合规:确保 trace 数据收集符合相关隐私法规要求
2.
性能影响:合理设置采样率,避免对应用性能造成显著影响
3.
数据安全:避免在 trace 数据中包含敏感信息
4.
跨域配置:确保后端服务正确配置 CORS 以支持追踪头信息

相关文档#

RUM 高级配置 - 了解 RUM SDK 的完整配置选项
RUM 查看器概览 - 掌握 RUM 查看器的使用方法

添加官方技术支持微信

在这里,获得使用上的任何帮助,快速上手FlashDuty

微信扫码交流
修改于 2025-09-28 03:28:39
上一页
隐私保护说明
下一页
术语说明
Built with