Skip to content

Commit aba17be

Browse files
committed
adding type field to custom instrumentation
1 parent 7f420c8 commit aba17be

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed

dd-java-agent/agent-otel/otel-shim/src/main/java/datadog/opentelemetry/shim/trace/OtelConventions.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
import static datadog.opentelemetry.shim.trace.OtelSpanEvent.EXCEPTION_MESSAGE_ATTRIBUTE_KEY;
44
import static datadog.opentelemetry.shim.trace.OtelSpanEvent.EXCEPTION_STACK_TRACE_ATTRIBUTE_KEY;
55
import static datadog.opentelemetry.shim.trace.OtelSpanEvent.EXCEPTION_TYPE_ATTRIBUTE_KEY;
6+
import static datadog.trace.api.DDSpanTypes.HTTP_CLIENT;
7+
import static datadog.trace.api.DDSpanTypes.HTTP_SERVER;
8+
import static datadog.trace.api.DDSpanTypes.MESSAGE_CONSUMER;
9+
import static datadog.trace.api.DDSpanTypes.MESSAGE_PRODUCER;
610
import static datadog.trace.api.DDTags.ANALYTICS_SAMPLE_RATE;
711
import static datadog.trace.api.DDTags.ERROR_MSG;
812
import static datadog.trace.api.DDTags.ERROR_STACK;
@@ -21,6 +25,7 @@
2125
import static java.lang.Boolean.parseBoolean;
2226
import static java.util.Locale.ROOT;
2327

28+
import datadog.trace.api.DDSpanTypes;
2429
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
2530
import datadog.trace.bootstrap.instrumentation.api.SpanAttributes;
2631
import datadog.trace.bootstrap.instrumentation.api.Tags;
@@ -65,6 +70,33 @@ public static String toSpanKindTagValue(SpanKind spanKind) {
6570
}
6671
}
6772

73+
/**
74+
* Convert OpenTelemetry {@link SpanKind} to {@link DDSpanTypes} values.
75+
*
76+
* @param kind The OpenTelemetry span kind to convert.
77+
* @return The {@link DDSpanTypes} value.
78+
*/
79+
public static String convertToSpanType(SpanKind kind) {
80+
if (kind == null) {
81+
return null;
82+
}
83+
switch (kind) {
84+
case SERVER:
85+
return HTTP_SERVER;
86+
case CLIENT:
87+
return HTTP_CLIENT;
88+
case PRODUCER:
89+
return MESSAGE_PRODUCER;
90+
case CONSUMER:
91+
return MESSAGE_CONSUMER;
92+
case INTERNAL:
93+
// checking for SpanKind.INTERNAL, returning DDSpanTypes.INTERNAL
94+
return DDSpanTypes.INTERNAL;
95+
default:
96+
return null;
97+
}
98+
}
99+
68100
/**
69101
* Convert {@link Tags#SPAN_KIND} value to OpenTelemetry {@link SpanKind}.
70102
*

dd-java-agent/agent-otel/otel-shim/src/main/java/datadog/opentelemetry/shim/trace/OtelSpanBuilder.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import static datadog.opentelemetry.shim.trace.OtelConventions.ANALYTICS_EVENT_SPECIFIC_ATTRIBUTES;
44
import static datadog.opentelemetry.shim.trace.OtelConventions.HTTP_RESPONSE_STATUS_CODE_ATTRIBUTE;
55
import static datadog.opentelemetry.shim.trace.OtelConventions.OPERATION_NAME_SPECIFIC_ATTRIBUTE;
6+
import static datadog.opentelemetry.shim.trace.OtelConventions.convertToSpanType;
67
import static datadog.opentelemetry.shim.trace.OtelConventions.toSpanKindTagValue;
78
import static datadog.opentelemetry.shim.trace.OtelExtractedContext.extract;
89
import static datadog.trace.api.DDTags.ANALYTICS_SAMPLE_RATE;
@@ -183,6 +184,7 @@ public <T> SpanBuilder setAttribute(AttributeKey<T> key, T value) {
183184
public SpanBuilder setSpanKind(SpanKind spanKind) {
184185
if (spanKind != null) {
185186
this.delegate.withTag(SPAN_KIND, toSpanKindTagValue(spanKind));
187+
this.delegate.withSpanType(convertToSpanType(spanKind));
186188
this.spanKindSet = true;
187189
}
188190
return this;

dd-trace-api/src/main/java/datadog/trace/api/DDSpanTypes.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public class DDSpanTypes {
88
public static final String CACHE = "cache";
99
public static final String SOAP = "soap";
1010

11-
public static final String INTERNAL = "INTERNAL";
11+
public static final String INTERNAL = "internal";
1212

1313
public static final String SQL = "sql";
1414
public static final String MONGO = "mongodb";

0 commit comments

Comments
 (0)