You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Datadog仅采集1% Span失效:DD_SPAN_SAMPLING_RULES不生效排查

排查Datadog采样率不生效的常见原因及解决方法

1. 代码配置覆盖环境变量

如果你的ASP.NET Core项目中通过代码显式设置了采样规则或采样率,会直接覆盖环境变量的配置。比如以下代码会强制设置100%采样,忽略环境变量:

TracerSettings settings = TracerSettings.FromDefaultSources();
settings.SamplingRate = 1.0;
var tracer = new Tracer(settings);

排查方法:检查项目中是否存在手动配置Tracer采样相关的代码,若有则移除或调整为目标采样率。

2. 环境变量格式解析错误

DD_SPAN_SAMPLING_RULES的JSON格式在不同环境中可能存在解析问题:

  • 若使用Windows环境或Docker Compose等编排工具,单引号包裹的JSON可能无法被正确解析,需改用双引号并转义:
    DD_SPAN_SAMPLING_RULES: "{\"sample_rate\":0.01,\"service\":\"*\",\"name\":\"*\"}"
    
  • 确保JSON语法完全正确,无多余逗号或缺失引号。

3. 采样规则匹配逻辑未生效

虽然你用了"*"作为通配符,但部分旧版本Tracer对通配符支持有限,可能导致规则不触发。可以先尝试指定具体服务名测试:

DD_SPAN_SAMPLING_RULES: '[{"sample_rate":0.01,"service":"YourActualServiceName","name":"*"}]'

4. Tracer版本兼容性问题

旧版本的Datadog.Tracer可能存在采样配置的bug,比如对DD_SPAN_SAMPLING_RULES的支持不完善。

  • 通过NuGet包管理器将Datadog.Tracer升级到最新稳定版,再验证采样效果。

5. 上游采样决策的传播影响

分布式追踪中,下游服务会继承上游服务的采样决策。如果上游服务配置了100%采样,下游即使设置1%采样率,也会跟随上游的采样标记,导致实际采样率远高于预期。

  • 检查上游服务的采样配置,确保全链路采样策略一致;或启用DD_TRACE_RATE_LIMITER_ENABLED限制每秒采样的Span数量,辅助控制采样量。

内容的提问来源于stack exchange,提问作者Arjun Vachhani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 13:13:19