diff --git a/aws-xray-propagator/build.gradle.kts b/aws-xray-propagator/build.gradle.kts index 7384b462b..4d1ea3522 100644 --- a/aws-xray-propagator/build.gradle.kts +++ b/aws-xray-propagator/build.gradle.kts @@ -10,6 +10,7 @@ otelJava.moduleName.set("io.opentelemetry.contrib.awsxray.propagator") dependencies { api("io.opentelemetry:opentelemetry-api") compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi") + compileOnly("io.opentelemetry:opentelemetry-api-incubator") testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure") testImplementation("io.opentelemetry:opentelemetry-sdk-trace") testImplementation("io.opentelemetry:opentelemetry-sdk-testing") diff --git a/aws-xray-propagator/src/main/java/io/opentelemetry/contrib/awsxray/propagator/internal/AwsXrayComponentProvider.java b/aws-xray-propagator/src/main/java/io/opentelemetry/contrib/awsxray/propagator/internal/AwsXrayComponentProvider.java index fdec190d0..ba3636932 100644 --- a/aws-xray-propagator/src/main/java/io/opentelemetry/contrib/awsxray/propagator/internal/AwsXrayComponentProvider.java +++ b/aws-xray-propagator/src/main/java/io/opentelemetry/contrib/awsxray/propagator/internal/AwsXrayComponentProvider.java @@ -5,10 +5,10 @@ package io.opentelemetry.contrib.awsxray.propagator.internal; +import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.context.propagation.TextMapPropagator; import io.opentelemetry.contrib.awsxray.propagator.AwsXrayPropagator; import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; -import io.opentelemetry.sdk.autoconfigure.spi.internal.StructuredConfigProperties; public class AwsXrayComponentProvider implements ComponentProvider { @Override @@ -22,7 +22,7 @@ public String getName() { } @Override - public TextMapPropagator create(StructuredConfigProperties config) { + public TextMapPropagator create(DeclarativeConfigProperties config) { return AwsXrayPropagator.getInstance(); } } diff --git a/aws-xray-propagator/src/main/java/io/opentelemetry/contrib/awsxray/propagator/internal/AwsXrayLambdaComponentProvider.java b/aws-xray-propagator/src/main/java/io/opentelemetry/contrib/awsxray/propagator/internal/AwsXrayLambdaComponentProvider.java index 86550a22e..c29f433aa 100644 --- a/aws-xray-propagator/src/main/java/io/opentelemetry/contrib/awsxray/propagator/internal/AwsXrayLambdaComponentProvider.java +++ b/aws-xray-propagator/src/main/java/io/opentelemetry/contrib/awsxray/propagator/internal/AwsXrayLambdaComponentProvider.java @@ -5,10 +5,10 @@ package io.opentelemetry.contrib.awsxray.propagator.internal; +import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.context.propagation.TextMapPropagator; import io.opentelemetry.contrib.awsxray.propagator.AwsXrayLambdaPropagator; import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; -import io.opentelemetry.sdk.autoconfigure.spi.internal.StructuredConfigProperties; public class AwsXrayLambdaComponentProvider implements ComponentProvider { @Override @@ -22,7 +22,7 @@ public String getName() { } @Override - public TextMapPropagator create(StructuredConfigProperties config) { + public TextMapPropagator create(DeclarativeConfigProperties config) { return AwsXrayLambdaPropagator.getInstance(); } } diff --git a/aws-xray-propagator/src/test/java/io/opentelemetry/contrib/awsxray/propagator/internal/AwsComponentProviderTest.java b/aws-xray-propagator/src/test/java/io/opentelemetry/contrib/awsxray/propagator/internal/AwsComponentProviderTest.java index 385e06400..1d1590d3a 100644 --- a/aws-xray-propagator/src/test/java/io/opentelemetry/contrib/awsxray/propagator/internal/AwsComponentProviderTest.java +++ b/aws-xray-propagator/src/test/java/io/opentelemetry/contrib/awsxray/propagator/internal/AwsComponentProviderTest.java @@ -11,7 +11,7 @@ import io.opentelemetry.contrib.awsxray.propagator.AwsXrayLambdaPropagator; import io.opentelemetry.contrib.awsxray.propagator.AwsXrayPropagator; import io.opentelemetry.sdk.OpenTelemetrySdk; -import io.opentelemetry.sdk.extension.incubator.fileconfig.FileConfiguration; +import io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfiguration; import java.io.ByteArrayInputStream; import java.nio.charset.StandardCharsets; import org.junit.jupiter.api.Test; @@ -23,7 +23,7 @@ void endToEnd() { String yaml = "file_format: 0.3\n" + "propagator:\n" + " composite: [xray, xray-lambda]\n"; OpenTelemetrySdk openTelemetrySdk = - FileConfiguration.parseAndCreate( + DeclarativeConfiguration.parseAndCreate( new ByteArrayInputStream(yaml.getBytes(StandardCharsets.UTF_8))); TextMapPropagator expectedPropagator = TextMapPropagator.composite( diff --git a/dependencyManagement/build.gradle.kts b/dependencyManagement/build.gradle.kts index 534515a73..6cbe5cec7 100644 --- a/dependencyManagement/build.gradle.kts +++ b/dependencyManagement/build.gradle.kts @@ -2,7 +2,7 @@ plugins { `java-platform` } -val otelInstrumentationVersion = "2.13.3-alpha" +val otelInstrumentationVersion = "2.14.0-alpha" val semconvVersion = "1.30.0" javaPlatform { diff --git a/processors/build.gradle.kts b/processors/build.gradle.kts index 2b16dcad4..2fc920cc2 100644 --- a/processors/build.gradle.kts +++ b/processors/build.gradle.kts @@ -14,6 +14,7 @@ java { dependencies { api("io.opentelemetry:opentelemetry-sdk") compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi") + compileOnly("io.opentelemetry:opentelemetry-api-incubator") // For EventToSpanEventBridge implementation("io.opentelemetry:opentelemetry-exporter-otlp-common") diff --git a/processors/src/main/java/io/opentelemetry/contrib/eventbridge/internal/EventToSpanEventBridgeComponentProvider.java b/processors/src/main/java/io/opentelemetry/contrib/eventbridge/internal/EventToSpanEventBridgeComponentProvider.java index 593e92f61..2985ddd41 100644 --- a/processors/src/main/java/io/opentelemetry/contrib/eventbridge/internal/EventToSpanEventBridgeComponentProvider.java +++ b/processors/src/main/java/io/opentelemetry/contrib/eventbridge/internal/EventToSpanEventBridgeComponentProvider.java @@ -5,9 +5,9 @@ package io.opentelemetry.contrib.eventbridge.internal; +import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.contrib.eventbridge.EventToSpanEventBridge; import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; -import io.opentelemetry.sdk.autoconfigure.spi.internal.StructuredConfigProperties; import io.opentelemetry.sdk.logs.LogRecordProcessor; /** @@ -30,7 +30,7 @@ public String getName() { } @Override - public LogRecordProcessor create(StructuredConfigProperties config) { + public LogRecordProcessor create(DeclarativeConfigProperties config) { return EventToSpanEventBridge.create(); } } diff --git a/processors/src/test/java/io/opentelemetry/contrib/eventbridge/internal/EventToSpanBridgeComponentProviderTest.java b/processors/src/test/java/io/opentelemetry/contrib/eventbridge/internal/EventToSpanBridgeComponentProviderTest.java index abc3e614c..a2f6165ae 100644 --- a/processors/src/test/java/io/opentelemetry/contrib/eventbridge/internal/EventToSpanBridgeComponentProviderTest.java +++ b/processors/src/test/java/io/opentelemetry/contrib/eventbridge/internal/EventToSpanBridgeComponentProviderTest.java @@ -8,7 +8,7 @@ import static org.assertj.core.api.Assertions.assertThat; import io.opentelemetry.sdk.OpenTelemetrySdk; -import io.opentelemetry.sdk.extension.incubator.fileconfig.FileConfiguration; +import io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfiguration; import java.io.ByteArrayInputStream; import java.nio.charset.StandardCharsets; import org.junit.jupiter.api.Test; @@ -21,10 +21,10 @@ void endToEnd() { "file_format: 0.3\n" + "logger_provider:\n" + " processors:\n" - + " - event_to_span_event_bridge:"; + + " - event_to_span_event_bridge:\n"; OpenTelemetrySdk openTelemetrySdk = - FileConfiguration.parseAndCreate( + DeclarativeConfiguration.parseAndCreate( new ByteArrayInputStream(yaml.getBytes(StandardCharsets.UTF_8))); assertThat(openTelemetrySdk.getSdkLoggerProvider().toString()) diff --git a/samplers/build.gradle.kts b/samplers/build.gradle.kts index 023c96441..6061e84ab 100644 --- a/samplers/build.gradle.kts +++ b/samplers/build.gradle.kts @@ -10,6 +10,7 @@ dependencies { api("io.opentelemetry:opentelemetry-sdk") compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi") + compileOnly("io.opentelemetry:opentelemetry-api-incubator") compileOnly("io.opentelemetry:opentelemetry-sdk-extension-incubator") testImplementation("io.opentelemetry.semconv:opentelemetry-semconv-incubating") diff --git a/samplers/src/main/java/io/opentelemetry/contrib/sampler/internal/RuleBasedRoutingSamplerComponentProvider.java b/samplers/src/main/java/io/opentelemetry/contrib/sampler/internal/RuleBasedRoutingSamplerComponentProvider.java index 9bdc0564d..9e7fb4971 100644 --- a/samplers/src/main/java/io/opentelemetry/contrib/sampler/internal/RuleBasedRoutingSamplerComponentProvider.java +++ b/samplers/src/main/java/io/opentelemetry/contrib/sampler/internal/RuleBasedRoutingSamplerComponentProvider.java @@ -6,13 +6,13 @@ package io.opentelemetry.contrib.sampler.internal; import io.opentelemetry.api.common.AttributeKey; +import io.opentelemetry.api.incubator.config.DeclarativeConfigException; +import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.api.trace.SpanKind; import io.opentelemetry.contrib.sampler.RuleBasedRoutingSampler; import io.opentelemetry.contrib.sampler.RuleBasedRoutingSamplerBuilder; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; -import io.opentelemetry.sdk.autoconfigure.spi.internal.StructuredConfigProperties; -import io.opentelemetry.sdk.extension.incubator.fileconfig.FileConfiguration; +import io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfiguration; import io.opentelemetry.sdk.trace.samplers.Sampler; import java.util.List; @@ -38,17 +38,17 @@ public String getName() { } @Override - public Sampler create(StructuredConfigProperties config) { - StructuredConfigProperties fallbackModel = config.getStructured("fallback_sampler"); + public Sampler create(DeclarativeConfigProperties config) { + DeclarativeConfigProperties fallbackModel = config.getStructured("fallback_sampler"); if (fallbackModel == null) { - throw new ConfigurationException( + throw new DeclarativeConfigException( "rule_based_routing sampler .fallback is required but is null"); } Sampler fallbackSampler; try { - fallbackSampler = FileConfiguration.createSampler(fallbackModel); - } catch (ConfigurationException e) { - throw new ConfigurationException( + fallbackSampler = DeclarativeConfiguration.createSampler(fallbackModel); + } catch (DeclarativeConfigException e) { + throw new DeclarativeConfigException( "rule_Based_routing sampler failed to create .fallback sampler", e); } @@ -57,39 +57,41 @@ public Sampler create(StructuredConfigProperties config) { try { spanKind = SpanKind.valueOf(spanKindString); } catch (IllegalArgumentException e) { - throw new ConfigurationException( + throw new DeclarativeConfigException( "rule_based_routing sampler .span_kind is invalid: " + spanKindString, e); } RuleBasedRoutingSamplerBuilder builder = RuleBasedRoutingSampler.builder(spanKind, fallbackSampler); - List rules = config.getStructuredList("rules"); + List rules = config.getStructuredList("rules"); if (rules == null || rules.isEmpty()) { - throw new ConfigurationException("rule_based_routing sampler .rules is required"); + throw new DeclarativeConfigException("rule_based_routing sampler .rules is required"); } - for (StructuredConfigProperties rule : rules) { + for (DeclarativeConfigProperties rule : rules) { String attribute = rule.getString("attribute"); if (attribute == null) { - throw new ConfigurationException( + throw new DeclarativeConfigException( "rule_based_routing sampler .rules[].attribute is required"); } AttributeKey attributeKey = AttributeKey.stringKey(attribute); String pattern = rule.getString("pattern"); if (pattern == null) { - throw new ConfigurationException("rule_based_routing sampler .rules[].pattern is required"); + throw new DeclarativeConfigException( + "rule_based_routing sampler .rules[].pattern is required"); } String action = rule.getString("action"); if (action == null) { - throw new ConfigurationException("rule_based_routing sampler .rules[].action is required"); + throw new DeclarativeConfigException( + "rule_based_routing sampler .rules[].action is required"); } if (action.equals(ACTION_RECORD_AND_SAMPLE)) { builder.recordAndSample(attributeKey, pattern); } else if (action.equals(ACTION_DROP)) { builder.drop(attributeKey, pattern); } else { - throw new ConfigurationException( + throw new DeclarativeConfigException( "rule_based_routing sampler .rules[].action is must be " + ACTION_RECORD_AND_SAMPLE + " or " diff --git a/samplers/src/test/java/internal/RuleBasedRoutingSamplerComponentProviderTest.java b/samplers/src/test/java/internal/RuleBasedRoutingSamplerComponentProviderTest.java index 36fc6b2d0..384707843 100644 --- a/samplers/src/test/java/internal/RuleBasedRoutingSamplerComponentProviderTest.java +++ b/samplers/src/test/java/internal/RuleBasedRoutingSamplerComponentProviderTest.java @@ -10,14 +10,14 @@ import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.incubator.config.DeclarativeConfigException; +import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.api.trace.SpanKind; import io.opentelemetry.context.Context; import io.opentelemetry.contrib.sampler.RuleBasedRoutingSampler; import io.opentelemetry.contrib.sampler.internal.RuleBasedRoutingSamplerComponentProvider; import io.opentelemetry.sdk.OpenTelemetrySdk; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; -import io.opentelemetry.sdk.autoconfigure.spi.internal.StructuredConfigProperties; -import io.opentelemetry.sdk.extension.incubator.fileconfig.FileConfiguration; +import io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfiguration; import io.opentelemetry.sdk.trace.IdGenerator; import io.opentelemetry.sdk.trace.samplers.Sampler; import io.opentelemetry.sdk.trace.samplers.SamplingResult; @@ -52,7 +52,7 @@ void endToEnd() { + " pattern: /actuator.*\n" + " action: DROP\n"; OpenTelemetrySdk openTelemetrySdk = - FileConfiguration.parseAndCreate( + DeclarativeConfiguration.parseAndCreate( new ByteArrayInputStream(yaml.getBytes(StandardCharsets.UTF_8))); Sampler sampler = openTelemetrySdk.getSdkTracerProvider().getSampler(); assertThat(sampler.toString()) @@ -97,8 +97,8 @@ void endToEnd() { @ParameterizedTest @MethodSource("createValidArgs") void create_Valid(String yaml, RuleBasedRoutingSampler expectedSampler) { - StructuredConfigProperties configProperties = - FileConfiguration.toConfigProperties( + DeclarativeConfigProperties configProperties = + DeclarativeConfiguration.toConfigProperties( new ByteArrayInputStream(yaml.getBytes(StandardCharsets.UTF_8))); Sampler sampler = PROVIDER.create(configProperties); @@ -149,12 +149,12 @@ static Stream createValidArgs() { @ParameterizedTest @MethodSource("createInvalidArgs") void create_Invalid(String yaml, String expectedErrorMessage) { - StructuredConfigProperties configProperties = - FileConfiguration.toConfigProperties( + DeclarativeConfigProperties configProperties = + DeclarativeConfiguration.toConfigProperties( new ByteArrayInputStream(yaml.getBytes(StandardCharsets.UTF_8))); assertThatThrownBy(() -> PROVIDER.create(configProperties)) - .isInstanceOf(ConfigurationException.class) + .isInstanceOf(DeclarativeConfigException.class) .hasMessage(expectedErrorMessage); }