diff --git a/dd-trace-core/src/main/java/datadog/trace/core/CoreSpan.java b/dd-trace-core/src/main/java/datadog/trace/core/CoreSpan.java index a6ced35967c..4d0d8c87f99 100644 --- a/dd-trace-core/src/main/java/datadog/trace/core/CoreSpan.java +++ b/dd-trace-core/src/main/java/datadog/trace/core/CoreSpan.java @@ -1,7 +1,6 @@ package datadog.trace.core; import datadog.trace.api.DDTraceId; -import datadog.trace.bootstrap.instrumentation.api.Tags; import java.util.Map; public interface CoreSpan> { @@ -10,9 +9,7 @@ public interface CoreSpan> { String getServiceName(); - default CharSequence getServiceNameSource() { - return null; - } + CharSequence getServiceNameSource(); CharSequence getOperationName(); @@ -62,13 +59,9 @@ default CharSequence getServiceNameSource() { U getTag(CharSequence name); - default U unsafeGetTag(CharSequence name, U defaultValue) { - return getTag(name, defaultValue); - } + U unsafeGetTag(CharSequence name, U defaultValue); - default U unsafeGetTag(CharSequence name) { - return getTag(name); - } + U unsafeGetTag(CharSequence name); boolean hasSamplingPriority(); @@ -81,10 +74,7 @@ default U unsafeGetTag(CharSequence name) { boolean isForceKeep(); - default boolean isKind(SpanKindFilter filter) { - Object kind = unsafeGetTag(Tags.SPAN_KIND); - return filter.matches(kind == null ? null : kind.toString()); - } + boolean isKind(SpanKindFilter filter); CharSequence getType(); diff --git a/dd-trace-core/src/test/groovy/datadog/trace/common/metrics/SimpleSpan.groovy b/dd-trace-core/src/test/groovy/datadog/trace/common/metrics/SimpleSpan.groovy index 2fd8554d499..f23045856ef 100644 --- a/dd-trace-core/src/test/groovy/datadog/trace/common/metrics/SimpleSpan.groovy +++ b/dd-trace-core/src/test/groovy/datadog/trace/common/metrics/SimpleSpan.groovy @@ -199,6 +199,16 @@ class SimpleSpan implements CoreSpan { return getTag(name, null) } + @Override + U unsafeGetTag(CharSequence name, U defaultValue) { + return getTag(name, defaultValue) + } + + @Override + U unsafeGetTag(CharSequence name) { + return getTag(name) + } + @Override boolean hasSamplingPriority() { return false diff --git a/dd-trace-core/src/test/java/datadog/trace/common/writer/TraceGenerator.java b/dd-trace-core/src/test/java/datadog/trace/common/writer/TraceGenerator.java index 618b2ef77ae..00610ddbb61 100644 --- a/dd-trace-core/src/test/java/datadog/trace/common/writer/TraceGenerator.java +++ b/dd-trace-core/src/test/java/datadog/trace/common/writer/TraceGenerator.java @@ -11,10 +11,12 @@ import datadog.trace.api.TagMap; import datadog.trace.api.sampling.PrioritySampling; import datadog.trace.bootstrap.instrumentation.api.AgentSpanLink; +import datadog.trace.bootstrap.instrumentation.api.Tags; import datadog.trace.bootstrap.instrumentation.api.UTF8BytesString; import datadog.trace.core.CoreSpan; import datadog.trace.core.Metadata; import datadog.trace.core.MetadataConsumer; +import datadog.trace.core.SpanKindFilter; import java.math.BigDecimal; import java.math.BigInteger; import java.util.ArrayList; @@ -502,5 +504,26 @@ public PojoSpan setMetaStruct(String field, Object value) { public int getLongRunningVersion() { return 0; } + + @Override + public CharSequence getServiceNameSource() { + return null; + } + + @Override + public boolean isKind(SpanKindFilter filter) { + Object kind = unsafeGetTag(Tags.SPAN_KIND); + return filter.matches(kind == null ? null : kind.toString()); + } + + @Override + public U unsafeGetTag(CharSequence name, U defaultValue) { + return getTag(name, defaultValue); + } + + @Override + public U unsafeGetTag(CharSequence name) { + return getTag(name); + } } } diff --git a/dd-trace-core/src/traceAgentTest/groovy/TraceGenerator.groovy b/dd-trace-core/src/traceAgentTest/groovy/TraceGenerator.groovy index e668d0112a6..8477ad00df3 100644 --- a/dd-trace-core/src/traceAgentTest/groovy/TraceGenerator.groovy +++ b/dd-trace-core/src/traceAgentTest/groovy/TraceGenerator.groovy @@ -1,6 +1,7 @@ import static datadog.trace.api.ProcessTags.tagsForSerialization import static datadog.trace.api.TagMap.fromMap import static datadog.trace.api.sampling.PrioritySampling.UNSET +import static datadog.trace.bootstrap.instrumentation.api.Tags.SPAN_KIND import static java.lang.Thread.currentThread import static java.util.Collections.emptyList @@ -13,6 +14,7 @@ import datadog.trace.bootstrap.instrumentation.api.UTF8BytesString import datadog.trace.core.CoreSpan import datadog.trace.core.Metadata import datadog.trace.core.MetadataConsumer +import datadog.trace.core.SpanKindFilter import java.util.concurrent.ThreadLocalRandom import java.util.concurrent.TimeUnit @@ -173,6 +175,11 @@ class TraceGenerator { return serviceName } + @Override + CharSequence getServiceNameSource() { + return null + } + @Override CharSequence getOperationName() { return operationName @@ -298,6 +305,12 @@ class TraceGenerator { return false } + @Override + boolean isKind(SpanKindFilter filter) { + Object kind = unsafeGetTag(SPAN_KIND) + return filter.matches(kind == null ? null : kind.toString()) + } + Map getBaggage() { return metadata.getBaggage() } @@ -394,6 +407,16 @@ class TraceGenerator { return value as U } + @Override + U unsafeGetTag(CharSequence name, U defaultValue) { + return getTag(name, defaultValue) + } + + @Override + U unsafeGetTag(CharSequence name) { + return getTag(name) + } + @Override boolean hasSamplingPriority() { return false