Skip to content

Commit f5eae6e

Browse files
committed
Map no span.kind to UNSPECIFIED
1 parent a2b30d4 commit f5eae6e

2 files changed

Lines changed: 9 additions & 6 deletions

File tree

dd-trace-core/src/main/java/datadog/trace/core/otlp/trace/OtlpTraceProto.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ private static void writeSpanTag(StreamingBuffer buf, UTF8BytesString key, long
243243

244244
private static int spanKind(CharSequence spanKind) {
245245
if (spanKind == null) {
246-
return 1; // UNSPECIFIED -> INTERNAL
246+
return 0; // UNSPECIFIED
247247
} else if (SPAN_KIND_SERVER.contentEquals(spanKind)) {
248248
return 2; // SERVER
249249
} else if (SPAN_KIND_CLIENT.contentEquals(spanKind)) {

dd-trace-core/src/test/java/datadog/trace/core/otlp/trace/OtlpTraceProtoTest.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import static datadog.trace.bootstrap.instrumentation.api.Tags.SPAN_KIND;
44
import static datadog.trace.bootstrap.instrumentation.api.Tags.SPAN_KIND_CLIENT;
55
import static datadog.trace.bootstrap.instrumentation.api.Tags.SPAN_KIND_CONSUMER;
6+
import static datadog.trace.bootstrap.instrumentation.api.Tags.SPAN_KIND_INTERNAL;
67
import static datadog.trace.bootstrap.instrumentation.api.Tags.SPAN_KIND_PRODUCER;
78
import static datadog.trace.bootstrap.instrumentation.api.Tags.SPAN_KIND_SERVER;
89
import static java.util.Arrays.asList;
@@ -86,7 +87,7 @@ static final class SpanSpec {
8687
/** Span type → attribute "span.type". */
8788
final String spanType;
8889

89-
/** Span kind tag value; {@code null} → INTERNAL (kind=1). */
90+
/** Span kind tag value; {@code null} → UNSPECIFIED (kind=0). */
9091
final String spanKind;
9192

9293
/** Start time in microseconds since epoch → start_time_unix_nano = startMicros * 1000. */
@@ -440,8 +441,9 @@ static Stream<Arguments> cases() {
440441

441442
// ── span kinds ────────────────────────────────────────────────────────
442443
Arguments.of(
443-
"minimal span — default INTERNAL kind",
444+
"minimal span — default UNSPECIFIED kind",
444445
asList(span("GET /api/users", "servlet.request", "web"))),
446+
Arguments.of("internal span kind", asList(kindSpan("GET /api/users", SPAN_KIND_INTERNAL))),
445447
Arguments.of("server span kind", asList(kindSpan("GET /api/users", SPAN_KIND_SERVER))),
446448
Arguments.of("client span kind", asList(kindSpan("redis.get", SPAN_KIND_CLIENT))),
447449
Arguments.of("producer span kind", asList(kindSpan("kafka.produce", SPAN_KIND_PRODUCER))),
@@ -1142,20 +1144,21 @@ private static void verifyLink(CodedInputStream link, LinkSpec linkSpec, String
11421144
* Returns the expected SpanKind enum value for the given Datadog span kind tag value.
11431145
*
11441146
* <pre>
1145-
* SPAN_KIND_UNSPECIFIED = 0 (unused)
1146-
* SPAN_KIND_INTERNAL = 1 (default)
1147+
* SPAN_KIND_UNSPECIFIED = 0 (default)
1148+
* SPAN_KIND_INTERNAL = 1
11471149
* SPAN_KIND_SERVER = 2
11481150
* SPAN_KIND_CLIENT = 3
11491151
* SPAN_KIND_PRODUCER = 4
11501152
* SPAN_KIND_CONSUMER = 5
11511153
* </pre>
11521154
*/
11531155
private static int expectedKind(String spanKind) {
1156+
if (SPAN_KIND_INTERNAL.equals(spanKind)) return 1;
11541157
if (SPAN_KIND_SERVER.equals(spanKind)) return 2;
11551158
if (SPAN_KIND_CLIENT.equals(spanKind)) return 3;
11561159
if (SPAN_KIND_PRODUCER.equals(spanKind)) return 4;
11571160
if (SPAN_KIND_CONSUMER.equals(spanKind)) return 5;
1158-
return 1; // INTERNAL
1161+
return 0; // UNSPECIFIED
11591162
}
11601163

11611164
/**

0 commit comments

Comments
 (0)