Skip to content

Commit cd5abf6

Browse files
authored
New opamp declarative config structure (#2869)
1 parent 40609a2 commit cd5abf6

2 files changed

Lines changed: 14 additions & 24 deletions

File tree

opamp/src/main/java/com/splunk/opentelemetry/opamp/OpampClientConfigurationFactory.java

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,11 @@
1616

1717
package com.splunk.opentelemetry.opamp;
1818

19-
import static io.opentelemetry.api.incubator.config.DeclarativeConfigProperties.empty;
2019
import static io.opentelemetry.opamp.client.internal.request.service.HttpRequestService.DEFAULT_DELAY_BETWEEN_REQUESTS;
2120

2221
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
23-
import io.opentelemetry.common.ComponentLoader;
2422
import io.opentelemetry.sdk.autoconfigure.AutoConfigureUtil;
2523
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
26-
import io.opentelemetry.sdk.autoconfigure.declarativeconfig.YamlDeclarativeConfigProperties;
2724
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
2825
import io.opentelemetry.sdk.declarativeconfig.internal.model.OpenTelemetryConfigurationModel;
2926
import java.util.Objects;
@@ -39,27 +36,20 @@ public static OpampClientConfiguration createConfiguration(
3936
}
4037

4138
private static OpampClientConfiguration createConfigurationFromDeclarativeConfig() {
42-
OpenTelemetryConfigurationModel configurationModel =
39+
OpenTelemetryConfigurationModel config =
4340
Objects.requireNonNull(DeclarativeConfigurationInterceptor.getConfigurationModel());
4441

45-
OpampClientConfiguration.Builder builder = OpampClientConfiguration.builder();
46-
DeclarativeConfigProperties properties =
47-
YamlDeclarativeConfigProperties.create(
48-
configurationModel.getAdditionalProperties(),
49-
ComponentLoader.forClassLoader(DeclarativeConfigProperties.class.getClassLoader()));
42+
DeclarativeConfigProperties opampProperties =
43+
AutoConfigureUtil.getDistributionConfig(config).getStructured("opamp/development");
5044

51-
DeclarativeConfigProperties opampProperties = properties.getStructured("opamp/development");
45+
OpampClientConfiguration.Builder builder = OpampClientConfiguration.builder();
5246
if (opampProperties != null) {
5347
builder.withEnabled(true);
54-
DeclarativeConfigProperties connection = opampProperties.getStructured("transport", empty());
55-
DeclarativeConfigProperties http = connection.getStructured("http");
56-
if (http != null) {
57-
builder
58-
.withEndpoint(http.getString("endpoint"))
59-
.withPollingInterval(
60-
http.getLong(
61-
"polling_interval", DEFAULT_DELAY_BETWEEN_REQUESTS.getNextDelay().toMillis()));
62-
}
48+
builder
49+
.withEndpoint(opampProperties.getString("endpoint"))
50+
.withPollingInterval(
51+
opampProperties.getLong(
52+
"polling_interval", DEFAULT_DELAY_BETWEEN_REQUESTS.getNextDelay().toMillis()));
6353
}
6454

6555
return builder.build();

opamp/src/test/java/com/splunk/opentelemetry/opamp/OpampClientConfigurationFactoryTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,10 @@ void shouldCreateConfigurationFromDeclarativeConfig(@TempDir Path tempDir) throw
6464
String yaml =
6565
"""
6666
file_format: "1.0"
67-
opamp/development:
68-
transport:
69-
http:
70-
endpoint: https://opamp.example.com
67+
distribution:
68+
splunk:
69+
opamp/development:
70+
endpoint: http://some.opamp-host.com:3420/v1/opamp
7171
polling_interval: 4567
7272
""";
7373
AutoConfiguredOpenTelemetrySdk sdk =
@@ -79,7 +79,7 @@ void shouldCreateConfigurationFromDeclarativeConfig(@TempDir Path tempDir) throw
7979

8080
// then
8181
assertThat(configuration.isEnabled()).isTrue();
82-
assertThat(configuration.getEndpoint()).isEqualTo("https://opamp.example.com");
82+
assertThat(configuration.getEndpoint()).isEqualTo("http://some.opamp-host.com:3420/v1/opamp");
8383
assertThat(configuration.getPollingInterval()).isEqualTo(4567);
8484
}
8585

0 commit comments

Comments
 (0)