From 2110fb2f6a634d13df4c725c8d9f52451a13321d Mon Sep 17 00:00:00 2001 From: Sylvain Juge <763082+SylvainJuge@users.noreply.github.com> Date: Wed, 2 Apr 2025 17:17:14 +0200 Subject: [PATCH 1/4] enable azure provider by default --- gradle/libs.versions.toml | 2 -- .../co/elastic/otel/resources/ResourcesAutoConfiguration.java | 2 +- .../otel/resources/ResourcesAutoConfigurationTest.java | 4 ++++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9ea4b6d7..28b1ee6c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -30,8 +30,6 @@ opentelemetryInstrumentationAlphaBom = { group = "io.opentelemetry.instrumentati opentelemetryProto = { group = "io.opentelemetry.proto", name = "opentelemetry-proto", version.ref = "opentelemetryProto" } -awsContribResources = { group = "io.opentelemetry.contrib", name = "opentelemetry-aws-resources", version.ref = "opentelemetryContribAlpha" } -gcpContribResources = { group = "io.opentelemetry.contrib", name = "opentelemetry-gcp-resources", version.ref = "opentelemetryContribAlpha" } contribResources = { group = "io.opentelemetry.contrib", name = "opentelemetry-resource-providers", version.ref = "opentelemetryContribAlpha" } contribSpanStacktrace = { group = "io.opentelemetry.contrib", name = "opentelemetry-span-stacktrace", version.ref = "opentelemetryContribAlpha" } contribInferredSpans = { group = "io.opentelemetry.contrib", name = "opentelemetry-inferred-spans", version.ref = "opentelemetryContribAlpha" } diff --git a/resources/src/main/java/co/elastic/otel/resources/ResourcesAutoConfiguration.java b/resources/src/main/java/co/elastic/otel/resources/ResourcesAutoConfiguration.java index 2056eb0e..cffc93dc 100644 --- a/resources/src/main/java/co/elastic/otel/resources/ResourcesAutoConfiguration.java +++ b/resources/src/main/java/co/elastic/otel/resources/ResourcesAutoConfiguration.java @@ -28,7 +28,7 @@ @AutoService(AutoConfigurationCustomizerProvider.class) public class ResourcesAutoConfiguration implements AutoConfigurationCustomizerProvider { - private static final String[] PROVIDERS = {"aws", "gcp"}; + private static final String[] PROVIDERS = {"aws", "gcp", "azure"}; @Override public void customize(AutoConfigurationCustomizer autoConfiguration) { diff --git a/resources/src/test/java/co/elastic/otel/resources/ResourcesAutoConfigurationTest.java b/resources/src/test/java/co/elastic/otel/resources/ResourcesAutoConfigurationTest.java index b16eb853..18ae2d8d 100644 --- a/resources/src/test/java/co/elastic/otel/resources/ResourcesAutoConfigurationTest.java +++ b/resources/src/test/java/co/elastic/otel/resources/ResourcesAutoConfigurationTest.java @@ -30,6 +30,7 @@ class ResourcesAutoConfigurationTest { public static final String GCP_ENABLED = "otel.resource.providers.gcp.enabled"; public static final String AWS_ENABLED = "otel.resource.providers.aws.enabled"; + public static final String AZURE_ENABLED = "otel.resource.providers.azure.enabled"; @Test void elastic_defaults() { @@ -39,6 +40,7 @@ void elastic_defaults() { Map expectedResult = new HashMap<>(); expectedResult.put(GCP_ENABLED, "true"); expectedResult.put(AWS_ENABLED, "true"); + expectedResult.put(AZURE_ENABLED, "true"); testConfig(explicitConfig, expectedResult); } @@ -51,6 +53,7 @@ void explicitly_enabled() { Map expectedResult = new HashMap<>(); expectedResult.put(GCP_ENABLED, "true"); expectedResult.put(AWS_ENABLED, "true"); + expectedResult.put(AZURE_ENABLED, "true"); testConfig(explicitConfig, expectedResult); } @@ -63,6 +66,7 @@ void explicitly_disabled() { Map expectedResult = new HashMap<>(); expectedResult.put(GCP_ENABLED, "false"); expectedResult.put(AWS_ENABLED, "true"); + expectedResult.put(AZURE_ENABLED, "true"); testConfig(explicitConfig, expectedResult); } From 816e973f477a7400d0afa53fb96748252d289b3d Mon Sep 17 00:00:00 2001 From: Sylvain Juge <763082+SylvainJuge@users.noreply.github.com> Date: Wed, 2 Apr 2025 17:44:37 +0200 Subject: [PATCH 2/4] make test more generic and easier to extend --- .../ResourcesAutoConfigurationTest.java | 35 +++++++++++-------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/resources/src/test/java/co/elastic/otel/resources/ResourcesAutoConfigurationTest.java b/resources/src/test/java/co/elastic/otel/resources/ResourcesAutoConfigurationTest.java index 18ae2d8d..d370ef14 100644 --- a/resources/src/test/java/co/elastic/otel/resources/ResourcesAutoConfigurationTest.java +++ b/resources/src/test/java/co/elastic/otel/resources/ResourcesAutoConfigurationTest.java @@ -20,17 +20,26 @@ import static org.assertj.core.api.Assertions.assertThat; +import io.opentelemetry.instrumentation.resources.ResourceProviderPropertiesCustomizer; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; +import java.lang.reflect.Field; +import java.util.Arrays; import java.util.Collections; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.junit.jupiter.api.Test; class ResourcesAutoConfigurationTest { - public static final String GCP_ENABLED = "otel.resource.providers.gcp.enabled"; - public static final String AWS_ENABLED = "otel.resource.providers.aws.enabled"; - public static final String AZURE_ENABLED = "otel.resource.providers.azure.enabled"; + private static final List LIST = Arrays.asList( + config("gcp"), + config("aws"), + config("azure")); + + private static String config(String provider) { + return String.format("otel.resource.providers.%s.enabled", provider); + } @Test void elastic_defaults() { @@ -38,9 +47,8 @@ void elastic_defaults() { Map explicitConfig = Collections.emptyMap(); Map expectedResult = new HashMap<>(); - expectedResult.put(GCP_ENABLED, "true"); - expectedResult.put(AWS_ENABLED, "true"); - expectedResult.put(AZURE_ENABLED, "true"); + + LIST.forEach(v -> expectedResult.put(v, "true")); testConfig(explicitConfig, expectedResult); } @@ -48,12 +56,10 @@ void elastic_defaults() { @Test void explicitly_enabled() { Map explicitConfig = new HashMap<>(); - explicitConfig.put(GCP_ENABLED, "true"); + explicitConfig.put(LIST.get(0), "true"); Map expectedResult = new HashMap<>(); - expectedResult.put(GCP_ENABLED, "true"); - expectedResult.put(AWS_ENABLED, "true"); - expectedResult.put(AZURE_ENABLED, "true"); + LIST.forEach(v -> expectedResult.put(v, "true")); testConfig(explicitConfig, expectedResult); } @@ -61,12 +67,13 @@ void explicitly_enabled() { @Test void explicitly_disabled() { Map explicitConfig = new HashMap<>(); - explicitConfig.put(GCP_ENABLED, "false"); + explicitConfig.put(LIST.get(0), "false"); Map expectedResult = new HashMap<>(); - expectedResult.put(GCP_ENABLED, "false"); - expectedResult.put(AWS_ENABLED, "true"); - expectedResult.put(AZURE_ENABLED, "true"); + expectedResult.put(LIST.get(0), "false"); + for (int i = 1; i < LIST.size(); i++) { + expectedResult.put(LIST.get(i), "true"); + } testConfig(explicitConfig, expectedResult); } From 86edd505b5c856dacceae45065bfb8fe3b0e3e71 Mon Sep 17 00:00:00 2001 From: Sylvain Juge <763082+SylvainJuge@users.noreply.github.com> Date: Wed, 2 Apr 2025 17:54:32 +0200 Subject: [PATCH 3/4] spotless --- .../otel/resources/ResourcesAutoConfigurationTest.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/resources/src/test/java/co/elastic/otel/resources/ResourcesAutoConfigurationTest.java b/resources/src/test/java/co/elastic/otel/resources/ResourcesAutoConfigurationTest.java index d370ef14..f0869016 100644 --- a/resources/src/test/java/co/elastic/otel/resources/ResourcesAutoConfigurationTest.java +++ b/resources/src/test/java/co/elastic/otel/resources/ResourcesAutoConfigurationTest.java @@ -20,9 +20,7 @@ import static org.assertj.core.api.Assertions.assertThat; -import io.opentelemetry.instrumentation.resources.ResourceProviderPropertiesCustomizer; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; -import java.lang.reflect.Field; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; @@ -32,10 +30,8 @@ class ResourcesAutoConfigurationTest { - private static final List LIST = Arrays.asList( - config("gcp"), - config("aws"), - config("azure")); + private static final List LIST = + Arrays.asList(config("gcp"), config("aws"), config("azure")); private static String config(String provider) { return String.format("otel.resource.providers.%s.enabled", provider); From fd331c3989c402414a19473f02e97559c1860243 Mon Sep 17 00:00:00 2001 From: Sylvain Juge <763082+SylvainJuge@users.noreply.github.com> Date: Mon, 14 Apr 2025 10:14:48 +0200 Subject: [PATCH 4/4] update changelog --- CHANGELOG.next-release.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.next-release.md b/CHANGELOG.next-release.md index 82ec452b..e25eb592 100644 --- a/CHANGELOG.next-release.md +++ b/CHANGELOG.next-release.md @@ -1,2 +1,3 @@ * Switched the default of `otel.exporter.otlp.metrics.temporality.preference` from `CUMULATIVE` to `DELTA` to improve dashboarding experience with Kibana. If you want to restore the previous behaviour, you can manually override `otel.exporter.otlp.metrics.temporality.preference` to `CUMULATIVE` via JVM-properties or environment variables. - #583 * Set elastic-specific User-Agent header for OTLP exporters - #593 +* Enable Azure resource provider by default with `otel.resource.providers.azure.enabled` = `true`.