diff --git a/dd-trace-ot/src/main/java/datadog/opentracing/DDSpanContext.java b/dd-trace-ot/src/main/java/datadog/opentracing/DDSpanContext.java index 89b44310a8..e94b625952 100644 --- a/dd-trace-ot/src/main/java/datadog/opentracing/DDSpanContext.java +++ b/dd-trace-ot/src/main/java/datadog/opentracing/DDSpanContext.java @@ -1,10 +1,8 @@ package datadog.opentracing; -import datadog.opentracing.decorators.AbstractDecorator; import datadog.trace.api.DDTags; import java.math.BigInteger; import java.util.Collections; -import java.util.List; import java.util.Map; import java.util.TreeMap; import java.util.concurrent.ConcurrentHashMap; @@ -163,26 +161,7 @@ public class DDSpanContext implements io.opentracing.SpanContext { return; } - boolean addTag = true; - - // Call decorators - final List decorators = tracer.getSpanContextDecorators(tag); - if (decorators != null) { - for (final AbstractDecorator decorator : decorators) { - try { - addTag &= decorator.shouldSetTag(this, tag, value); - } catch (final Throwable ex) { - log.debug( - "Could not decorate the span decorator={}: {}", - decorator.getClass().getSimpleName(), - ex.getMessage()); - } - } - } - - if (addTag) { - tags.put(tag, value); - } + tags.put(tag, value); } public synchronized Map getTags() { diff --git a/dd-trace-ot/src/main/java/datadog/opentracing/DDTracer.java b/dd-trace-ot/src/main/java/datadog/opentracing/DDTracer.java index 4d60474331..61d046096e 100644 --- a/dd-trace-ot/src/main/java/datadog/opentracing/DDTracer.java +++ b/dd-trace-ot/src/main/java/datadog/opentracing/DDTracer.java @@ -1,7 +1,5 @@ package datadog.opentracing; -import datadog.opentracing.decorators.AbstractDecorator; -import datadog.opentracing.decorators.DDDecoratorsFactory; import datadog.opentracing.propagation.ExtractedContext; import datadog.opentracing.propagation.HttpCodec; import datadog.opentracing.scopemanager.ContextualScopeManager; @@ -24,10 +22,8 @@ import java.math.BigInteger; import java.util.ArrayList; import java.util.Collection; import java.util.LinkedHashMap; -import java.util.List; import java.util.Map; import java.util.Properties; -import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ThreadLocalRandom; import lombok.Getter; import lombok.extern.slf4j.Slf4j; @@ -54,10 +50,6 @@ public class DDTracer implements io.opentracing.Tracer, Closeable, datadog.trace */ private final Thread shutdownCallback; - /** Span context decorators */ - private final Map> spanContextDecorators = - new ConcurrentHashMap<>(); - private final HttpCodec.Injector injector; private final HttpCodec.Extractor extractor; @@ -102,11 +94,6 @@ public class DDTracer implements io.opentracing.Tracer, Closeable, datadog.trace log.info("New instance: {}", this); - final List decorators = DDDecoratorsFactory.createBuiltinDecorators(); - for (final AbstractDecorator decorator : decorators) { - addDecorator(decorator); - } - // Ensure that PendingTrace.SPAN_CLEANER is initialized in this thread: // FIXME: add test to verify the span cleaner thread is started with this call. PendingTrace.initialize(); @@ -122,33 +109,6 @@ public class DDTracer implements io.opentracing.Tracer, Closeable, datadog.trace } } - /** - * Returns the list of span context decorators - * - * @return the list of span context decorators - */ - public List getSpanContextDecorators(final String tag) { - return spanContextDecorators.get(tag); - } - - /** - * Add a new decorator in the list ({@link AbstractDecorator}) - * - * @param decorator The decorator in the list - */ - public void addDecorator(final AbstractDecorator decorator) { - - List list = spanContextDecorators.get(decorator.getMatchingTag()); - if (list == null) { - list = new ArrayList<>(); - } - list.add(decorator); - - spanContextDecorators.put(decorator.getMatchingTag(), list); - log.debug( - "Decorator added: '{}' -> {}", decorator.getMatchingTag(), decorator.getClass().getName()); - } - @Deprecated public void addScopeContext(final ScopeContext context) { scopeManager.addScopeContext(context); @@ -391,7 +351,6 @@ public class DDTracer implements io.opentracing.Tracer, Closeable, datadog.trace final BigInteger parentSpanId; final PendingTrace parentTrace; - final DDSpanContext context; SpanContext parentContext = parent; if (parentContext == null && !ignoreScope) { // use the Scope as parent unless overridden or ignored. @@ -426,47 +385,15 @@ public class DDTracer implements io.opentracing.Tracer, Closeable, datadog.trace } // some attributes are inherited from the parent - context = - new DDSpanContext( - traceId, - spanId, - parentSpanId, - operationName, - errorFlag, - tags, - parentTrace, - DDTracer.this); - - // Apply Decorators to handle any tags that may have been set via the builder. - for (final Map.Entry tag : tags.entrySet()) { - if (tag.getValue() == null) { - context.setTag(tag.getKey(), null); - continue; - } - - boolean addTag = true; - - // Call decorators - final List decorators = getSpanContextDecorators(tag.getKey()); - if (decorators != null) { - for (final AbstractDecorator decorator : decorators) { - try { - addTag &= decorator.shouldSetTag(context, tag.getKey(), tag.getValue()); - } catch (final Throwable ex) { - log.debug( - "Could not decorate the span decorator={}: {}", - decorator.getClass().getSimpleName(), - ex.getMessage()); - } - } - } - - if (!addTag) { - context.setTag(tag.getKey(), null); - } - } - - return context; + return new DDSpanContext( + traceId, + spanId, + parentSpanId, + operationName, + errorFlag, + tags, + parentTrace, + DDTracer.this); } } diff --git a/dd-trace-ot/src/main/java/datadog/opentracing/decorators/AbstractDecorator.java b/dd-trace-ot/src/main/java/datadog/opentracing/decorators/AbstractDecorator.java deleted file mode 100644 index 51b6ec7edf..0000000000 --- a/dd-trace-ot/src/main/java/datadog/opentracing/decorators/AbstractDecorator.java +++ /dev/null @@ -1,63 +0,0 @@ -package datadog.opentracing.decorators; - -import datadog.opentracing.DDSpanContext; - -/** - * Span decorators are called when new tags are written and proceed to various remappings and - * enrichments - */ -public abstract class AbstractDecorator { - - private String matchingTag; - - private Object matchingValue; - - private String replacementTag; - - private String replacementValue; - - public boolean shouldSetTag(final DDSpanContext context, final String tag, final Object value) { - if (this.getMatchingValue() == null || this.getMatchingValue().equals(value)) { - final String targetTag = getReplacementTag() == null ? tag : getReplacementTag(); - final String targetValue = - getReplacementValue() == null ? String.valueOf(value) : getReplacementValue(); - - context.setTag(targetTag, targetValue); - return false; - } else { - return true; - } - } - - public String getMatchingTag() { - return matchingTag; - } - - public void setMatchingTag(final String tag) { - this.matchingTag = tag; - } - - public Object getMatchingValue() { - return matchingValue; - } - - public void setMatchingValue(final Object value) { - this.matchingValue = value; - } - - public String getReplacementTag() { - return replacementTag; - } - - public void setReplacementTag(final String targetTag) { - this.replacementTag = targetTag; - } - - public String getReplacementValue() { - return replacementValue; - } - - public void setReplacementValue(final String targetValue) { - this.replacementValue = targetValue; - } -} 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 deleted file mode 100644 index dd34c0bea1..0000000000 --- a/dd-trace-ot/src/main/java/datadog/opentracing/decorators/DDDecoratorsFactory.java +++ /dev/null @@ -1,12 +0,0 @@ -package datadog.opentracing.decorators; - -import java.util.Arrays; -import java.util.List; - -/** Create DDSpanDecorators */ -public class DDDecoratorsFactory { - public static List createBuiltinDecorators() { - - return Arrays.asList(); - } -} diff --git a/dd-trace-ot/src/test/groovy/datadog/opentracing/decorators/SpanDecoratorTest.groovy b/dd-trace-ot/src/test/groovy/datadog/opentracing/decorators/SpanDecoratorTest.groovy deleted file mode 100644 index cc763e3a09..0000000000 --- a/dd-trace-ot/src/test/groovy/datadog/opentracing/decorators/SpanDecoratorTest.groovy +++ /dev/null @@ -1,34 +0,0 @@ -package datadog.opentracing.decorators - -import datadog.opentracing.DDSpanContext -import datadog.opentracing.DDTracer -import datadog.opentracing.SpanFactory -import datadog.trace.common.writer.LoggingWriter -import datadog.trace.util.test.DDSpecification -import io.opentracing.tag.StringTag - -class SpanDecoratorTest extends DDSpecification { - - def tracer = new DDTracer(new LoggingWriter()) - def span = SpanFactory.newSpanOf(tracer) - - def "adding span personalisation using Decorators"() { - setup: - def decorator = new AbstractDecorator() { - boolean shouldSetTag(DDSpanContext context, String tag, Object value) { - return super.shouldSetTag(context, tag, value) - } - } - decorator.setMatchingTag("foo") - decorator.setMatchingValue("bar") - decorator.setReplacementTag("newFoo") - decorator.setReplacementValue("newBar") - tracer.addDecorator(decorator) - - new StringTag("foo").set(span, "bar") - - expect: - span.getTags().containsKey("newFoo") - span.getTags().get("newFoo") == "newBar" - } -} diff --git a/dd-trace-ot/src/test/groovy/datadog/trace/DDTracerTest.groovy b/dd-trace-ot/src/test/groovy/datadog/trace/DDTracerTest.groovy index d823ecfeb7..4b300df7ca 100644 --- a/dd-trace-ot/src/test/groovy/datadog/trace/DDTracerTest.groovy +++ b/dd-trace-ot/src/test/groovy/datadog/trace/DDTracerTest.groovy @@ -35,8 +35,6 @@ class DDTracerTest extends DDSpecification { def tracer = new DDTracer() then: - tracer.spanContextDecorators.size() == 0 - tracer.injector instanceof DatadogHttpCodec.Injector tracer.extractor instanceof DatadogHttpCodec.Extractor }