Skip to content

Commit 5705704

Browse files
committed
copilot feedback
1 parent 12f7b5e commit 5705704

6 files changed

Lines changed: 87 additions & 13 deletions

File tree

dynamic-control/src/test/java/io/opentelemetry/contrib/dynamic/policy/registry/PolicyInitConfigTest.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ void readFromConfigPropertiesReadsJsonWhenYamlPathMissing() throws Exception {
8989
assertThat(source.getLocation()).isEqualTo("vendor");
9090
assertThat(source.getMappings()).hasSize(1);
9191
assertThat(source.getMappings().get(0).getSourceKey()).isEqualTo("sampling_rate");
92-
assertThat(source.getMappings().get(0).getPolicyType()).isEqualTo("trace_sampling_rate_policy");
92+
assertThat(source.getMappings().get(0).getPolicyType()).isEqualTo("trace-sampling");
9393
}
9494

9595
@Test
@@ -191,7 +191,7 @@ void readFromDeclarativeConfigPropertiesReadsTelemetryPolicySources() {
191191
assertThat(source.getLocation()).isEqualTo("from-declarative");
192192
assertThat(source.getMappings()).hasSize(1);
193193
assertThat(source.getMappings().get(0).getSourceKey()).isEqualTo("sampling_rate");
194-
assertThat(source.getMappings().get(0).getPolicyType()).isEqualTo("trace_sampling_rate_policy");
194+
assertThat(source.getMappings().get(0).getPolicyType()).isEqualTo("trace-sampling");
195195
}
196196

197197
@Test
@@ -428,7 +428,7 @@ private static DeclarativeConfigProperties mappingConfig() {
428428
when(mapping.getString(PolicyInitConfig.SOURCE_KEY_DECLARATIVE_KEY))
429429
.thenReturn("sampling_rate");
430430
when(mapping.getString(PolicyInitConfig.POLICY_TYPE_DECLARATIVE_KEY))
431-
.thenReturn("trace_sampling_rate_policy");
431+
.thenReturn("trace-sampling");
432432
return mapping;
433433
}
434434

@@ -453,13 +453,13 @@ public DeclarativeConfigProperties getGeneralConfig() {
453453

454454
private static String minimalJsonConfig() {
455455
return "{\"sources\":[{\"kind\":\"opamp\",\"format\":\"jsonkeyvalue\",\"location\":\"vendor\","
456-
+ "\"mappings\":[{\"sourceKey\":\"sampling_rate\",\"policyType\":\"trace_sampling_rate_policy\"}]}]}";
456+
+ "\"mappings\":[{\"sourceKey\":\"sampling_rate\",\"policyType\":\"trace-sampling\"}]}]}";
457457
}
458458

459459
private static String jsonWithLocation(String location) {
460460
return "{\"sources\":[{\"kind\":\"opamp\",\"format\":\"jsonkeyvalue\",\"location\":\""
461461
+ location
462-
+ "\",\"mappings\":[{\"sourceKey\":\"sampling_rate\",\"policyType\":\"trace_sampling_rate_policy\"}]}]}";
462+
+ "\",\"mappings\":[{\"sourceKey\":\"sampling_rate\",\"policyType\":\"trace-sampling\"}]}]}";
463463
}
464464

465465
private static String minimalYamlConfig() {
@@ -469,7 +469,7 @@ private static String minimalYamlConfig() {
469469
+ " location: vendor\n"
470470
+ " mappings:\n"
471471
+ " - sourceKey: sampling_rate\n"
472-
+ " policyType: trace_sampling_rate_policy\n";
472+
+ " policyType: trace-sampling\n";
473473
}
474474

475475
private static String yamlWithLocation(String location) {
@@ -481,6 +481,6 @@ private static String yamlWithLocation(String location) {
481481
+ "\n"
482482
+ " mappings:\n"
483483
+ " - sourceKey: sampling_rate\n"
484-
+ " policyType: trace_sampling_rate_policy\n";
484+
+ " policyType: trace-sampling\n";
485485
}
486486
}

dynamic-control/src/test/java/io/opentelemetry/contrib/dynamic/policy/registry/PolicyInitTest.java

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,29 @@
66
package io.opentelemetry.contrib.dynamic.policy.registry;
77

88
import static org.assertj.core.api.Assertions.assertThat;
9+
import static org.assertj.core.api.Assertions.assertThatThrownBy;
910
import static org.mockito.Mockito.mock;
1011
import static org.mockito.Mockito.verify;
1112
import static org.mockito.Mockito.when;
1213

14+
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
1315
import io.opentelemetry.contrib.dynamic.policy.tracesampling.TraceSamplingRatePolicy;
1416
import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer;
1517
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
1618
import java.lang.reflect.Method;
19+
import java.nio.charset.StandardCharsets;
20+
import java.nio.file.Files;
21+
import java.nio.file.Path;
22+
import java.util.Collections;
1723
import java.util.Map;
1824
import java.util.function.Function;
1925
import org.junit.jupiter.api.AfterEach;
2026
import org.junit.jupiter.api.Test;
27+
import org.junit.jupiter.api.io.TempDir;
2128
import org.mockito.ArgumentCaptor;
2229

2330
class PolicyInitTest {
31+
@TempDir Path tempDir;
2432

2533
@AfterEach
2634
void tearDown() throws Exception {
@@ -60,6 +68,49 @@ void doesNotInitializePolicyWhenTopLevelTelemetryPolicyDeclarativeConfigMissing(
6068
assertThat(ignored).isNotNull();
6169
}
6270

71+
@Test
72+
void initializesPolicyFromInitConfigInAutoConfigurationMode() throws Exception {
73+
AutoConfigurationCustomizer customizer = mock(AutoConfigurationCustomizer.class);
74+
PolicyInit.init(customizer);
75+
Function<ConfigProperties, Map<String, String>> propertiesCustomizer =
76+
capturePropertiesCustomizer(customizer);
77+
78+
Path configPath = tempDir.resolve("policy-init.json");
79+
Files.write(configPath, minimalJsonInitConfig().getBytes(StandardCharsets.UTF_8));
80+
81+
ConfigProperties config = mock(ConfigProperties.class);
82+
when(config.getString(PolicyInitConfig.POLICY_INIT_CONFIG_PROPERTY_YAML)).thenReturn(null);
83+
when(config.getString(PolicyInitConfig.POLICY_INIT_CONFIG_PROPERTY_JSON))
84+
.thenReturn(configPath.toString());
85+
86+
Map<String, String> ignored = propertiesCustomizer.apply(config);
87+
88+
assertThat(ignored).isNotNull();
89+
assertThat(TraceSamplingRatePolicy.getInitializedSampler()).isNotNull();
90+
}
91+
92+
@Test
93+
void initializesRegisteredPolicyTypeFromDeclarativeConfig() {
94+
ConfigProperties config = mock(ConfigProperties.class);
95+
96+
PolicyInit.initFromDeclarativeConfig(
97+
telemetryPolicyNodeConfig(TraceSamplingRatePolicy.POLICY_TYPE), config);
98+
99+
assertThat(TraceSamplingRatePolicy.getInitializedSampler()).isNotNull();
100+
}
101+
102+
@Test
103+
void throwsWhenDeclarativeConfigUsesUnknownPolicyType() {
104+
ConfigProperties config = mock(ConfigProperties.class);
105+
106+
assertThatThrownBy(
107+
() ->
108+
PolicyInit.initFromDeclarativeConfig(
109+
telemetryPolicyNodeConfig("trace_sampling_rate_policy"), config))
110+
.isInstanceOf(IllegalArgumentException.class)
111+
.hasMessageContaining("Unknown policyType");
112+
}
113+
63114
private static Function<ConfigProperties, Map<String, String>> capturePropertiesCustomizer(
64115
AutoConfigurationCustomizer customizer) {
65116
@SuppressWarnings("unchecked")
@@ -74,4 +125,29 @@ private static void invokeStaticNoArg(Class<?> targetClass, String methodName) t
74125
method.setAccessible(true);
75126
method.invoke(null);
76127
}
128+
129+
private static DeclarativeConfigProperties telemetryPolicyNodeConfig(String policyType) {
130+
DeclarativeConfigProperties telemetryPolicy = mock(DeclarativeConfigProperties.class);
131+
DeclarativeConfigProperties source = mock(DeclarativeConfigProperties.class);
132+
DeclarativeConfigProperties mapping = mock(DeclarativeConfigProperties.class);
133+
134+
when(telemetryPolicy.getStructuredList(PolicyInitConfig.SOURCES_DECLARATIVE_KEY))
135+
.thenReturn(Collections.singletonList(source));
136+
when(source.getString(PolicyInitConfig.KIND_DECLARATIVE_KEY)).thenReturn("opamp");
137+
when(source.getString(PolicyInitConfig.FORMAT_DECLARATIVE_KEY)).thenReturn("jsonkeyvalue");
138+
when(source.getString(PolicyInitConfig.LOCATION_DECLARATIVE_KEY)).thenReturn("vendor");
139+
when(source.getStructuredList(PolicyInitConfig.MAPPINGS_DECLARATIVE_KEY))
140+
.thenReturn(Collections.singletonList(mapping));
141+
when(mapping.getString(PolicyInitConfig.SOURCE_KEY_DECLARATIVE_KEY))
142+
.thenReturn("sampling_rate");
143+
when(mapping.getString(PolicyInitConfig.POLICY_TYPE_DECLARATIVE_KEY)).thenReturn(policyType);
144+
return telemetryPolicy;
145+
}
146+
147+
private static String minimalJsonInitConfig() {
148+
return "{\"sources\":[{\"kind\":\"opamp\",\"format\":\"jsonkeyvalue\",\"location\":\"vendor\","
149+
+ "\"mappings\":[{\"sourceKey\":\"sampling_rate\",\"policyType\":\""
150+
+ TraceSamplingRatePolicy.POLICY_TYPE
151+
+ "\"}]}]}";
152+
}
77153
}

dynamic-control/src/test/java/io/opentelemetry/contrib/dynamic/policy/registry/json/JsonPolicyInitConfigReaderTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@ void readsSourceCentricFixture() throws Exception {
3434
assertThat(source.getLocation()).isEqualTo("vendor-specific");
3535
assertThat(source.getMappings()).hasSize(4);
3636
assertThat(source.getMappings().get(0).getSourceKey()).isEqualTo("sampling_rate");
37-
assertThat(source.getMappings().get(0).getPolicyType())
38-
.isEqualTo("trace_sampling_rate_policy");
37+
assertThat(source.getMappings().get(0).getPolicyType()).isEqualTo("trace-sampling");
3938
}
4039
}
4140

dynamic-control/src/test/java/io/opentelemetry/contrib/dynamic/policy/registry/yaml/YamlPolicyInitConfigReaderTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@ void readsSourceCentricFixture() throws Exception {
3434
assertThat(source.getLocation()).isEqualTo("vendor-specific");
3535
assertThat(source.getMappings()).hasSize(4);
3636
assertThat(source.getMappings().get(0).getSourceKey()).isEqualTo("sampling_rate");
37-
assertThat(source.getMappings().get(0).getPolicyType())
38-
.isEqualTo("trace_sampling_rate_policy");
37+
assertThat(source.getMappings().get(0).getPolicyType()).isEqualTo("trace-sampling");
3938
}
4039
}
4140

dynamic-control/src/test/resources/io/opentelemetry/contrib/dynamic/policy/registry/json/policy-init-example.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"format": "jsonkeyvalue",
66
"location": "vendor-specific",
77
"mappings": [
8-
{ "sourceKey": "sampling_rate", "policyType": "trace_sampling_rate_policy" },
8+
{ "sourceKey": "sampling_rate", "policyType": "trace-sampling" },
99
{ "sourceKey": "send_logs", "policyType": "log_export_enabled_policy" },
1010
{ "sourceKey": "send_traces", "policyType": "trace_export_enabled_policy" },
1111
{ "sourceKey": "send_metrics", "policyType": "metric_export_enabled_policy" }

dynamic-control/src/test/resources/io/opentelemetry/contrib/dynamic/policy/registry/yaml/policy-init-example.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ sources:
44
location: vendor-specific
55
mappings:
66
- sourceKey: sampling_rate
7-
policyType: trace_sampling_rate_policy
7+
policyType: trace-sampling
88
- sourceKey: send_logs
99
policyType: log_export_enabled_policy
1010
- sourceKey: send_traces

0 commit comments

Comments
 (0)