Skip to content

Commit 26143b2

Browse files
authored
code stable semconv (#1989)
1 parent 5ae1d57 commit 26143b2

File tree

9 files changed

+19
-43
lines changed

9 files changed

+19
-43
lines changed

inferred-spans/build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ dependencies {
1313
compileOnly("com.google.auto.service:auto-service-annotations")
1414
compileOnly("io.opentelemetry:opentelemetry-sdk")
1515
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
16+
compileOnly("io.opentelemetry.semconv:opentelemetry-semconv")
1617
implementation("com.lmax:disruptor")
1718
implementation("org.jctools:jctools-core")
1819
implementation("tools.profiler:async-profiler")
@@ -21,7 +22,7 @@ dependencies {
2122

2223
testAnnotationProcessor("com.google.auto.service:auto-service")
2324
testCompileOnly("com.google.auto.service:auto-service-annotations")
24-
testImplementation("io.opentelemetry.semconv:opentelemetry-semconv-incubating")
25+
testImplementation("io.opentelemetry.semconv:opentelemetry-semconv")
2526
testImplementation("io.opentelemetry:opentelemetry-sdk")
2627
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
2728
testImplementation("io.opentelemetry:opentelemetry-sdk-testing")

inferred-spans/src/main/java/io/opentelemetry/contrib/inferredspans/internal/CallTree.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
package io.opentelemetry.contrib.inferredspans.internal;
77

8-
import static io.opentelemetry.contrib.inferredspans.internal.semconv.Attributes.CODE_STACKTRACE;
98
import static io.opentelemetry.contrib.inferredspans.internal.semconv.Attributes.LINK_IS_CHILD;
109
import static io.opentelemetry.contrib.inferredspans.internal.semconv.Attributes.SPAN_IS_INFERRED;
1110
import static java.util.logging.Level.FINE;
@@ -20,6 +19,7 @@
2019
import io.opentelemetry.contrib.inferredspans.internal.pooling.ObjectPool;
2120
import io.opentelemetry.contrib.inferredspans.internal.pooling.Recyclable;
2221
import io.opentelemetry.contrib.inferredspans.internal.util.HexUtils;
22+
import io.opentelemetry.semconv.CodeAttributes;
2323
import java.io.IOException;
2424
import java.util.ArrayList;
2525
import java.util.Arrays;
@@ -515,7 +515,7 @@ protected Span asSpan(
515515
assert this.parent != null;
516516
tempBuilder.setLength(0);
517517
this.parent.fillStackTrace(tempBuilder);
518-
spanBuilder.setAttribute(CODE_STACKTRACE, tempBuilder.toString());
518+
spanBuilder.setAttribute(CodeAttributes.CODE_STACKTRACE, tempBuilder.toString());
519519
}
520520

521521
Span span = spanBuilder.startSpan();

inferred-spans/src/main/java/io/opentelemetry/contrib/inferredspans/internal/semconv/Attributes.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ public class Attributes {
1111

1212
private Attributes() {}
1313

14-
public static final AttributeKey<String> CODE_STACKTRACE =
15-
AttributeKey.stringKey("code.stacktrace");
1614
public static final AttributeKey<Boolean> LINK_IS_CHILD = AttributeKey.booleanKey("is_child");
1715
public static final AttributeKey<Boolean> SPAN_IS_INFERRED =
1816
AttributeKey.booleanKey("is_inferred");

inferred-spans/src/test/java/io/opentelemetry/contrib/inferredspans/internal/CallTreeSpanifyTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
package io.opentelemetry.contrib.inferredspans.internal;
77

8-
import static io.opentelemetry.contrib.inferredspans.internal.semconv.Attributes.CODE_STACKTRACE;
98
import static io.opentelemetry.contrib.inferredspans.internal.semconv.Attributes.SPAN_IS_INFERRED;
109
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
1110

@@ -21,6 +20,7 @@
2120
import io.opentelemetry.sdk.trace.SdkTracerProvider;
2221
import io.opentelemetry.sdk.trace.data.SpanData;
2322
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
23+
import io.opentelemetry.semconv.CodeAttributes;
2424
import java.util.Arrays;
2525
import java.util.Collections;
2626
import java.util.List;
@@ -64,26 +64,26 @@ void testSpanification() throws Exception {
6464
SpanData a = setup.getSpans().get(1);
6565
assertThat(a).hasName("CallTreeTest#a");
6666
assertThat(a.getEndEpochNanos() - a.getStartEpochNanos()).isEqualTo(30_000_000);
67-
assertThat(a.getAttributes().get(CODE_STACKTRACE)).isBlank();
67+
assertThat(a.getAttributes().get(CodeAttributes.CODE_STACKTRACE)).isBlank();
6868
assertThat(a).hasAttribute(SPAN_IS_INFERRED, true);
6969

7070
SpanData b = setup.getSpans().get(2);
7171
assertThat(b).hasName("CallTreeTest#b");
7272
assertThat(b.getEndEpochNanos() - b.getStartEpochNanos()).isEqualTo(20_000_000);
73-
assertThat(b.getAttributes().get(CODE_STACKTRACE)).isBlank();
73+
assertThat(b.getAttributes().get(CodeAttributes.CODE_STACKTRACE)).isBlank();
7474
assertThat(b).hasAttribute(SPAN_IS_INFERRED, true);
7575

7676
SpanData d = setup.getSpans().get(3);
7777
assertThat(d).hasName("CallTreeTest#d");
7878
assertThat(d.getEndEpochNanos() - d.getStartEpochNanos()).isEqualTo(10_000_000);
79-
assertThat(d.getAttributes().get(CODE_STACKTRACE))
79+
assertThat(d.getAttributes().get(CodeAttributes.CODE_STACKTRACE))
8080
.isEqualTo("at " + CallTreeTest.class.getName() + ".c(CallTreeTest.java)");
8181
assertThat(d).hasAttribute(SPAN_IS_INFERRED, true);
8282

8383
SpanData e = setup.getSpans().get(4);
8484
assertThat(e).hasName("CallTreeTest#e");
8585
assertThat(e.getEndEpochNanos() - e.getStartEpochNanos()).isEqualTo(10_000_000);
86-
assertThat(e.getAttributes().get(CODE_STACKTRACE)).isBlank();
86+
assertThat(e.getAttributes().get(CodeAttributes.CODE_STACKTRACE)).isBlank();
8787
assertThat(e).hasAttribute(SPAN_IS_INFERRED, true);
8888
}
8989
}

inferred-spans/src/test/java/io/opentelemetry/contrib/inferredspans/internal/CallTreeTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
package io.opentelemetry.contrib.inferredspans.internal;
77

8-
import static io.opentelemetry.contrib.inferredspans.internal.semconv.Attributes.CODE_STACKTRACE;
98
import static io.opentelemetry.contrib.inferredspans.internal.semconv.Attributes.LINK_IS_CHILD;
109
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
1110
import static java.util.stream.Collectors.toMap;
@@ -20,6 +19,7 @@
2019
import io.opentelemetry.contrib.inferredspans.internal.util.DisabledOnOpenJ9;
2120
import io.opentelemetry.sdk.trace.data.LinkData;
2221
import io.opentelemetry.sdk.trace.data.SpanData;
22+
import io.opentelemetry.semconv.CodeAttributes;
2323
import java.io.IOException;
2424
import java.time.Duration;
2525
import java.util.ArrayList;
@@ -924,7 +924,7 @@ private Map<String, SpanData> assertCallTree(
924924
.describedAs("Unexpected duration for span %s", span)
925925
.isEqualTo(durationMs * 1_000_000L);
926926

927-
String actualStacktrace = span.getAttributes().get(CODE_STACKTRACE);
927+
String actualStacktrace = span.getAttributes().get(CodeAttributes.CODE_STACKTRACE);
928928
if (stackTrace == null || stackTrace.isEmpty()) {
929929
assertThat(actualStacktrace).isBlank();
930930
} else {

inferred-spans/src/test/java/io/opentelemetry/contrib/inferredspans/internal/semconv/AttributesTest.java

Lines changed: 0 additions & 19 deletions
This file was deleted.

span-stacktrace/build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ dependencies {
1818
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
1919
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
2020

21-
testImplementation("io.opentelemetry.semconv:opentelemetry-semconv-incubating")
21+
compileOnly("io.opentelemetry.semconv:opentelemetry-semconv")
22+
testImplementation("io.opentelemetry.semconv:opentelemetry-semconv")
2223

2324
testAnnotationProcessor("com.google.auto.service:auto-service")
2425
testCompileOnly("com.google.auto.service:auto-service-annotations")

span-stacktrace/src/main/java/io/opentelemetry/contrib/stacktrace/StackTraceSpanProcessor.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,17 @@
55

66
package io.opentelemetry.contrib.stacktrace;
77

8-
import io.opentelemetry.api.common.AttributeKey;
98
import io.opentelemetry.context.Context;
109
import io.opentelemetry.sdk.trace.ReadWriteSpan;
1110
import io.opentelemetry.sdk.trace.ReadableSpan;
1211
import io.opentelemetry.sdk.trace.internal.ExtendedSpanProcessor;
12+
import io.opentelemetry.semconv.CodeAttributes;
1313
import java.io.PrintWriter;
1414
import java.io.StringWriter;
1515
import java.util.function.Predicate;
1616

1717
public class StackTraceSpanProcessor implements ExtendedSpanProcessor {
1818

19-
// inlined incubating attribute to prevent direct dependency on incubating semconv
20-
private static final AttributeKey<String> SPAN_STACKTRACE =
21-
AttributeKey.stringKey("code.stacktrace");
22-
2319
private final long minSpanDurationNanos;
2420

2521
private final Predicate<ReadableSpan> filterPredicate;
@@ -56,14 +52,14 @@ public void onEnding(ReadWriteSpan span) {
5652
if (span.getLatencyNanos() < minSpanDurationNanos) {
5753
return;
5854
}
59-
if (span.getAttribute(SPAN_STACKTRACE) != null) {
55+
if (span.getAttribute(CodeAttributes.CODE_STACKTRACE) != null) {
6056
// Span already has a stacktrace, do not override
6157
return;
6258
}
6359
if (!filterPredicate.test(span)) {
6460
return;
6561
}
66-
span.setAttribute(SPAN_STACKTRACE, generateSpanEndStacktrace());
62+
span.setAttribute(CodeAttributes.CODE_STACKTRACE, generateSpanEndStacktrace());
6763
}
6864

6965
@Override

span-stacktrace/src/test/java/io/opentelemetry/contrib/stacktrace/StackTraceSpanProcessorTest.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import io.opentelemetry.sdk.trace.ReadableSpan;
2020
import io.opentelemetry.sdk.trace.data.SpanData;
2121
import io.opentelemetry.sdk.trace.export.SpanExporter;
22-
import io.opentelemetry.semconv.incubating.CodeIncubatingAttributes;
22+
import io.opentelemetry.semconv.CodeAttributes;
2323
import java.time.Duration;
2424
import java.time.Instant;
2525
import java.util.HashMap;
@@ -89,7 +89,7 @@ void spanWithExistingStackTrace() {
8989
YesPredicate.class,
9090
"1ms",
9191
Duration.ofMillis(1).toNanos(),
92-
sb -> sb.setAttribute(CodeIncubatingAttributes.CODE_STACKTRACE, "hello"),
92+
sb -> sb.setAttribute(CodeAttributes.CODE_STACKTRACE, "hello"),
9393
stacktrace -> assertThat(stacktrace).isEqualTo("hello"));
9494
}
9595

@@ -169,8 +169,7 @@ private static void checkSpan(
169169
List<SpanData> finishedSpans = spansExporter.getFinishedSpanItems();
170170
assertThat(finishedSpans).hasSize(1);
171171

172-
String stackTrace =
173-
finishedSpans.get(0).getAttributes().get(CodeIncubatingAttributes.CODE_STACKTRACE);
172+
String stackTrace = finishedSpans.get(0).getAttributes().get(CodeAttributes.CODE_STACKTRACE);
174173

175174
stackTraceCheck.accept(stackTrace);
176175
}

0 commit comments

Comments
 (0)