Skip to content

Commit b992287

Browse files
authored
[dynamic control] Add identity to existing policy classes (open-telemetry#2942)
1 parent 50ee035 commit b992287

3 files changed

Lines changed: 20 additions & 2 deletions

File tree

dynamic-control/src/main/java/io/opentelemetry/contrib/dynamic/policy/tracesampling/TraceSamplingRatePolicy.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import io.opentelemetry.contrib.dynamic.policy.PolicyImplementer;
99
import io.opentelemetry.contrib.dynamic.policy.TelemetryPolicy;
10+
import io.opentelemetry.contrib.dynamic.policy.TelemetryPolicyIdentity;
1011
import io.opentelemetry.contrib.dynamic.policy.registry.PolicyInit;
1112
import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer;
1213
import io.opentelemetry.sdk.extension.incubator.trace.samplers.ComposableSampler;
@@ -17,16 +18,24 @@
1718

1819
public final class TraceSamplingRatePolicy extends TelemetryPolicy {
1920
public static final String POLICY_TYPE = "trace-sampling";
21+
public static final TelemetryPolicyIdentity DEFAULT_IDENTITY =
22+
new TelemetryPolicyIdentity("trace-sampling", "Trace sampling rate");
2023

2124
@Nullable private static volatile DelegatingSampler initializedSampler;
2225

26+
private final TelemetryPolicyIdentity identity;
2327
private final double probability;
2428

2529
public TraceSamplingRatePolicy(double probability) {
2630
super(POLICY_TYPE);
31+
this.identity = DEFAULT_IDENTITY;
2732
this.probability = normalizeProbability(probability);
2833
}
2934

35+
public TelemetryPolicyIdentity getIdentity() {
36+
return identity;
37+
}
38+
3039
public double getProbability() {
3140
return probability;
3241
}
@@ -90,11 +99,13 @@ public boolean equals(Object obj) {
9099
return false;
91100
}
92101
TraceSamplingRatePolicy that = (TraceSamplingRatePolicy) obj;
93-
return Double.compare(probability, that.probability) == 0;
102+
return Double.compare(probability, that.probability) == 0 && identity.equals(that.identity);
94103
}
95104

96105
@Override
97106
public int hashCode() {
98-
return Double.hashCode(probability);
107+
int result = identity.hashCode();
108+
result = 31 * result + Double.hashCode(probability);
109+
return result;
99110
}
100111
}

dynamic-control/src/test/java/io/opentelemetry/contrib/dynamic/policy/tracesampling/TraceSamplingRatePolicyTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class TraceSamplingRatePolicyTest {
2121
void constructorStoresProbabilityAndType() {
2222
TraceSamplingRatePolicy policy = new TraceSamplingRatePolicy(0.25);
2323

24+
assertThat(policy.getIdentity()).isEqualTo(TraceSamplingRatePolicy.DEFAULT_IDENTITY);
2425
assertThat(policy.getProbability()).isEqualTo(0.25);
2526
assertThat(policy.getType()).isEqualTo(TraceSamplingRatePolicy.POLICY_TYPE);
2627
}

dynamic-control/src/test/java/io/opentelemetry/contrib/dynamic/policy/tracesampling/TraceSamplingValidatorTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ void testValidate_ValidJson() {
3434
assertThat(policy).isNotNull();
3535
assertThat(policy.getType()).isEqualTo(TRACE_SAMPLING_POLICY_TYPE);
3636
assertThat(policy).isInstanceOf(TraceSamplingRatePolicy.class);
37+
assertThat(((TraceSamplingRatePolicy) policy).getIdentity())
38+
.isEqualTo(TraceSamplingRatePolicy.DEFAULT_IDENTITY);
3739
assertThat(((TraceSamplingRatePolicy) policy).getProbability()).isCloseTo(0.5, within(1e-9));
3840
}
3941

@@ -61,6 +63,8 @@ void testValidate_ValidJson_LegacyObjectShapeWithProbabilityField() {
6163
assertThat(policy).isNotNull();
6264
assertThat(policy.getType()).isEqualTo(TRACE_SAMPLING_POLICY_TYPE);
6365
assertThat(policy).isInstanceOf(TraceSamplingRatePolicy.class);
66+
assertThat(((TraceSamplingRatePolicy) policy).getIdentity())
67+
.isEqualTo(TraceSamplingRatePolicy.DEFAULT_IDENTITY);
6468
assertThat(((TraceSamplingRatePolicy) policy).getProbability()).isCloseTo(0.5, within(1e-9));
6569
}
6670

@@ -121,6 +125,8 @@ void testValidate_ValidKeyValue() {
121125
assertThat(policy).isNotNull();
122126
assertThat(policy.getType()).isEqualTo(TRACE_SAMPLING_POLICY_TYPE);
123127
assertThat(policy).isInstanceOf(TraceSamplingRatePolicy.class);
128+
assertThat(((TraceSamplingRatePolicy) policy).getIdentity())
129+
.isEqualTo(TraceSamplingRatePolicy.DEFAULT_IDENTITY);
124130
assertThat(((TraceSamplingRatePolicy) policy).getProbability()).isCloseTo(0.5, within(1e-9));
125131
}
126132

0 commit comments

Comments
 (0)