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

如何在DataDog APM中过滤/忽略特定用户的遥测数据?

DataDog APM 忽略特定用户GraphQL请求追踪的可行方案

一、直接在代码中终止追踪(理想方案)

通过设置DataDog内置的sampling.priority标签为0,可强制丢弃该追踪数据,不会上报到APM平台。具体做法是在GraphQL插件的钩子中识别目标用户,修改采样优先级:

tracer.use('graphql', {
    source: true,
    signature: false,
    hooks: {
        // 根据graphql插件的实际钩子类型调整,比如start/finish
        start: (span, args) => {
            // 从请求上下文/GraphQL参数中获取当前用户ID
            const user = /* 你的用户信息获取逻辑,比如从args[2](GraphQL context)中取 */;
            if (user?.id === 'id-to-ignore') {
                // 设置采样优先级为0,DataDog会直接丢弃该追踪
                span.setTag('sampling.priority', 0);
            }
            // 你的其他标签添加逻辑
            span.addTags({ /* 自定义标签 */ });
        }
    }
});

原理:sampling.priority是DataDog的核心控制标签,值为0时会强制跳过采样流程,追踪数据不会被发送到APM。

二、添加可在UI过滤的标记(退而求其次方案)

如果采样优先级的方式不适用,可确保自定义标签被添加到根追踪span,这样就能在DataDog APM UI中正常过滤:

tracer.use('graphql', {
    source: true,
    signature: false,
    hooks: {
        start: (span, args) => {
            const user = /* 获取用户信息 */;
            if (user?.id === 'id-to-ignore') {
                const rootSpan = span.context().trace.root();
                // 同时给当前span和根span添加标签,确保UI能识别
                span.setTag('user.ignore', 'true');
                rootSpan.setTag('user.ignore', 'true');
            }
        }
    }
});

在DataDog APM UI中,可使用过滤条件 user.ignore:true 来筛选或排除这些请求。注意标签命名用点分隔的格式,避免特殊字符,提升识别兼容性。

三、全局采样器方案(适用于多场景统一过滤)

如果需要在全链路中统一过滤特定用户,可配置全局自定义采样器:

tracer.init({
    sampler: {
        sample: (samplingRule) => {
            // 确保user.id标签已在更早的环节(如HTTP请求钩子)添加到span中
            const userId = samplingRule.span.context().tags['user.id'];
            // 返回true表示采样,false表示丢弃
            return userId !== 'id-to-ignore';
        }
    }
});

关键注意事项

  • 必须确保能正确获取当前请求的用户ID,不同框架(如Apollo Server + Express)的获取路径不同,需结合业务上下文调整。
  • 若使用标签过滤,务必将标签添加到根span,否则在APM追踪列表中可能无法检索到该标签。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 16:37:29