diff --git a/sdk-extensions/autoconfigure/README.md b/sdk-extensions/autoconfigure/README.md index a064dd79be2..2b0fc01960c 100644 --- a/sdk-extensions/autoconfigure/README.md +++ b/sdk-extensions/autoconfigure/README.md @@ -383,9 +383,9 @@ and [file configuration](https://github.com/open-telemetry/opentelemetry-specifi To use, include `io.opentelemetry:opentelemetry-sdk-extension:incubator:` and specify the path to the config file as described in the table below. -| System property | Environment variable | Purpose | -|------------------|----------------------|------------------------------------------------------------| -| otel.config.file | OTEL_CONFIG_FILE | The path to the SDK configuration file. Defaults to unset. | +| System property | Environment variable | Purpose | +|-------------------------------|-------------------------------|------------------------------------------------------------| +| otel.experimental.config.file | OTEL_EXPERIMENTAL_CONFIG_FILE | The path to the SDK configuration file. Defaults to unset. | NOTE: When a config file is specified, other environment variables described in this document along with SPI [customizations](#customizing-the-opentelemetry-sdk) are ignored. The contents of the file diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java index 3e9a315a737..923f1535257 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java @@ -527,7 +527,12 @@ public AutoConfiguredOpenTelemetrySdk build() { @Nullable private static AutoConfiguredOpenTelemetrySdk maybeConfigureFromFile(ConfigProperties config) { - String configurationFile = config.getString("otel.config.file"); + String otelConfigFile = config.getString("otel.config.file"); + if (otelConfigFile != null && !otelConfigFile.isEmpty()) { + logger.warning( + "otel.config.file was set, but has been replaced with otel.experimental.config.file"); + } + String configurationFile = config.getString("otel.experimental.config.file"); if (configurationFile == null || configurationFile.isEmpty()) { return null; } diff --git a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/FileConfigurationTest.java b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/FileConfigurationTest.java index 418dd263625..332c70352ee 100644 --- a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/FileConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/FileConfigurationTest.java @@ -44,7 +44,7 @@ void configFile(@TempDir Path tempDir) throws IOException { Files.write(path, yaml.getBytes(StandardCharsets.UTF_8)); ConfigProperties config = DefaultConfigProperties.createFromMap( - Collections.singletonMap("otel.config.file", path.toString())); + Collections.singletonMap("otel.experimental.config.file", path.toString())); assertThatThrownBy(() -> AutoConfiguredOpenTelemetrySdk.builder().setConfig(config).build()) .isInstanceOf(ConfigurationException.class) diff --git a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/FileConfigurationTest.java b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/FileConfigurationTest.java index 7ce59ad321a..a40884d032b 100644 --- a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/FileConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/FileConfigurationTest.java @@ -78,7 +78,7 @@ void setup() throws IOException { void configFile_Valid() { ConfigProperties config = DefaultConfigProperties.createFromMap( - Collections.singletonMap("otel.config.file", configFilePath.toString())); + Collections.singletonMap("otel.experimental.config.file", configFilePath.toString())); OpenTelemetrySdk expectedSdk = OpenTelemetrySdk.builder() .setTracerProvider( @@ -116,7 +116,7 @@ void configFile_Valid() { void configFile_NoShutdownHook() { ConfigProperties config = DefaultConfigProperties.createFromMap( - Collections.singletonMap("otel.config.file", configFilePath.toString())); + Collections.singletonMap("otel.experimental.config.file", configFilePath.toString())); AutoConfiguredOpenTelemetrySdkBuilder builder = spy(AutoConfiguredOpenTelemetrySdk.builder()); AutoConfiguredOpenTelemetrySdk autoConfiguredOpenTelemetrySdk = @@ -131,7 +131,7 @@ void configFile_setResultAsGlobalFalse() { GlobalOpenTelemetry.set(OpenTelemetry.noop()); ConfigProperties config = DefaultConfigProperties.createFromMap( - Collections.singletonMap("otel.config.file", configFilePath.toString())); + Collections.singletonMap("otel.experimental.config.file", configFilePath.toString())); AutoConfiguredOpenTelemetrySdk autoConfiguredOpenTelemetrySdk = AutoConfiguredOpenTelemetrySdk.builder().setConfig(config).build(); @@ -147,7 +147,7 @@ void configFile_setResultAsGlobalFalse() { void configFile_setResultAsGlobalTrue() { ConfigProperties config = DefaultConfigProperties.createFromMap( - Collections.singletonMap("otel.config.file", configFilePath.toString())); + Collections.singletonMap("otel.experimental.config.file", configFilePath.toString())); AutoConfiguredOpenTelemetrySdk autoConfiguredOpenTelemetrySdk = AutoConfiguredOpenTelemetrySdk.builder().setConfig(config).setResultAsGlobal().build(); @@ -177,7 +177,7 @@ void configFile_Error(@TempDir Path tempDir) throws IOException { Files.write(path, yaml.getBytes(StandardCharsets.UTF_8)); ConfigProperties config = DefaultConfigProperties.createFromMap( - Collections.singletonMap("otel.config.file", path.toString())); + Collections.singletonMap("otel.experimental.config.file", path.toString())); assertThatThrownBy(() -> AutoConfiguredOpenTelemetrySdk.builder().setConfig(config).build()) .isInstanceOf(ConfigurationException.class) diff --git a/sdk-extensions/incubator/README.md b/sdk-extensions/incubator/README.md index 8301d01f3f5..cfc76184c31 100644 --- a/sdk-extensions/incubator/README.md +++ b/sdk-extensions/incubator/README.md @@ -20,7 +20,7 @@ try (FileInputStream yamlConfigFileInputStream = new FileInputStream("/path/to/c Notes: * Environment variable substitution is supported as [defined in the spec](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/file-configuration.md#environment-variable-substitution) * Currently, there is no support for the SPIs defined in [opentelemetry-sdk-extension-autoconfigure-spi](../autoconfigure-spi). Only built in samplers, processors, exporters, etc can be configured. -* You can use file configuration with [autoconfigure](https://github.com/open-telemetry/opentelemetry-java/tree/main/sdk-extensions/autoconfigure#file-configuration) to specify a configuration file via environment variable, e.g. `OTEL_CONFIG_FILE=/path/to/config.yaml`. +* You can use file configuration with [autoconfigure](https://github.com/open-telemetry/opentelemetry-java/tree/main/sdk-extensions/autoconfigure#file-configuration) to specify a configuration file via environment variable, e.g. `OTEL_EXPERIMENTAL_CONFIG_FILE=/path/to/config.yaml`. ## View File Configuration