diff --git a/dd-java-agent/agent-otel/otel-shim/src/main/java/datadog/opentelemetry/shim/trace/OtelSpan.java b/dd-java-agent/agent-otel/otel-shim/src/main/java/datadog/opentelemetry/shim/trace/OtelSpan.java index 01b8dca7115..cbef49e3463 100644 --- a/dd-java-agent/agent-otel/otel-shim/src/main/java/datadog/opentelemetry/shim/trace/OtelSpan.java +++ b/dd-java-agent/agent-otel/otel-shim/src/main/java/datadog/opentelemetry/shim/trace/OtelSpan.java @@ -15,6 +15,8 @@ import datadog.trace.bootstrap.instrumentation.api.AgentSpan; import datadog.trace.bootstrap.instrumentation.api.AgentSpanContext; import datadog.trace.bootstrap.instrumentation.api.AttachableWrapper; +import datadog.trace.bootstrap.instrumentation.api.ErrorPriorities; +import datadog.trace.bootstrap.instrumentation.api.ResourceNamePriorities; import datadog.trace.bootstrap.instrumentation.api.WithAgentSpan; import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.Attributes; @@ -105,11 +107,11 @@ public Span setStatus(StatusCode statusCode, String description) { if (this.recording) { if (this.statusCode == UNSET) { this.statusCode = statusCode; - this.delegate.setError(statusCode == ERROR); + this.delegate.setError(statusCode == ERROR, ErrorPriorities.MANUAL_INSTRUMENTATION); this.delegate.setErrorMessage(statusCode == ERROR ? description : null); } else if (this.statusCode == ERROR && statusCode == OK) { this.statusCode = statusCode; - this.delegate.setError(false); + this.delegate.setError(false, ErrorPriorities.MANUAL_INSTRUMENTATION); this.delegate.setErrorMessage(null); } } @@ -132,7 +134,7 @@ public Span recordException(Throwable exception, Attributes additionalAttributes @Override public Span updateName(String name) { if (this.recording) { - this.delegate.setResourceName(name); + this.delegate.setResourceName(name, ResourceNamePriorities.MANUAL_INSTRUMENTATION); } return this; } diff --git a/dd-java-agent/instrumentation/opentracing/api-0.31/src/main/java/datadog/trace/instrumentation/opentracing31/OTSpan.java b/dd-java-agent/instrumentation/opentracing/api-0.31/src/main/java/datadog/trace/instrumentation/opentracing31/OTSpan.java index a00893ffd73..1e4b296ff9f 100644 --- a/dd-java-agent/instrumentation/opentracing/api-0.31/src/main/java/datadog/trace/instrumentation/opentracing31/OTSpan.java +++ b/dd-java-agent/instrumentation/opentracing/api-0.31/src/main/java/datadog/trace/instrumentation/opentracing31/OTSpan.java @@ -2,6 +2,7 @@ import datadog.trace.api.interceptor.MutableSpan; import datadog.trace.bootstrap.instrumentation.api.AgentSpan; +import datadog.trace.bootstrap.instrumentation.api.ErrorPriorities; import datadog.trace.bootstrap.instrumentation.api.ResourceNamePriorities; import datadog.trace.bootstrap.instrumentation.api.UTF8BytesString; import datadog.trace.bootstrap.instrumentation.api.WithAgentSpan; @@ -73,7 +74,7 @@ public boolean isError() { @Override public OTSpan setError(final boolean value) { - delegate.setError(value); + delegate.setError(value, ErrorPriorities.MANUAL_INSTRUMENTATION); return this; } diff --git a/dd-java-agent/instrumentation/opentracing/api-0.32/src/main/java/datadog/trace/instrumentation/opentracing32/OTSpan.java b/dd-java-agent/instrumentation/opentracing/api-0.32/src/main/java/datadog/trace/instrumentation/opentracing32/OTSpan.java index a6f3d15e049..541ec92a28b 100644 --- a/dd-java-agent/instrumentation/opentracing/api-0.32/src/main/java/datadog/trace/instrumentation/opentracing32/OTSpan.java +++ b/dd-java-agent/instrumentation/opentracing/api-0.32/src/main/java/datadog/trace/instrumentation/opentracing32/OTSpan.java @@ -2,6 +2,7 @@ import datadog.trace.api.interceptor.MutableSpan; import datadog.trace.bootstrap.instrumentation.api.AgentSpan; +import datadog.trace.bootstrap.instrumentation.api.ErrorPriorities; import datadog.trace.bootstrap.instrumentation.api.ResourceNamePriorities; import datadog.trace.bootstrap.instrumentation.api.UTF8BytesString; import datadog.trace.bootstrap.instrumentation.api.WithAgentSpan; @@ -74,7 +75,7 @@ public boolean isError() { @Override public OTSpan setError(final boolean value) { - delegate.setError(value); + delegate.setError(value, ErrorPriorities.MANUAL_INSTRUMENTATION); return this; } diff --git a/dd-trace-core/src/test/groovy/datadog/trace/core/DDSpanTest.groovy b/dd-trace-core/src/test/groovy/datadog/trace/core/DDSpanTest.groovy index 54edfd095df..e7882432d9c 100644 --- a/dd-trace-core/src/test/groovy/datadog/trace/core/DDSpanTest.groovy +++ b/dd-trace-core/src/test/groovy/datadog/trace/core/DDSpanTest.groovy @@ -457,6 +457,11 @@ class DDSpanTest extends DDCoreSpecification { then: !span.isError() + when: + span.setError(true, ErrorPriorities.MANUAL_INSTRUMENTATION) + then: + span.isError() + when: span.setError(true, Byte.MAX_VALUE) then: diff --git a/dd-trace-ot/src/main/java/datadog/opentracing/OTSpan.java b/dd-trace-ot/src/main/java/datadog/opentracing/OTSpan.java index ddafafb877c..6fadce63f59 100644 --- a/dd-trace-ot/src/main/java/datadog/opentracing/OTSpan.java +++ b/dd-trace-ot/src/main/java/datadog/opentracing/OTSpan.java @@ -2,6 +2,7 @@ import datadog.trace.api.interceptor.MutableSpan; import datadog.trace.bootstrap.instrumentation.api.AgentSpan; +import datadog.trace.bootstrap.instrumentation.api.ErrorPriorities; import datadog.trace.bootstrap.instrumentation.api.ResourceNamePriorities; import datadog.trace.bootstrap.instrumentation.api.UTF8BytesString; import datadog.trace.bootstrap.instrumentation.api.WithAgentSpan; @@ -73,7 +74,7 @@ public boolean isError() { @Override public OTSpan setError(final boolean value) { - delegate.setError(value); + delegate.setError(value, ErrorPriorities.MANUAL_INSTRUMENTATION); return this; } diff --git a/internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/ErrorPriorities.java b/internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/ErrorPriorities.java index 3e48582a1c5..d1a5525efdf 100644 --- a/internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/ErrorPriorities.java +++ b/internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/ErrorPriorities.java @@ -5,4 +5,5 @@ public class ErrorPriorities { public static final byte HTTP_SERVER_DECORATOR = -1; public static final byte DEFAULT = 0; + public static final byte MANUAL_INSTRUMENTATION = 1; }