diff --git a/bom/application/pom.xml b/bom/application/pom.xml
index efc6d1f459cae..4fdb8030ebcc1 100644
--- a/bom/application/pom.xml
+++ b/bom/application/pom.xml
@@ -29,8 +29,8 @@
3.0.1.Final
3.2.0.Final
6.2.12.Final
- 2.15.0-alpha
- 1.32.0-alpha
+ 2.21.0-alpha
+ 1.37.0-alpha
5.3.5
1.14.7
2.2.2
diff --git a/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/exporter/otlp/OTelExporterRecorder.java b/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/exporter/otlp/OTelExporterRecorder.java
index d2e11cfee843a..f2e637ce3b46d 100644
--- a/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/exporter/otlp/OTelExporterRecorder.java
+++ b/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/exporter/otlp/OTelExporterRecorder.java
@@ -1,6 +1,6 @@
package io.quarkus.opentelemetry.runtime.exporter.otlp;
-import static io.quarkus.opentelemetry.runtime.config.build.ExporterType.Constants.OTLP_VALUE;
+import static io.opentelemetry.sdk.internal.StandardComponentId.ExporterType.OTLP_GRPC_METRIC_EXPORTER;
import static io.quarkus.opentelemetry.runtime.config.runtime.exporter.OtlpExporterConfig.Protocol.GRPC;
import static io.quarkus.opentelemetry.runtime.config.runtime.exporter.OtlpExporterConfig.Protocol.HTTP_PROTOBUF;
import static io.quarkus.opentelemetry.runtime.config.runtime.exporter.OtlpExporterRuntimeConfig.DEFAULT_GRPC_BASE_URI;
@@ -27,6 +27,9 @@
import io.opentelemetry.exporter.internal.otlp.traces.TraceRequestMarshaler;
import io.opentelemetry.exporter.otlp.internal.OtlpUserAgent;
import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException;
+import io.opentelemetry.sdk.common.InternalTelemetryVersion;
+import io.opentelemetry.sdk.internal.ComponentId;
+import io.opentelemetry.sdk.internal.StandardComponentId;
import io.opentelemetry.sdk.logs.export.LogRecordExporter;
import io.opentelemetry.sdk.metrics.Aggregation;
import io.opentelemetry.sdk.metrics.InstrumentType;
@@ -43,7 +46,12 @@
import io.quarkus.opentelemetry.runtime.config.build.OTelBuildConfig;
import io.quarkus.opentelemetry.runtime.config.runtime.BatchSpanProcessorConfig;
import io.quarkus.opentelemetry.runtime.config.runtime.OTelRuntimeConfig;
-import io.quarkus.opentelemetry.runtime.config.runtime.exporter.*;
+import io.quarkus.opentelemetry.runtime.config.runtime.exporter.CompressionType;
+import io.quarkus.opentelemetry.runtime.config.runtime.exporter.OtlpExporterConfig;
+import io.quarkus.opentelemetry.runtime.config.runtime.exporter.OtlpExporterLogsConfig;
+import io.quarkus.opentelemetry.runtime.config.runtime.exporter.OtlpExporterMetricsConfig;
+import io.quarkus.opentelemetry.runtime.config.runtime.exporter.OtlpExporterRuntimeConfig;
+import io.quarkus.opentelemetry.runtime.config.runtime.exporter.OtlpExporterTracesConfig;
import io.quarkus.opentelemetry.runtime.exporter.otlp.logs.NoopLogRecordExporter;
import io.quarkus.opentelemetry.runtime.exporter.otlp.logs.VertxGrpcLogRecordExporter;
import io.quarkus.opentelemetry.runtime.exporter.otlp.logs.VertxHttpLogRecordExporter;
@@ -105,6 +113,7 @@ public LateBoundSpanProcessor apply(
try {
TlsConfigurationRegistry tlsConfigurationRegistry = context
.getInjectedReference(TlsConfigurationRegistry.class);
+
var spanExporter = createSpanExporter(exporterRuntimeConfig.getValue(), vertx.get(), baseUri,
tlsConfigurationRegistry);
@@ -140,9 +149,11 @@ private SpanExporter createSpanExporter(OtlpExporterRuntimeConfig exporterRuntim
String protocol = tracesConfig.protocol().get();
if (GRPC.equals(protocol)) {
- return createOtlpGrpcSpanExporter(exporterRuntimeConfig, vertx, baseUri, tlsConfigurationRegistry);
+ return createOtlpGrpcSpanExporter(exporterRuntimeConfig, vertx, baseUri,
+ tlsConfigurationRegistry);
} else if (HTTP_PROTOBUF.equals(protocol)) {
- return createHttpSpanExporter(exporterRuntimeConfig, vertx, baseUri, protocol, tlsConfigurationRegistry);
+ return createHttpSpanExporter(exporterRuntimeConfig, vertx, baseUri, protocol,
+ tlsConfigurationRegistry);
}
throw new IllegalArgumentException(String.format("Unsupported OTLP protocol %s specified. " +
@@ -156,8 +167,6 @@ private SpanExporter createOtlpGrpcSpanExporter(OtlpExporterRuntimeConfig export
OtlpExporterTracesConfig tracesConfig = exporterRuntimeConfig.traces();
return new VertxGrpcSpanExporter(new GrpcExporter(
- OTLP_VALUE, // use the same as OTel does
- "span", // use the same as OTel does
new VertxGrpcSender(
baseUri,
VertxGrpcSender.GRPC_TRACE_SERVICE_NAME,
@@ -166,7 +175,10 @@ private SpanExporter createOtlpGrpcSpanExporter(OtlpExporterRuntimeConfig export
populateTracingExportHttpHeaders(tracesConfig),
new HttpClientOptionsConsumer(tracesConfig, baseUri, tlsConfigurationRegistry),
vertx),
- MeterProvider::noop));
+ InternalTelemetryVersion.LATEST,
+ ComponentId.generateLazy(StandardComponentId.ExporterType.OTLP_GRPC_SPAN_EXPORTER), // use the same as OTel does
+ MeterProvider::noop,
+ baseUri.toASCIIString()));
}
private SpanExporter createHttpSpanExporter(OtlpExporterRuntimeConfig exporterRuntimeConfig, Vertx vertx,
@@ -178,8 +190,7 @@ private SpanExporter createHttpSpanExporter(OtlpExporterRuntimeConfig exporterRu
boolean exportAsJson = false; //TODO: this will be enhanced in the future
return new VertxHttpSpanExporter(new HttpExporter(
- OTLP_VALUE, // use the same as OTel does
- "span", // use the same as OTel does
+ ComponentId.generateLazy(StandardComponentId.ExporterType.OTLP_HTTP_SPAN_EXPORTER),
new VertxHttpSender(
baseUri,
VertxHttpSender.TRACES_PATH,
@@ -190,7 +201,8 @@ private SpanExporter createHttpSpanExporter(OtlpExporterRuntimeConfig exporterRu
new HttpClientOptionsConsumer(tracesConfig, baseUri, tlsConfigurationRegistry),
vertx),
MeterProvider::noop,
- exportAsJson));
+ InternalTelemetryVersion.LATEST,
+ baseUri.toASCIIString()));
}
};
}
@@ -222,8 +234,6 @@ public MetricExporter apply(SyntheticCreationalContext context)
if (GRPC.equals(protocol)) {
metricExporter = new VertxGrpcMetricExporter(
new GrpcExporter(
- OTLP_VALUE, // use the same as OTel does
- "metric", // use the same as OTel does
new VertxGrpcSender(
baseUri,
VertxGrpcSender.GRPC_METRIC_SERVICE_NAME,
@@ -232,15 +242,18 @@ public MetricExporter apply(SyntheticCreationalContext context)
populateTracingExportHttpHeaders(metricsConfig),
new HttpClientOptionsConsumer(metricsConfig, baseUri, tlsConfigurationRegistry),
vertx.get()),
- MeterProvider::noop),
+ InternalTelemetryVersion.LATEST,
+ ComponentId.generateLazy(OTLP_GRPC_METRIC_EXPORTER), // use the same as OTel does
+ MeterProvider::noop,
+ baseUri.toASCIIString()),
aggregationTemporalityResolver(metricsConfig),
aggregationResolver(metricsConfig));
} else if (HTTP_PROTOBUF.equals(protocol)) {
boolean exportAsJson = false; //TODO: this will be enhanced in the future
metricExporter = new VertxHttpMetricsExporter(
new HttpExporter(
- OTLP_VALUE, // use the same as OTel does
- "metric", // use the same as OTel does
+ ComponentId.generateLazy(
+ StandardComponentId.ExporterType.OTLP_HTTP_METRIC_EXPORTER),
new VertxHttpSender(
baseUri,
VertxHttpSender.METRICS_PATH,
@@ -251,7 +264,8 @@ public MetricExporter apply(SyntheticCreationalContext context)
new HttpClientOptionsConsumer(metricsConfig, baseUri, tlsConfigurationRegistry),
vertx.get()),
MeterProvider::noop,
- exportAsJson),
+ InternalTelemetryVersion.LATEST,
+ baseUri.toASCIIString()),
aggregationTemporalityResolver(metricsConfig),
aggregationResolver(metricsConfig));
} else {
@@ -294,8 +308,6 @@ public LogRecordExporter apply(SyntheticCreationalContext con
if (GRPC.equals(protocol)) {
logRecordExporter = new VertxGrpcLogRecordExporter(
new GrpcExporter(
- OTLP_VALUE, // use the same as OTel does
- "log", // use the same as OTel does
new VertxGrpcSender(
baseUri,
VertxGrpcSender.GRPC_LOG_SERVICE_NAME,
@@ -304,13 +316,17 @@ public LogRecordExporter apply(SyntheticCreationalContext con
populateTracingExportHttpHeaders(logsConfig),
new HttpClientOptionsConsumer(logsConfig, baseUri, tlsConfigurationRegistry),
vertx.get()),
- MeterProvider::noop));
+ InternalTelemetryVersion.LATEST,
+ ComponentId.generateLazy(
+ StandardComponentId.ExporterType.OTLP_GRPC_LOG_EXPORTER), // use the same as OTel does
+ MeterProvider::noop,
+ baseUri.toASCIIString()));
} else if (HTTP_PROTOBUF.equals(protocol)) {
boolean exportAsJson = false; //TODO: this will be enhanced in the future
logRecordExporter = new VertxHttpLogRecordExporter(
new HttpExporter(
- OTLP_VALUE, // use the same as OTel does
- "log", // use the same as OTel does
+ ComponentId.generateLazy(
+ StandardComponentId.ExporterType.OTLP_HTTP_LOG_EXPORTER),
new VertxHttpSender(
baseUri,
VertxHttpSender.LOGS_PATH,
@@ -321,7 +337,8 @@ public LogRecordExporter apply(SyntheticCreationalContext con
new HttpClientOptionsConsumer(logsConfig, baseUri, tlsConfigurationRegistry),
vertx.get()),
MeterProvider::noop,
- exportAsJson));
+ InternalTelemetryVersion.LATEST,
+ baseUri.toASCIIString()));
} else {
throw new IllegalArgumentException(String.format("Unsupported OTLP protocol %s specified. " +
"Please check `quarkus.otel.exporter.otlp.logs.protocol` property", protocol));
diff --git a/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/graal/UnsafeRefArrayAccess.java b/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/graal/UnsafeRefArrayAccess.java
deleted file mode 100644
index 5e23bba3484a6..0000000000000
--- a/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/graal/UnsafeRefArrayAccess.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package io.quarkus.opentelemetry.runtime.graal;
-
-import com.oracle.svm.core.annotate.Alias;
-import com.oracle.svm.core.annotate.RecomputeFieldValue;
-import com.oracle.svm.core.annotate.TargetClass;
-
-@TargetClass(className = "io.opentelemetry.internal.shaded.jctools.util.UnsafeRefArrayAccess")
-final class UnsafeRefArrayAccess {
-
- @Alias
- @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.ArrayIndexShift, declClass = Object[].class)
- public static int REF_ELEMENT_SHIFT;
-
-}
diff --git a/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/cdi/WithSpanInterceptor.java b/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/cdi/WithSpanInterceptor.java
index 0de942894f78b..31b462d2c98a5 100644
--- a/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/cdi/WithSpanInterceptor.java
+++ b/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/cdi/WithSpanInterceptor.java
@@ -24,12 +24,12 @@
import io.opentelemetry.instrumentation.annotations.WithSpan;
import io.opentelemetry.instrumentation.api.annotation.support.MethodSpanAttributesExtractor;
import io.opentelemetry.instrumentation.api.annotation.support.ParameterAttributeNamesExtractor;
-import io.opentelemetry.instrumentation.api.incubator.semconv.util.SpanNames;
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.InstrumenterBuilder;
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
+import io.opentelemetry.instrumentation.api.semconv.util.SpanNames;
import io.quarkus.arc.ArcInvocationContext;
import io.quarkus.opentelemetry.runtime.config.runtime.OTelRuntimeConfig;
import io.smallrye.mutiny.Multi;
diff --git a/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/intrumentation/vertx/RedisClientInstrumenterVertxTracer.java b/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/intrumentation/vertx/RedisClientInstrumenterVertxTracer.java
index 196e5321ab7e6..67a77ffd90aa8 100644
--- a/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/intrumentation/vertx/RedisClientInstrumenterVertxTracer.java
+++ b/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/intrumentation/vertx/RedisClientInstrumenterVertxTracer.java
@@ -194,7 +194,7 @@ public String getUser(CommandTrace commandTrace) {
@Override
public String getDbNamespace(CommandTrace commandTrace) {
- return DbClientAttributesGetter.super.getDbNamespace(commandTrace);
+ return null;
}
// kept for compatibility reasons
diff --git a/integration-tests/opentelemetry-spi/pom.xml b/integration-tests/opentelemetry-spi/pom.xml
index 7573bbb8302d2..8ad73c5b62e01 100644
--- a/integration-tests/opentelemetry-spi/pom.xml
+++ b/integration-tests/opentelemetry-spi/pom.xml
@@ -15,7 +15,7 @@
Quarkus - Integration Tests - OpenTelemetry SPI
- 1.43.0-alpha
+ 1.51.0-alpha