Skip to content

Commit eac1e5e

Browse files
authored
Declarative config 1.0 (#8123)
1 parent 7caaec2 commit eac1e5e

File tree

20 files changed

+103
-928
lines changed

20 files changed

+103
-928
lines changed

integration-tests/graal-incubating/src/test/java/io/opentelemetry/integrationtests/graal/IncubatingApiTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ void parseDeclarativeConfiguration() {
109109
// make sure to test enums too: "instrument_type: histogram"
110110
String string =
111111
"""
112-
file_format: "1.0-rc.1"
112+
file_format: "1.0"
113113
tracer_provider:
114114
processors:
115115
- batch:

sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -579,15 +579,18 @@ private static AutoConfiguredOpenTelemetrySdk maybeConfigureFromFile(
579579
}
580580
}
581581

582-
String otelConfigFile = config.getString("otel.config.file");
583-
if (otelConfigFile != null && !otelConfigFile.isEmpty()) {
584-
logger.warning(
585-
"otel.config.file was set, but has been replaced with otel.experimental.config.file");
582+
String configurationFile = config.getString("otel.config.file");
583+
if (configurationFile == null || configurationFile.isEmpty()) {
584+
configurationFile = config.getString("otel.experimental.config.file");
585+
if (configurationFile == null || configurationFile.isEmpty()) {
586+
logger.warning(
587+
"otel.experimental.config.file is deprecated and will be removed after 1.62.0 release. Please use otel.config.file instead.");
588+
}
586589
}
587-
String configurationFile = config.getString("otel.experimental.config.file");
588590
if (configurationFile == null || configurationFile.isEmpty()) {
589591
return null;
590592
}
593+
591594
if (!INCUBATOR_AVAILABLE) {
592595
throw new ConfigurationException(
593596
"Cannot autoconfigure from config file without opentelemetry-sdk-extension-incubator on the classpath");

sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class DeclarativeConfigurationTest {
2323
@Test
2424
void configFile(@TempDir Path tempDir) throws IOException {
2525
String yaml =
26-
"file_format: \"1.0-rc.1\"\n"
26+
"file_format: \"1.0\"\n"
2727
+ "resource:\n"
2828
+ " attributes:\n"
2929
+ " - name: service.name\n"
@@ -37,7 +37,7 @@ void configFile(@TempDir Path tempDir) throws IOException {
3737
Files.write(path, yaml.getBytes(StandardCharsets.UTF_8));
3838
ConfigProperties config =
3939
DefaultConfigProperties.createFromMap(
40-
Collections.singletonMap("otel.experimental.config.file", path.toString()));
40+
Collections.singletonMap("otel.config.file", path.toString()));
4141

4242
assertThatThrownBy(() -> AutoConfiguredOpenTelemetrySdk.builder().setConfig(config).build())
4343
.isInstanceOf(ConfigurationException.class)

sdk-extensions/autoconfigure/src/testDeclarativeConfigSpi/java/io/opentelemetry/sdk/autoconfigure/TestDeclarativeConfigurationProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public class TestDeclarativeConfigurationProvider implements DeclarativeConfigur
1515
@Override
1616
public OpenTelemetryConfigurationModel getConfigurationModel() {
1717
String yaml =
18-
"file_format: \"1.0-rc.1\"\n"
18+
"file_format: \"1.0\"\n"
1919
+ "resource:\n"
2020
+ " detection/development:\n"
2121
+ " detectors:\n"

sdk-extensions/autoconfigure/src/testIncubating/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ class DeclarativeConfigurationTest {
6161
@BeforeEach
6262
void setup() throws IOException {
6363
String yaml =
64-
"file_format: \"1.0-rc.1\"\n"
64+
"file_format: \"1.0\"\n"
6565
+ "resource:\n"
6666
+ " attributes:\n"
6767
+ " - name: service.name\n"
@@ -94,15 +94,15 @@ void configFile_fileNotFound() {
9494
AutoConfiguredOpenTelemetrySdk.builder()
9595
.setConfig(
9696
DefaultConfigProperties.createFromMap(
97-
Collections.singletonMap("otel.experimental.config.file", "foo")))
97+
Collections.singletonMap("otel.config.file", "foo")))
9898
.build())
9999
.isInstanceOf(ConfigurationException.class)
100100
.hasMessageContaining("Configuration file not found");
101101

102102
assertThatCode(
103103
() ->
104104
AutoConfiguredOpenTelemetrySdk.builder()
105-
.addPropertiesSupplier(() -> singletonMap("otel.experimental.config.file", ""))
105+
.addPropertiesSupplier(() -> singletonMap("otel.config.file", ""))
106106
.addPropertiesSupplier(() -> singletonMap("otel.sdk.disabled", "true"))
107107
.build())
108108
.doesNotThrowAnyException();
@@ -112,7 +112,7 @@ void configFile_fileNotFound() {
112112
void configFile_Valid() {
113113
ConfigProperties config =
114114
DefaultConfigProperties.createFromMap(
115-
Collections.singletonMap("otel.experimental.config.file", configFilePath.toString()));
115+
Collections.singletonMap("otel.config.file", configFilePath.toString()));
116116
AutoConfiguredOpenTelemetrySdkBuilder builder = spy(AutoConfiguredOpenTelemetrySdk.builder());
117117
Thread thread = new Thread();
118118
doReturn(thread).when(builder).shutdownHook(any());
@@ -151,7 +151,7 @@ void configFile_setComponentLoader() {
151151
ComponentLoader.forClassLoader(DeclarativeConfigurationTest.class.getClassLoader());
152152
ConfigProperties config =
153153
DefaultConfigProperties.createFromMap(
154-
Collections.singletonMap("otel.experimental.config.file", configFilePath.toString()));
154+
Collections.singletonMap("otel.config.file", configFilePath.toString()));
155155

156156
AutoConfiguredOpenTelemetrySdk autoConfiguredOpenTelemetrySdk =
157157
AutoConfiguredOpenTelemetrySdk.builder()
@@ -172,7 +172,7 @@ void configFile_setComponentLoader() {
172172
void configFile_NoShutdownHook() {
173173
ConfigProperties config =
174174
DefaultConfigProperties.createFromMap(
175-
Collections.singletonMap("otel.experimental.config.file", configFilePath.toString()));
175+
Collections.singletonMap("otel.config.file", configFilePath.toString()));
176176
AutoConfiguredOpenTelemetrySdkBuilder builder = spy(AutoConfiguredOpenTelemetrySdk.builder());
177177

178178
AutoConfiguredOpenTelemetrySdk autoConfiguredOpenTelemetrySdk =
@@ -185,7 +185,7 @@ void configFile_NoShutdownHook() {
185185
@Test
186186
void configFile_Error(@TempDir Path tempDir) throws IOException {
187187
String yaml =
188-
"file_format: \"1.0-rc.1\"\n"
188+
"file_format: \"1.0\"\n"
189189
+ "resource:\n"
190190
+ " attributes:\n"
191191
+ " - name: service.name\n"
@@ -199,7 +199,7 @@ void configFile_Error(@TempDir Path tempDir) throws IOException {
199199
Files.write(path, yaml.getBytes(StandardCharsets.UTF_8));
200200
ConfigProperties config =
201201
DefaultConfigProperties.createFromMap(
202-
Collections.singletonMap("otel.experimental.config.file", path.toString()));
202+
Collections.singletonMap("otel.config.file", path.toString()));
203203

204204
assertThatThrownBy(() -> AutoConfiguredOpenTelemetrySdk.builder().setConfig(config).build())
205205
.isInstanceOf(ConfigurationException.class)
@@ -211,7 +211,7 @@ void configFile_Error(@TempDir Path tempDir) throws IOException {
211211
void configFile_ConfigProvider() {
212212
ConfigProperties config =
213213
DefaultConfigProperties.createFromMap(
214-
Collections.singletonMap("otel.experimental.config.file", configFilePath.toString()));
214+
Collections.singletonMap("otel.config.file", configFilePath.toString()));
215215

216216
AutoConfiguredOpenTelemetrySdk autoConfiguredOpenTelemetrySdk =
217217
AutoConfiguredOpenTelemetrySdk.builder().setConfig(config).setResultAsGlobal().build();

sdk-extensions/autoconfigure/src/testIncubating/java/io/opentelemetry/sdk/autoconfigure/FullDeclarativeConfigTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ void setUp(@TempDir Path tempDir) throws IOException {
129129

130130
String endpoint = "http://localhost:" + server.httpPort();
131131
String yaml =
132-
"file_format: \"1.0-rc.1\"\n"
132+
"file_format: \"1.0\"\n"
133133
+ "resource:\n"
134134
+ " attributes:\n"
135135
+ " - name: service.name\n"
@@ -178,7 +178,7 @@ void setUp(@TempDir Path tempDir) throws IOException {
178178
GlobalOpenTelemetry.resetForTest();
179179
ConfigProperties config =
180180
DefaultConfigProperties.createFromMap(
181-
Collections.singletonMap("otel.experimental.config.file", path.toString()));
181+
Collections.singletonMap("otel.config.file", path.toString()));
182182
openTelemetrySdk =
183183
AutoConfiguredOpenTelemetrySdk.builder()
184184
.setConfig(config)

sdk-extensions/incubator/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@ Usage:
1212
File yamlConfigFile = new File("/path/to/config.yaml");
1313
OpenTelemetrySdk openTelemetrySdk;
1414
try (FileInputStream yamlConfigFileInputStream = new FileInputStream("/path/to/config.yaml")) {
15-
openTelemetrySdk = FileConfiguration.parseAndCreate(yamlConfigFileInputStream);
15+
openTelemetrySdk = DeclarativeConfiguration.parseAndCreate(yamlConfigFileInputStream);
1616
}
1717
// ...proceed with application after successful initialization of OpenTelemetrySdk
1818
```
1919

2020
Notes:
2121
* Environment variable substitution is supported as [defined in the spec](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/data-model.md#environment-variable-substitution)
22-
* Currently, there is no support for the customization (i.e. `AutoConfigurationCustomizerProvider`) SPIs defined in [opentelemetry-sdk-extension-autoconfigure-spi](../autoconfigure-spi).
22+
* Customization is limited to customizing the in-memory config model, or exporters. See `DeclarativeConfigurationCustomizer` SPI for details.
2323
* Custom SDK extension components which reference the [ComponentProvider](https://github.com/open-telemetry/opentelemetry-java/blob/main/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ComponentProvider.java) SPI can be referenced in declarative configuration. Supported types include:
2424
* `Resource`
2525
* `SpanExporter`
@@ -29,7 +29,7 @@ Notes:
2929
* `LogRecordProcessor`
3030
* `TextMapPropagator`
3131
* `Sampler`
32-
* You can use declarative configuration with [autoconfigure](https://opentelemetry.io/docs/languages/java/configuration/#declarative-configuration) to specify a configuration file via environment variable, e.g. `OTEL_EXPERIMENTAL_CONFIG_FILE=/path/to/config.yaml`.
32+
* You can use declarative configuration with [autoconfigure](https://opentelemetry.io/docs/languages/java/configuration/#declarative-configuration) to specify a configuration file via environment variable, e.g. `OTEL_CONFIG_FILE=/path/to/config.yaml`.
3333

3434
## View File Configuration
3535

sdk-extensions/incubator/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ dependencies {
5757
// 6. deleteJs2pTmp - delete tmp directory
5858
// ... proceed with normal sourcesJar, compileJava, etc
5959

60-
val configurationTag = "1.0.0-rc.3"
60+
val configurationTag = "1.0.0"
6161
val configurationRef = "refs/tags/v$configurationTag" // Replace with commit SHA to point to experiment with a specific commit
6262
val configurationRepoZip = "https://github.com/open-telemetry/opentelemetry-configuration/archive/$configurationRef.zip"
6363
val buildDirectory = layout.buildDirectory.asFile.get()
@@ -212,7 +212,7 @@ tasks {
212212
environment(
213213
mapOf(
214214
// Expose the kitchen sink example file to tests
215-
"CONFIG_EXAMPLE_DIR" to "$buildDirectory/configuration/examples/"
215+
"CONFIG_REPO_ROOT" to "$buildDirectory/configuration"
216216
)
217217
)
218218
}

sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/LoggerProviderFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ private static class LoggerConfigFactory
103103
public LoggerConfig create(
104104
ExperimentalLoggerConfigModel model, DeclarativeConfigContext context) {
105105
LoggerConfigBuilder configBuilder = LoggerConfig.builder();
106-
if (model.getDisabled() != null && model.getDisabled()) {
106+
if (model.getEnabled() != null && !model.getEnabled()) {
107107
configBuilder.setEnabled(false);
108108
}
109109
if (model.getTraceBased() != null && model.getTraceBased()) {

sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/MeterProviderFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ private static class MeterConfigFactory
112112
@Override
113113
public MeterConfig create(
114114
ExperimentalMeterConfigModel model, DeclarativeConfigContext context) {
115-
if (model.getDisabled() != null && model.getDisabled()) {
115+
if (model.getEnabled() != null && !model.getEnabled()) {
116116
return MeterConfig.disabled();
117117
}
118118
return MeterConfig.defaultConfig();

0 commit comments

Comments
 (0)