diff --git a/dd-trace-ot/src/main/java/datadog/opentracing/decorators/DDDecoratorsFactory.java b/dd-trace-ot/src/main/java/datadog/opentracing/decorators/DDDecoratorsFactory.java index 909d533de5..3769d71395 100644 --- a/dd-trace-ot/src/main/java/datadog/opentracing/decorators/DDDecoratorsFactory.java +++ b/dd-trace-ot/src/main/java/datadog/opentracing/decorators/DDDecoratorsFactory.java @@ -25,8 +25,7 @@ public class DDDecoratorsFactory { new ResourceNameDecorator(), new ServiceNameDecorator(), new ServiceNameDecorator("service", false), - new ServletContextDecorator(), - new SpanTypeDecorator())) { + new ServletContextDecorator())) { if (Config.get().isDecoratorEnabled(decorator.getClass().getSimpleName())) { decorators.add(decorator); diff --git a/dd-trace-ot/src/main/java/datadog/opentracing/decorators/SpanTypeDecorator.java b/dd-trace-ot/src/main/java/datadog/opentracing/decorators/SpanTypeDecorator.java deleted file mode 100644 index dc3f5e1c04..0000000000 --- a/dd-trace-ot/src/main/java/datadog/opentracing/decorators/SpanTypeDecorator.java +++ /dev/null @@ -1,18 +0,0 @@ -package datadog.opentracing.decorators; - -import datadog.opentracing.DDSpanContext; -import datadog.trace.api.DDTags; - -public class SpanTypeDecorator extends AbstractDecorator { - - public SpanTypeDecorator() { - super(); - setMatchingTag(DDTags.SPAN_TYPE); - } - - @Override - public boolean shouldSetTag(final DDSpanContext context, final String tag, final Object value) { - context.setSpanType(String.valueOf(value)); - return false; - } -} diff --git a/dd-trace-ot/src/main/java/datadog/trace/common/processor/TraceProcessor.java b/dd-trace-ot/src/main/java/datadog/trace/common/processor/TraceProcessor.java index 4d47b7eeb2..08eb7a2c56 100644 --- a/dd-trace-ot/src/main/java/datadog/trace/common/processor/TraceProcessor.java +++ b/dd-trace-ot/src/main/java/datadog/trace/common/processor/TraceProcessor.java @@ -3,6 +3,7 @@ package datadog.trace.common.processor; import datadog.opentracing.DDSpan; import datadog.trace.api.Config; import datadog.trace.common.processor.rule.ErrorRule; +import datadog.trace.common.processor.rule.SpanTypeRule; import datadog.trace.common.processor.rule.Status404Rule; import datadog.trace.common.processor.rule.Status5XXRule; import datadog.trace.common.processor.rule.URLAsResourceNameRule; @@ -17,7 +18,11 @@ public class TraceProcessor { final Rule[] DEFAULT_RULES = new Rule[] { // Rules are applied in order. - new Status5XXRule(), new ErrorRule(), new URLAsResourceNameRule(), new Status404Rule(), + new SpanTypeRule(), + new Status5XXRule(), + new ErrorRule(), + new URLAsResourceNameRule(), + new Status404Rule(), }; private final List rules; diff --git a/dd-trace-ot/src/main/java/datadog/trace/common/processor/rule/ErrorRule.java b/dd-trace-ot/src/main/java/datadog/trace/common/processor/rule/ErrorRule.java index 94f6ed5bb8..8f153a52e5 100644 --- a/dd-trace-ot/src/main/java/datadog/trace/common/processor/rule/ErrorRule.java +++ b/dd-trace-ot/src/main/java/datadog/trace/common/processor/rule/ErrorRule.java @@ -6,7 +6,7 @@ import io.opentracing.tag.Tags; import java.util.Collection; import java.util.Map; -/** Converts error tag to error field */ +/** Converts error tag to field */ public class ErrorRule implements TraceProcessor.Rule { @Override public String[] aliases() { diff --git a/dd-trace-ot/src/main/java/datadog/trace/common/processor/rule/SpanTypeRule.java b/dd-trace-ot/src/main/java/datadog/trace/common/processor/rule/SpanTypeRule.java new file mode 100644 index 0000000000..43dab1333e --- /dev/null +++ b/dd-trace-ot/src/main/java/datadog/trace/common/processor/rule/SpanTypeRule.java @@ -0,0 +1,24 @@ +package datadog.trace.common.processor.rule; + +import datadog.opentracing.DDSpan; +import datadog.trace.api.DDTags; +import datadog.trace.common.processor.TraceProcessor; +import java.util.Collection; +import java.util.Map; + +/** Converts span type tag to field */ +public class SpanTypeRule implements TraceProcessor.Rule { + @Override + public String[] aliases() { + return new String[] {"SpanTypeDecorator"}; + } + + @Override + public void processSpan( + final DDSpan span, final Map meta, final Collection trace) { + if (meta.containsKey(DDTags.SPAN_TYPE)) { + span.setSpanType(meta.get(DDTags.SPAN_TYPE)); + span.setTag(DDTags.SPAN_TYPE, (String) null); // Remove the tag + } + } +}