Skip to content

Commit d954045

Browse files
committed
OTel instrumentation 2.15.0-alpha, opentelemetry-semconv.version 1.32.0-alpha, SR RM 4.30.0
1 parent c3944a9 commit d954045

File tree

29 files changed

+301
-159
lines changed

29 files changed

+301
-159
lines changed

bom/application/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
<resteasy-microprofile.version>3.0.1.Final</resteasy-microprofile.version>
3030
<resteasy-spring-web.version>3.2.0.Final</resteasy-spring-web.version>
3131
<resteasy.version>6.2.12.Final</resteasy.version>
32-
<opentelemetry-instrumentation.version>2.12.0-alpha</opentelemetry-instrumentation.version>
33-
<opentelemetry-semconv.version>1.29.0-alpha</opentelemetry-semconv.version>
32+
<opentelemetry-instrumentation.version>2.15.0-alpha</opentelemetry-instrumentation.version> <!-- OTel SDk 1.49.0-->
33+
<opentelemetry-semconv.version>1.32.0-alpha</opentelemetry-semconv.version>
3434
<quarkus-http.version>5.3.5</quarkus-http.version>
3535
<micrometer.version>1.14.7</micrometer.version><!-- keep in sync with hdrhistogram: https://central.sonatype.com/artifact/io.micrometer/micrometer-core -->
3636
<hdrhistogram.version>2.2.2</hdrhistogram.version><!-- keep in sync with micrometer -->
@@ -58,7 +58,7 @@
5858
<smallrye-reactive-streams-operators.version>1.0.13</smallrye-reactive-streams-operators.version>
5959
<smallrye-reactive-types-converter.version>3.0.3</smallrye-reactive-types-converter.version>
6060
<smallrye-mutiny-vertx-binding.version>3.20.0</smallrye-mutiny-vertx-binding.version>
61-
<smallrye-reactive-messaging.version>4.29.0</smallrye-reactive-messaging.version>
61+
<smallrye-reactive-messaging.version>4.30.0</smallrye-reactive-messaging.version>
6262
<smallrye-stork.version>2.7.3</smallrye-stork.version>
6363
<jakarta.activation.version>2.1.4</jakarta.activation.version>
6464
<jakarta.annotation-api.version>3.0.0</jakarta.annotation-api.version>

extensions/opentelemetry/deployment/src/test/java/io/quarkus/opentelemetry/deployment/interceptor/AddingSpanAttributesInterceptorTest.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
package io.quarkus.opentelemetry.deployment.interceptor;
22

33
import static io.opentelemetry.api.trace.SpanKind.INTERNAL;
4-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_FUNCTION;
5-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_NAMESPACE;
4+
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_FUNCTION_NAME;
65
import static org.junit.jupiter.api.Assertions.assertEquals;
76
import static org.junit.jupiter.api.Assertions.assertFalse;
87
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -106,11 +105,11 @@ void withSpanAttributesTest_newSpan() {
106105
SpanData spanDataOut = spanItems.get(0);
107106
assertEquals("HelloRouter.withSpanTakesPrecedence", spanDataOut.getName());
108107
assertEquals(INTERNAL, spanDataOut.getKind());
109-
assertEquals(4, spanDataOut.getAttributes().size());
108+
assertEquals(3, spanDataOut.getAttributes().size());
110109
assertEquals("implicit", getAttribute(spanDataOut, "implicitName"));
111110
assertEquals("explicit", getAttribute(spanDataOut, "explicitName"));
112-
assertEquals("withSpanTakesPrecedence", spanDataOut.getAttributes().get((CODE_FUNCTION)));
113-
assertEquals(HelloRouter.class.getName(), spanDataOut.getAttributes().get((CODE_NAMESPACE)));
111+
assertEquals(HelloRouter.class.getName() + ".withSpanTakesPrecedence",
112+
spanDataOut.getAttributes().get((CODE_FUNCTION_NAME)));
114113
}
115114

116115
@Test

extensions/opentelemetry/deployment/src/test/java/io/quarkus/opentelemetry/deployment/interceptor/WithSpanInterceptorTest.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
import static io.opentelemetry.api.trace.SpanKind.INTERNAL;
55
import static io.opentelemetry.api.trace.SpanKind.SERVER;
66
import static io.opentelemetry.api.trace.StatusCode.ERROR;
7-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_FUNCTION;
8-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_NAMESPACE;
7+
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_FUNCTION_NAME;
98
import static io.quarkus.opentelemetry.deployment.common.exporter.TestSpanExporter.getSpanByKindAndParentId;
109
import static java.net.HttpURLConnection.HTTP_OK;
1110
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -217,8 +216,7 @@ void spanMultiWithException() {
217216
}
218217

219218
private void assertClassMethodNames(SpanData span, Class<?> clazz, String method) {
220-
assertEquals(method, span.getAttributes().get((CODE_FUNCTION)));
221-
assertEquals(clazz.getName(), span.getAttributes().get((CODE_NAMESPACE)));
219+
assertEquals(clazz.getName() + "." + method, span.getAttributes().get((CODE_FUNCTION_NAME)));
222220
}
223221

224222
@ApplicationScoped

extensions/opentelemetry/deployment/src/test/java/io/quarkus/opentelemetry/deployment/logs/OtelLoggingFileTest.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@
33
import static io.opentelemetry.semconv.ExceptionAttributes.EXCEPTION_MESSAGE;
44
import static io.opentelemetry.semconv.ExceptionAttributes.EXCEPTION_STACKTRACE;
55
import static io.opentelemetry.semconv.ExceptionAttributes.EXCEPTION_TYPE;
6-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_FUNCTION;
7-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_LINENO;
8-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_NAMESPACE;
6+
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_FUNCTION_NAME;
7+
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_LINE_NUMBER;
98
import static io.opentelemetry.semconv.incubating.LogIncubatingAttributes.LOG_FILE_PATH;
109
import static io.opentelemetry.semconv.incubating.ThreadIncubatingAttributes.THREAD_ID;
1110
import static io.opentelemetry.semconv.incubating.ThreadIncubatingAttributes.THREAD_NAME;
@@ -73,14 +72,13 @@ public void testLoggingData() {
7372
.hasBody(message)
7473
.hasAttributesSatisfying(
7574
attributes -> OpenTelemetryAssertions.assertThat(attributes)
76-
.containsEntry(CODE_NAMESPACE.getKey(),
77-
"io.quarkus.opentelemetry.deployment.logs.OtelLoggingFileTest$JBossLoggingBean")
78-
.containsEntry(CODE_FUNCTION.getKey(), "hello")
75+
.containsEntry(CODE_FUNCTION_NAME.getKey(),
76+
"io.quarkus.opentelemetry.deployment.logs.OtelLoggingFileTest$JBossLoggingBean.hello")
7977
.containsEntry(THREAD_NAME.getKey(), Thread.currentThread().getName())
8078
.containsEntry(THREAD_ID.getKey(), Thread.currentThread().getId())
8179
.containsEntry("log.logger.namespace", "org.jboss.logging.Logger")
8280
.containsEntry(LOG_FILE_PATH, "target" + File.separator + "quarkus.log")
83-
.containsKey(CODE_LINENO.getKey())
81+
.containsKey(CODE_LINE_NUMBER.getKey())
8482
.doesNotContainKey(EXCEPTION_TYPE)
8583
.doesNotContainKey(EXCEPTION_MESSAGE)
8684
.doesNotContainKey(EXCEPTION_STACKTRACE)

extensions/opentelemetry/deployment/src/test/java/io/quarkus/opentelemetry/deployment/logs/OtelLoggingTest.java

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@
55
import static io.opentelemetry.semconv.ExceptionAttributes.EXCEPTION_MESSAGE;
66
import static io.opentelemetry.semconv.ExceptionAttributes.EXCEPTION_STACKTRACE;
77
import static io.opentelemetry.semconv.ExceptionAttributes.EXCEPTION_TYPE;
8-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_FUNCTION;
9-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_LINENO;
10-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_NAMESPACE;
8+
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_FUNCTION_NAME;
9+
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_LINE_NUMBER;
1110
import static io.opentelemetry.semconv.incubating.LogIncubatingAttributes.LOG_FILE_PATH;
1211
import static io.opentelemetry.semconv.incubating.ThreadIncubatingAttributes.THREAD_ID;
1312
import static io.opentelemetry.semconv.incubating.ThreadIncubatingAttributes.THREAD_NAME;
@@ -92,13 +91,12 @@ public void testLoggingData() {
9291
.hasBody(message)
9392
.hasAttributesSatisfying(
9493
attributes -> assertThat(attributes)
95-
.containsEntry(CODE_NAMESPACE.getKey(),
96-
"io.quarkus.opentelemetry.deployment.logs.OtelLoggingTest$JBossLoggingBean")
97-
.containsEntry(CODE_FUNCTION.getKey(), "hello")
94+
.containsEntry(CODE_FUNCTION_NAME.getKey(),
95+
"io.quarkus.opentelemetry.deployment.logs.OtelLoggingTest$JBossLoggingBean.hello")
9896
.containsEntry(THREAD_NAME.getKey(), Thread.currentThread().getName())
9997
.containsEntry(THREAD_ID.getKey(), Thread.currentThread().getId())
10098
.containsEntry("log.logger.namespace", "org.jboss.logging.Logger")
101-
.containsKey(CODE_LINENO.getKey())
99+
.containsKey(CODE_LINE_NUMBER.getKey())
102100
.containsEntry("bridge.name",
103101
"io.quarkus.opentelemetry.deployment.logs.OtelLoggingTest$JBossLoggingBean")
104102
.doesNotContainKey(EXCEPTION_TYPE)
@@ -133,13 +131,12 @@ public void testTrace() {
133131
.hasBody(message)
134132
.hasAttributesSatisfying(
135133
attributes -> assertThat(attributes)
136-
.containsEntry(CODE_NAMESPACE.getKey(),
137-
"io.quarkus.opentelemetry.deployment.logs.OtelLoggingTest$JBossLoggingBean")
138-
.containsEntry(CODE_FUNCTION.getKey(), "helloTraced")
134+
.containsEntry(CODE_FUNCTION_NAME.getKey(),
135+
"io.quarkus.opentelemetry.deployment.logs.OtelLoggingTest$JBossLoggingBean.helloTraced")
139136
.containsEntry(THREAD_NAME.getKey(), Thread.currentThread().getName())
140137
.containsEntry(THREAD_ID.getKey(), Thread.currentThread().getId())
141138
.containsEntry("log.logger.namespace", "org.jboss.logging.Logger")
142-
.containsKey(CODE_LINENO.getKey())
139+
.containsKey(CODE_LINE_NUMBER.getKey())
143140
.doesNotContainKey(EXCEPTION_TYPE)
144141
.doesNotContainKey(EXCEPTION_MESSAGE)
145142
.doesNotContainKey(EXCEPTION_STACKTRACE)
@@ -194,13 +191,12 @@ public void testLogFormatingData() {
194191
.hasBody(expected)
195192
.hasAttributesSatisfying(
196193
attributes -> assertThat(attributes)
197-
.containsEntry(CODE_NAMESPACE.getKey(),
198-
"io.quarkus.opentelemetry.deployment.logs.OtelLoggingTest$JBossLoggingBean")
199-
.containsEntry(CODE_FUNCTION.getKey(), "helloLogFormating")
194+
.containsEntry(CODE_FUNCTION_NAME.getKey(),
195+
"io.quarkus.opentelemetry.deployment.logs.OtelLoggingTest$JBossLoggingBean.helloLogFormating")
200196
.containsEntry(THREAD_NAME.getKey(), Thread.currentThread().getName())
201197
.containsEntry(THREAD_ID.getKey(), Thread.currentThread().getId())
202198
.containsEntry("log.logger.namespace", "org.jboss.logging.Logger")
203-
.containsKey(CODE_LINENO.getKey())
199+
.containsKey(CODE_LINE_NUMBER.getKey())
204200
.doesNotContainKey(EXCEPTION_TYPE)
205201
.doesNotContainKey(EXCEPTION_MESSAGE)
206202
.doesNotContainKey(EXCEPTION_STACKTRACE)
@@ -231,13 +227,12 @@ public void testLogParameterValue() {
231227
.hasBody(expected)
232228
.hasAttributesSatisfying(
233229
attributes -> assertThat(attributes)
234-
.containsEntry(CODE_NAMESPACE.getKey(),
235-
"io.quarkus.opentelemetry.deployment.logs.OtelLoggingTest$JBossLoggingBean")
236-
.containsEntry(CODE_FUNCTION.getKey(), "helloLogParameterValue")
230+
.containsEntry(CODE_FUNCTION_NAME.getKey(),
231+
"io.quarkus.opentelemetry.deployment.logs.OtelLoggingTest$JBossLoggingBean.helloLogParameterValue")
237232
.containsEntry(THREAD_NAME.getKey(), Thread.currentThread().getName())
238233
.containsEntry(THREAD_ID.getKey(), Thread.currentThread().getId())
239234
.containsEntry("log.logger.namespace", "org.jboss.logging.Logger")
240-
.containsKey(CODE_LINENO.getKey())
235+
.containsKey(CODE_LINE_NUMBER.getKey())
241236
.doesNotContainKey(EXCEPTION_TYPE)
242237
.doesNotContainKey(EXCEPTION_MESSAGE)
243238
.doesNotContainKey(EXCEPTION_STACKTRACE)

extensions/opentelemetry/deployment/src/test/java/io/quarkus/opentelemetry/deployment/traces/OpenTelemetryHttpCDITest.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
import static io.opentelemetry.api.trace.SpanKind.INTERNAL;
44
import static io.opentelemetry.api.trace.SpanKind.SERVER;
5-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_FUNCTION;
6-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_NAMESPACE;
5+
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_FUNCTION_NAME;
76
import static io.quarkus.opentelemetry.deployment.common.TestUtil.assertStringAttribute;
87
import static io.quarkus.opentelemetry.deployment.common.exporter.TestSpanExporter.getSpanByKindAndParentId;
98
import static org.assertj.core.api.Assertions.assertThat;
@@ -65,9 +64,8 @@ void telemetry() {
6564
final SpanData server = getSpanByKindAndParentId(spans, SERVER, "0000000000000000");
6665
assertEquals("GET /hello", server.getName());
6766
// verify that OpenTelemetryServerFilter took place
68-
assertStringAttribute(server, CODE_NAMESPACE,
69-
"io.quarkus.opentelemetry.deployment.traces.OpenTelemetryHttpCDITest$HelloResource");
70-
assertStringAttribute(server, CODE_FUNCTION, "hello");
67+
assertStringAttribute(server, CODE_FUNCTION_NAME,
68+
"io.quarkus.opentelemetry.deployment.traces.OpenTelemetryHttpCDITest$HelloResource.hello");
7169

7270
final SpanData internalFromBean = getSpanByKindAndParentId(spans, INTERNAL, server.getSpanId());
7371
assertEquals("HelloBean.hello", internalFromBean.getName());
@@ -89,7 +87,7 @@ void withSpan() {
8987

9088
final SpanData withSpan = getSpanByKindAndParentId(spans, INTERNAL, server.getSpanId());
9189
assertEquals("withSpan", withSpan.getName());
92-
assertEquals(2, withSpan.getAttributes().size());
90+
assertEquals(1, withSpan.getAttributes().size());
9391

9492
final SpanData bean = getSpanByKindAndParentId(spans, INTERNAL, withSpan.getSpanId());
9593
assertEquals("HelloBean.hello", bean.getName());

extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/OpenTelemetryRecorder.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import io.opentelemetry.api.GlobalOpenTelemetry;
2121
import io.opentelemetry.api.OpenTelemetry;
2222
import io.opentelemetry.api.common.Attributes;
23-
import io.opentelemetry.api.incubator.events.GlobalEventLoggerProvider;
2423
import io.opentelemetry.context.ContextStorage;
2524
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
2625
import io.opentelemetry.sdk.resources.Resource;
@@ -48,7 +47,6 @@ public OpenTelemetryRecorder(final RuntimeValue<OTelRuntimeConfig> runtimeConfig
4847
@StaticInit
4948
public void resetGlobalOpenTelemetryForDevMode() {
5049
GlobalOpenTelemetry.resetForTest();
51-
GlobalEventLoggerProvider.resetForTest();
5250
}
5351

5452
@StaticInit
@@ -125,6 +123,9 @@ private Map<String, String> getOtelConfigs() {
125123

126124
// instruct OTel that we are using the AutoConfiguredOpenTelemetrySdk
127125
oTelConfigs.put("otel.java.global-autoconfigure.enabled", "true");
126+
// Emit stable semantic conventions when available. It turns out this doesn't take effect because
127+
// OTel instrumentation code does not use the OTel SDK configs.
128+
oTelConfigs.put("otel.semconv-stability.opt-in", "true");
128129

129130
Map<String, String> otel = new HashMap<>();
130131
Map<String, String> quarkus = new HashMap<>();

extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/graal/Substitutions.java

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

extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/logs/OpenTelemetryLogHandler.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@
33
import static io.opentelemetry.semconv.ExceptionAttributes.EXCEPTION_MESSAGE;
44
import static io.opentelemetry.semconv.ExceptionAttributes.EXCEPTION_STACKTRACE;
55
import static io.opentelemetry.semconv.ExceptionAttributes.EXCEPTION_TYPE;
6-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_FUNCTION;
7-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_LINENO;
8-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_NAMESPACE;
6+
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_FUNCTION_NAME;
7+
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_LINE_NUMBER;
98
import static io.opentelemetry.semconv.incubating.LogIncubatingAttributes.LOG_FILE_PATH;
109
import static io.opentelemetry.semconv.incubating.ThreadIncubatingAttributes.THREAD_ID;
1110
import static io.opentelemetry.semconv.incubating.ThreadIncubatingAttributes.THREAD_NAME;
@@ -80,10 +79,9 @@ protected void doPublish(ExtLogRecord record) {
8079
}
8180

8281
final AttributesBuilder attributes = Attributes.builder();
83-
attributes.put(CODE_NAMESPACE, record.getSourceClassName());
84-
attributes.put(CODE_FUNCTION, record.getSourceMethodName());
82+
attributes.put(CODE_FUNCTION_NAME, record.getSourceClassName() + "." + record.getSourceMethodName());
8583

86-
attributes.put(CODE_LINENO, record.getSourceLineNumber());
84+
attributes.put(CODE_LINE_NUMBER, record.getSourceLineNumber());
8785
attributes.put(THREAD_NAME, record.getThreadName());
8886
attributes.put(THREAD_ID, record.getLongThreadID());
8987
attributes.put(NAMESPACE_ATTRIBUTE_KEY, record.getLoggerClassName());

extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/cdi/WithSpanInterceptor.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package io.quarkus.opentelemetry.runtime.tracing.cdi;
22

3-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_FUNCTION;
4-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_NAMESPACE;
3+
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_FUNCTION_NAME;
54
import static io.quarkus.opentelemetry.runtime.config.build.OTelBuildConfig.INSTRUMENTATION_NAME;
65

76
import java.lang.annotation.Annotation;
@@ -172,8 +171,9 @@ private ClassMethodNameAttributesExtractor() {
172171

173172
@Override
174173
public void onStart(AttributesBuilder attributesBuilder, Context context, MethodRequest methodRequest) {
175-
attributesBuilder.put(CODE_NAMESPACE, methodRequest.getMethod().getDeclaringClass().getName());
176-
attributesBuilder.put(CODE_FUNCTION, methodRequest.getMethod().getName());
174+
attributesBuilder.put(CODE_FUNCTION_NAME,
175+
methodRequest.getMethod().getDeclaringClass().getName() + "." +
176+
methodRequest.getMethod().getName());
177177
}
178178

179179
@Override

0 commit comments

Comments
 (0)