@Override
    protected void doInBeforeTrace(SpanEventRecorder recorder, Object target, Object[] args) {
        final RpcInvocation invocation = (RpcInvocation) args[0];
        recorder.recordServiceType(DubboConstants.DUBBO_PROVIDER_SERVICE_NO_STATISTICS_TYPE);
        recorder.recordApi(methodDescriptor);
        final Invoker invoker = (Invoker) target;

        recorder.recordAttribute(DubboConstants.DUBBO_RPC_ANNOTATION_KEY,
                invoker.getInterface().getSimpleName() + ":" + invocation.getMethodName());
    }
clear {@link com.alibaba.dubbo.rpc.RpcContext#getAttachments()} trace header.
you should to know,since dubbo 2.6.2 version.
{@link com.alibaba.dubbo.rpc.protocol.AbstractInvoker#invoke(com.alibaba.dubbo.rpc.Invocation)}
will force put {@link com.alibaba.dubbo.rpc.RpcContext#getAttachments()} to current Invocation
replace origin invocation.addAttachmentsIfAbsent(context) method;
to imagine if application(B) methodB called by application(A), application(B) is dubbo provider, methodB call next dubbo application(C).
when application(C) received trace header is overwrite by application(B) received trace header.

@param rpcContext
agent-module/plugins/dubbo/src/main/java/com/navercorp/pinpoint/plugin/dubbo/interceptor/DubboProviderInterceptor.java