Set declarative config default OTLP protocol to http/protobuf (#6800)

This commit is contained in:
jack-berg 2024-10-17 12:42:37 -05:00 committed by GitHub
parent 1ac476b3b7
commit 62df132007
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 35 additions and 31 deletions

View File

@ -51,7 +51,14 @@ public final class OtlpConfigUtil {
/** Determine the configured OTLP protocol for the {@code dataType}. */ /** Determine the configured OTLP protocol for the {@code dataType}. */
public static String getStructuredConfigOtlpProtocol(StructuredConfigProperties config) { public static String getStructuredConfigOtlpProtocol(StructuredConfigProperties config) {
return config.getString("protocol", PROTOCOL_GRPC); // NOTE: The default OTLP protocol is different for declarative config than for env var / system
// property based config. This is intentional. OpenTelemetry changed the default protocol
// recommendation from grpc to http/protobuf, but the autoconfigure's env var / system property
// based config did not update to reflect this before stabilizing, and changing is a breaking
// change requiring a major version bump. Declarative config is not yet stable and therefore can
// switch to the current default recommendation, which aligns also aligns with the behavior of
// the OpenTelemetry Java Agent 2.x+.
return config.getString("protocol", PROTOCOL_HTTP_PROTOBUF);
} }
/** Invoke the setters with the OTLP configuration for the {@code dataType}. */ /** Invoke the setters with the OTLP configuration for the {@code dataType}. */

View File

@ -123,7 +123,7 @@ class FileConfigurationCreateTest {
logCapturer.assertContains( logCapturer.assertContains(
"Error encountered interpreting model. Closing partially configured components."); "Error encountered interpreting model. Closing partially configured components.");
logCapturer.assertContains( logCapturer.assertContains(
"Closing io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporter"); "Closing io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporter");
logCapturer.assertContains("Closing io.opentelemetry.sdk.logs.export.BatchLogRecordProcessor"); logCapturer.assertContains("Closing io.opentelemetry.sdk.logs.export.BatchLogRecordProcessor");
} }
} }

View File

@ -15,7 +15,6 @@ import static org.mockito.Mockito.verify;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.linecorp.armeria.testing.junit5.server.SelfSignedCertificateExtension; import com.linecorp.armeria.testing.junit5.server.SelfSignedCertificateExtension;
import io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporter; import io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporter;
import io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporter;
import io.opentelemetry.internal.testing.CleanupExtension; import io.opentelemetry.internal.testing.CleanupExtension;
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException;
@ -61,7 +60,7 @@ class LogRecordExporterFactoryTest {
void create_OtlpDefaults() { void create_OtlpDefaults() {
spiHelper = spy(spiHelper); spiHelper = spy(spiHelper);
List<Closeable> closeables = new ArrayList<>(); List<Closeable> closeables = new ArrayList<>();
OtlpGrpcLogRecordExporter expectedExporter = OtlpGrpcLogRecordExporter.getDefault(); OtlpHttpLogRecordExporter expectedExporter = OtlpHttpLogRecordExporter.getDefault();
cleanup.addCloseable(expectedExporter); cleanup.addCloseable(expectedExporter);
LogRecordExporter exporter = LogRecordExporter exporter =

View File

@ -9,7 +9,7 @@ import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.asser
import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.assertj.core.api.Assertions.assertThatThrownBy;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporter; import io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporter;
import io.opentelemetry.internal.testing.CleanupExtension; import io.opentelemetry.internal.testing.CleanupExtension;
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException;
@ -53,7 +53,7 @@ class LogRecordProcessorFactoryTest {
List<Closeable> closeables = new ArrayList<>(); List<Closeable> closeables = new ArrayList<>();
io.opentelemetry.sdk.logs.export.BatchLogRecordProcessor expectedProcessor = io.opentelemetry.sdk.logs.export.BatchLogRecordProcessor expectedProcessor =
io.opentelemetry.sdk.logs.export.BatchLogRecordProcessor.builder( io.opentelemetry.sdk.logs.export.BatchLogRecordProcessor.builder(
OtlpGrpcLogRecordExporter.getDefault()) OtlpHttpLogRecordExporter.getDefault())
.build(); .build();
cleanup.addCloseable(expectedProcessor); cleanup.addCloseable(expectedProcessor);
@ -77,7 +77,7 @@ class LogRecordProcessorFactoryTest {
List<Closeable> closeables = new ArrayList<>(); List<Closeable> closeables = new ArrayList<>();
io.opentelemetry.sdk.logs.export.BatchLogRecordProcessor expectedProcessor = io.opentelemetry.sdk.logs.export.BatchLogRecordProcessor expectedProcessor =
io.opentelemetry.sdk.logs.export.BatchLogRecordProcessor.builder( io.opentelemetry.sdk.logs.export.BatchLogRecordProcessor.builder(
OtlpGrpcLogRecordExporter.getDefault()) OtlpHttpLogRecordExporter.getDefault())
.setScheduleDelay(Duration.ofMillis(1)) .setScheduleDelay(Duration.ofMillis(1))
.setMaxExportBatchSize(2) .setMaxExportBatchSize(2)
.setExporterTimeout(Duration.ofMillis(3)) .setExporterTimeout(Duration.ofMillis(3))
@ -121,7 +121,7 @@ class LogRecordProcessorFactoryTest {
List<Closeable> closeables = new ArrayList<>(); List<Closeable> closeables = new ArrayList<>();
io.opentelemetry.sdk.logs.LogRecordProcessor expectedProcessor = io.opentelemetry.sdk.logs.LogRecordProcessor expectedProcessor =
io.opentelemetry.sdk.logs.export.SimpleLogRecordProcessor.create( io.opentelemetry.sdk.logs.export.SimpleLogRecordProcessor.create(
OtlpGrpcLogRecordExporter.getDefault()); OtlpHttpLogRecordExporter.getDefault());
cleanup.addCloseable(expectedProcessor); cleanup.addCloseable(expectedProcessor);
io.opentelemetry.sdk.logs.LogRecordProcessor processor = io.opentelemetry.sdk.logs.LogRecordProcessor processor =

View File

@ -7,7 +7,7 @@ package io.opentelemetry.sdk.extension.incubator.fileconfig;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat; import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
import io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporter; import io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporter;
import io.opentelemetry.internal.testing.CleanupExtension; import io.opentelemetry.internal.testing.CleanupExtension;
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.AttributeLimitsModel; import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.AttributeLimitsModel;
@ -84,7 +84,7 @@ class LoggerProviderFactoryTest {
.build()) .build())
.addLogRecordProcessor( .addLogRecordProcessor(
io.opentelemetry.sdk.logs.export.BatchLogRecordProcessor.builder( io.opentelemetry.sdk.logs.export.BatchLogRecordProcessor.builder(
OtlpGrpcLogRecordExporter.getDefault()) OtlpHttpLogRecordExporter.getDefault())
.build()) .build())
.build())); .build()));
} }

View File

@ -7,7 +7,7 @@ package io.opentelemetry.sdk.extension.incubator.fileconfig;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat; import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter; import io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporter;
import io.opentelemetry.internal.testing.CleanupExtension; import io.opentelemetry.internal.testing.CleanupExtension;
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.MeterProviderModel; import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.MeterProviderModel;
@ -57,7 +57,7 @@ class MeterProviderFactoryTest {
SdkMeterProvider.builder() SdkMeterProvider.builder()
.registerMetricReader( .registerMetricReader(
io.opentelemetry.sdk.metrics.export.PeriodicMetricReader.builder( io.opentelemetry.sdk.metrics.export.PeriodicMetricReader.builder(
OtlpGrpcMetricExporter.getDefault()) OtlpHttpMetricExporter.getDefault())
.build()) .build())
.registerView( .registerView(
InstrumentSelector.builder().setName("instrument-name").build(), InstrumentSelector.builder().setName("instrument-name").build(),

View File

@ -16,7 +16,6 @@ import com.google.common.collect.ImmutableMap;
import com.linecorp.armeria.testing.junit5.server.SelfSignedCertificateExtension; import com.linecorp.armeria.testing.junit5.server.SelfSignedCertificateExtension;
import io.opentelemetry.exporter.logging.LoggingMetricExporter; import io.opentelemetry.exporter.logging.LoggingMetricExporter;
import io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporter; import io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporter;
import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter;
import io.opentelemetry.internal.testing.CleanupExtension; import io.opentelemetry.internal.testing.CleanupExtension;
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException;
@ -65,7 +64,7 @@ class MetricExporterFactoryTest {
void create_OtlpDefaults() { void create_OtlpDefaults() {
spiHelper = spy(spiHelper); spiHelper = spy(spiHelper);
List<Closeable> closeables = new ArrayList<>(); List<Closeable> closeables = new ArrayList<>();
OtlpGrpcMetricExporter expectedExporter = OtlpGrpcMetricExporter.getDefault(); OtlpHttpMetricExporter expectedExporter = OtlpHttpMetricExporter.getDefault();
cleanup.addCloseable(expectedExporter); cleanup.addCloseable(expectedExporter);
MetricExporter exporter = MetricExporter exporter =

View File

@ -11,7 +11,7 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import io.github.netmikey.logunit.api.LogCapturer; import io.github.netmikey.logunit.api.LogCapturer;
import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter; import io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporter;
import io.opentelemetry.exporter.prometheus.PrometheusHttpServer; import io.opentelemetry.exporter.prometheus.PrometheusHttpServer;
import io.opentelemetry.internal.testing.CleanupExtension; import io.opentelemetry.internal.testing.CleanupExtension;
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
@ -62,7 +62,7 @@ class MetricReaderFactoryTest {
List<Closeable> closeables = new ArrayList<>(); List<Closeable> closeables = new ArrayList<>();
io.opentelemetry.sdk.metrics.export.PeriodicMetricReader expectedReader = io.opentelemetry.sdk.metrics.export.PeriodicMetricReader expectedReader =
io.opentelemetry.sdk.metrics.export.PeriodicMetricReader.builder( io.opentelemetry.sdk.metrics.export.PeriodicMetricReader.builder(
OtlpGrpcMetricExporter.getDefault()) OtlpHttpMetricExporter.getDefault())
.build(); .build();
cleanup.addCloseable(expectedReader); cleanup.addCloseable(expectedReader);
@ -87,7 +87,7 @@ class MetricReaderFactoryTest {
List<Closeable> closeables = new ArrayList<>(); List<Closeable> closeables = new ArrayList<>();
io.opentelemetry.sdk.metrics.export.MetricReader expectedReader = io.opentelemetry.sdk.metrics.export.MetricReader expectedReader =
io.opentelemetry.sdk.metrics.export.PeriodicMetricReader.builder( io.opentelemetry.sdk.metrics.export.PeriodicMetricReader.builder(
OtlpGrpcMetricExporter.getDefault()) OtlpHttpMetricExporter.getDefault())
.setInterval(Duration.ofMillis(1)) .setInterval(Duration.ofMillis(1))
.build(); .build();
cleanup.addCloseable(expectedReader); cleanup.addCloseable(expectedReader);

View File

@ -13,9 +13,9 @@ import io.opentelemetry.api.baggage.propagation.W3CBaggagePropagator;
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator; import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
import io.opentelemetry.context.propagation.ContextPropagators; import io.opentelemetry.context.propagation.ContextPropagators;
import io.opentelemetry.context.propagation.TextMapPropagator; import io.opentelemetry.context.propagation.TextMapPropagator;
import io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporter; import io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporter;
import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter; import io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporter;
import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter; import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter;
import io.opentelemetry.extension.trace.propagation.B3Propagator; import io.opentelemetry.extension.trace.propagation.B3Propagator;
import io.opentelemetry.extension.trace.propagation.JaegerPropagator; import io.opentelemetry.extension.trace.propagation.JaegerPropagator;
import io.opentelemetry.extension.trace.propagation.OtTracePropagator; import io.opentelemetry.extension.trace.propagation.OtTracePropagator;
@ -169,7 +169,7 @@ class OpenTelemetryConfigurationFactoryTest {
.build()) .build())
.addLogRecordProcessor( .addLogRecordProcessor(
io.opentelemetry.sdk.logs.export.BatchLogRecordProcessor.builder( io.opentelemetry.sdk.logs.export.BatchLogRecordProcessor.builder(
OtlpGrpcLogRecordExporter.getDefault()) OtlpHttpLogRecordExporter.getDefault())
.build()) .build())
.build()) .build())
.setTracerProvider( .setTracerProvider(
@ -187,7 +187,7 @@ class OpenTelemetryConfigurationFactoryTest {
.setSampler(alwaysOn()) .setSampler(alwaysOn())
.addSpanProcessor( .addSpanProcessor(
io.opentelemetry.sdk.trace.export.BatchSpanProcessor.builder( io.opentelemetry.sdk.trace.export.BatchSpanProcessor.builder(
OtlpGrpcSpanExporter.getDefault()) OtlpHttpSpanExporter.getDefault())
.build()) .build())
.build()) .build())
.setMeterProvider( .setMeterProvider(
@ -195,7 +195,7 @@ class OpenTelemetryConfigurationFactoryTest {
.setResource(expectedResource) .setResource(expectedResource)
.registerMetricReader( .registerMetricReader(
io.opentelemetry.sdk.metrics.export.PeriodicMetricReader.builder( io.opentelemetry.sdk.metrics.export.PeriodicMetricReader.builder(
OtlpGrpcMetricExporter.getDefault()) OtlpHttpMetricExporter.getDefault())
.build()) .build())
.registerView( .registerView(
InstrumentSelector.builder().setName("instrument-name").build(), InstrumentSelector.builder().setName("instrument-name").build(),

View File

@ -16,7 +16,6 @@ import com.google.common.collect.ImmutableMap;
import com.linecorp.armeria.testing.junit5.server.SelfSignedCertificateExtension; import com.linecorp.armeria.testing.junit5.server.SelfSignedCertificateExtension;
import io.opentelemetry.exporter.logging.LoggingSpanExporter; import io.opentelemetry.exporter.logging.LoggingSpanExporter;
import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter; import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter;
import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter;
import io.opentelemetry.exporter.zipkin.ZipkinSpanExporter; import io.opentelemetry.exporter.zipkin.ZipkinSpanExporter;
import io.opentelemetry.internal.testing.CleanupExtension; import io.opentelemetry.internal.testing.CleanupExtension;
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
@ -63,7 +62,7 @@ class SpanExporterFactoryTest {
void create_OtlpDefaults() { void create_OtlpDefaults() {
spiHelper = spy(spiHelper); spiHelper = spy(spiHelper);
List<Closeable> closeables = new ArrayList<>(); List<Closeable> closeables = new ArrayList<>();
OtlpGrpcSpanExporter expectedExporter = OtlpGrpcSpanExporter.getDefault(); OtlpHttpSpanExporter expectedExporter = OtlpHttpSpanExporter.getDefault();
cleanup.addCloseable(expectedExporter); cleanup.addCloseable(expectedExporter);
SpanExporter exporter = SpanExporter exporter =

View File

@ -9,7 +9,7 @@ import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.asser
import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.assertj.core.api.Assertions.assertThatThrownBy;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter; import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter;
import io.opentelemetry.internal.testing.CleanupExtension; import io.opentelemetry.internal.testing.CleanupExtension;
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException;
@ -53,7 +53,7 @@ class SpanProcessorFactoryTest {
List<Closeable> closeables = new ArrayList<>(); List<Closeable> closeables = new ArrayList<>();
io.opentelemetry.sdk.trace.export.BatchSpanProcessor expectedProcessor = io.opentelemetry.sdk.trace.export.BatchSpanProcessor expectedProcessor =
io.opentelemetry.sdk.trace.export.BatchSpanProcessor.builder( io.opentelemetry.sdk.trace.export.BatchSpanProcessor.builder(
OtlpGrpcSpanExporter.getDefault()) OtlpHttpSpanExporter.getDefault())
.build(); .build();
cleanup.addCloseable(expectedProcessor); cleanup.addCloseable(expectedProcessor);
@ -77,7 +77,7 @@ class SpanProcessorFactoryTest {
List<Closeable> closeables = new ArrayList<>(); List<Closeable> closeables = new ArrayList<>();
io.opentelemetry.sdk.trace.export.BatchSpanProcessor expectedProcessor = io.opentelemetry.sdk.trace.export.BatchSpanProcessor expectedProcessor =
io.opentelemetry.sdk.trace.export.BatchSpanProcessor.builder( io.opentelemetry.sdk.trace.export.BatchSpanProcessor.builder(
OtlpGrpcSpanExporter.getDefault()) OtlpHttpSpanExporter.getDefault())
.setScheduleDelay(Duration.ofMillis(1)) .setScheduleDelay(Duration.ofMillis(1))
.setMaxExportBatchSize(2) .setMaxExportBatchSize(2)
.setExporterTimeout(Duration.ofMillis(3)) .setExporterTimeout(Duration.ofMillis(3))
@ -120,7 +120,7 @@ class SpanProcessorFactoryTest {
List<Closeable> closeables = new ArrayList<>(); List<Closeable> closeables = new ArrayList<>();
io.opentelemetry.sdk.trace.SpanProcessor expectedProcessor = io.opentelemetry.sdk.trace.SpanProcessor expectedProcessor =
io.opentelemetry.sdk.trace.export.SimpleSpanProcessor.create( io.opentelemetry.sdk.trace.export.SimpleSpanProcessor.create(
OtlpGrpcSpanExporter.getDefault()); OtlpHttpSpanExporter.getDefault());
cleanup.addCloseable(expectedProcessor); cleanup.addCloseable(expectedProcessor);
io.opentelemetry.sdk.trace.SpanProcessor processor = io.opentelemetry.sdk.trace.SpanProcessor processor =

View File

@ -8,7 +8,7 @@ package io.opentelemetry.sdk.extension.incubator.fileconfig;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat; import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
import static io.opentelemetry.sdk.trace.samplers.Sampler.alwaysOn; import static io.opentelemetry.sdk.trace.samplers.Sampler.alwaysOn;
import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter; import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter;
import io.opentelemetry.internal.testing.CleanupExtension; import io.opentelemetry.internal.testing.CleanupExtension;
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.AlwaysOnModel; import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.AlwaysOnModel;
@ -95,7 +95,7 @@ class TracerProviderFactoryTest {
.setSampler(alwaysOn()) .setSampler(alwaysOn())
.addSpanProcessor( .addSpanProcessor(
io.opentelemetry.sdk.trace.export.BatchSpanProcessor.builder( io.opentelemetry.sdk.trace.export.BatchSpanProcessor.builder(
OtlpGrpcSpanExporter.getDefault()) OtlpHttpSpanExporter.getDefault())
.build()) .build())
.build())); .build()));
} }