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