Skip to content

Commit

Permalink
Fix compilation errors due to declarative config breaking changes
Browse files Browse the repository at this point in the history
  • Loading branch information
jack-berg committed Mar 5, 2025
1 parent 9f40e41 commit 0b8928c
Show file tree
Hide file tree
Showing 10 changed files with 63 additions and 57 deletions.
14 changes: 8 additions & 6 deletions aws-xray-propagator/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,14 @@ description = "OpenTelemetry AWS X-Ray Propagator"
otelJava.moduleName.set("io.opentelemetry.contrib.awsxray.propagator")

dependencies {
api("io.opentelemetry:opentelemetry-api")
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
testImplementation("io.opentelemetry:opentelemetry-sdk-trace")
testImplementation("io.opentelemetry:opentelemetry-sdk-testing")
// TODO: revert versions before merging
api("io.opentelemetry:opentelemetry-api:1.48.0-SNAPSHOT")
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.48.0-SNAPSHOT")
compileOnly("io.opentelemetry:opentelemetry-api-incubator:1.48.0-alpha-SNAPSHOT")
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.48.0-SNAPSHOT")
testImplementation("io.opentelemetry:opentelemetry-sdk-trace:1.48.0-SNAPSHOT")
testImplementation("io.opentelemetry:opentelemetry-sdk-testing:1.48.0-SNAPSHOT")

testImplementation("io.opentelemetry:opentelemetry-sdk-extension-incubator")
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-incubator:1.48.0-alpha-SNAPSHOT")
testImplementation("uk.org.webcompere:system-stubs-jupiter:2.0.3")
}
Original file line number Diff line number Diff line change
Expand Up @@ -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<TextMapPropagator> {
@Override
Expand All @@ -22,7 +22,7 @@ public String getName() {
}

@Override
public TextMapPropagator create(StructuredConfigProperties config) {
public TextMapPropagator create(DeclarativeConfigProperties config) {
return AwsXrayPropagator.getInstance();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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<TextMapPropagator> {
@Override
Expand All @@ -22,7 +22,7 @@ public String getName() {
}

@Override
public TextMapPropagator create(StructuredConfigProperties config) {
public TextMapPropagator create(DeclarativeConfigProperties config) {
return AwsXrayLambdaPropagator.getInstance();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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(
Expand Down
16 changes: 9 additions & 7 deletions processors/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,17 @@ java {
}

dependencies {
api("io.opentelemetry:opentelemetry-sdk")
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
// TODO: revert versions before merging
api("io.opentelemetry:opentelemetry-sdk:1.48.0-SNAPSHOT")
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.48.0-SNAPSHOT")
compileOnly("io.opentelemetry:opentelemetry-api-incubator:1.48.0-alpha-SNAPSHOT")

// For EventToSpanEventBridge
implementation("io.opentelemetry:opentelemetry-exporter-otlp-common")
implementation("io.opentelemetry:opentelemetry-exporter-otlp-common:1.48.0-SNAPSHOT")
implementation("com.fasterxml.jackson.core:jackson-core")

testImplementation("io.opentelemetry:opentelemetry-api-incubator")
testImplementation("io.opentelemetry:opentelemetry-sdk-testing")
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-incubator")
testImplementation("io.opentelemetry:opentelemetry-api-incubator:1.48.0-alpha-SNAPSHOT")
testImplementation("io.opentelemetry:opentelemetry-sdk-testing:1.48.0-SNAPSHOT")
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.48.0-SNAPSHOT")
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-incubator:1.48.0-alpha-SNAPSHOT")
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;

/**
Expand All @@ -30,7 +30,7 @@ public String getName() {
}

@Override
public LogRecordProcessor create(StructuredConfigProperties config) {
public LogRecordProcessor create(DeclarativeConfigProperties config) {
return EventToSpanEventBridge.create();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -21,12 +21,10 @@ void endToEnd() {
"file_format: 0.3\n"
+ "logger_provider:\n"
+ " processors:\n"
// TODO(jack-berg): remove "{}" after releasing
// https://github.com/open-telemetry/opentelemetry-java/pull/6891/files
+ " - event_to_span_event_bridge: {}\n";
+ " - event_to_span_event_bridge:\n";

OpenTelemetrySdk openTelemetrySdk =
FileConfiguration.parseAndCreate(
DeclarativeConfiguration.parseAndCreate(
new ByteArrayInputStream(yaml.getBytes(StandardCharsets.UTF_8)));

assertThat(openTelemetrySdk.getSdkLoggerProvider().toString())
Expand Down
12 changes: 7 additions & 5 deletions samplers/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,14 @@ description = "Sampler which makes its decision based on semantic attributes val
otelJava.moduleName.set("io.opentelemetry.contrib.sampler")

dependencies {
api("io.opentelemetry:opentelemetry-sdk")
// TODO: revert versions before merging
api("io.opentelemetry:opentelemetry-sdk:1.48.0-SNAPSHOT")

compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-incubator")
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.48.0-SNAPSHOT")
compileOnly("io.opentelemetry:opentelemetry-api-incubator:1.48.0-alpha-SNAPSHOT")
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-incubator:1.48.0-alpha-SNAPSHOT")

testImplementation("io.opentelemetry.semconv:opentelemetry-semconv-incubating")
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-incubator")
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.48.0-SNAPSHOT")
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-incubator:1.48.0-alpha-SNAPSHOT")
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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);
}

Expand All @@ -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<StructuredConfigProperties> rules = config.getStructuredList("rules");
List<DeclarativeConfigProperties> 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<String> 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 "
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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())
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -149,12 +149,12 @@ static Stream<Arguments> 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);
}

Expand Down

0 comments on commit 0b8928c

Please sign in to comment.