用途:优化 Sentry 性能监控管线,在提升信号质量的同时降低 SDK 开销与事件量成本。面向 sentry.io 或自托管 Sentry 24.1+,覆盖 @sentry/node、@sentry/browser 与 Python sentry-sdk 的 v8 SDK API。
前提:已安装 Sentry SDK v8+(@sentry/node >= 8.0.0 或 sentry-sdk >= 2.0.0);应用代码运行前已用有效 DSN 调用 Sentry.init();已启用性能监控(tracesSampleRate > 0 或提供 tracesSampler);可访问 Sentry Performance 面板验证改动。
主要能力与用法:
- 用 tracesSampler 回调替代静态 tracesSampleRate,按路由、操作类型与上游 trace 上下文逐事务决策;先检查 parentSampled 以保持分布式追踪一致,对健康检查、静态资源返回 0,对支付等关键路径返回 1.0。
- 用 profilesSampleRate 控制被追踪事务中做性能分析的比例,实际比例等于采样率乘该值;也可用 v8.7.0+ 的 profileSessionSampleRate 做持续分析。
- 修复事务命名:名称中放路由模板,动态 ID 放 attributes,避免基数爆炸;可用 Discover 查询按 transaction 分组统计。
- 用 setMeasurement 添加自定义测量,单位支持 millisecond、byte、none、percent,需在活动 span 回调内调用。
- 降低 SDK 开销:调小 maxBreadcrumbs、maxValueLength、maxAttachmentSize,过滤 Console 等集成,用 beforeSend 裁剪堆栈、beforeSendSpan 丢弃噪声 span;浏览器端可延迟加载 SDK。
- Span 最佳实践:只包裹有可测延迟(>1ms)的操作,避免循环内逐项建 span,改为批量 span 加属性计数。
- Web Vitals 监控:浏览器 SDK 自动采集 LCP、INP、CLS、TTFB,可用 shouldCreateSpanForRequest 过滤第三方脚本。
- 用 Discover 查询分析最慢事务、回归检测与 span 分解。
适用场景:高吞吐服务(>1000 req/s)降低监控开销、控制事件量与成本、提升关键路径可观测性、排查事务名基数与分布式追踪不完整等问题。
限制:资料未提供具体价格、收费方案或效果承诺;部分 API 有版本要求(如持续分析需 v8.7.0+);profiling 会带来约 3-5% CPU 开销;具体阈值与配置需结合实际环境验证。