Skip to content

Commit cfe687f

Browse files
author
Mateusz Rzeszutek
authored
Use alwaysOn() sampler (#42)
* Use alwaysOn() sampler * spotless * fix failing smoke test
1 parent 16fb338 commit cfe687f

File tree

3 files changed

+34
-3
lines changed

3 files changed

+34
-3
lines changed

custom/src/main/java/com/splunk/opentelemetry/SplunkTracerCustomizer.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import io.opentelemetry.javaagent.spi.TracerCustomizer;
2020
import io.opentelemetry.sdk.trace.TracerSdkManagement;
21+
import io.opentelemetry.sdk.trace.samplers.Sampler;
2122

2223
public class SplunkTracerCustomizer implements TracerCustomizer {
2324

@@ -42,5 +43,8 @@ public void configure(TracerSdkManagement tracerManagement) {
4243
if (jdbcSpanLowCardinalityNameEnabled()) {
4344
tracerManagement.addSpanProcessor(new JdbcSpanRenamingProcessor());
4445
}
46+
47+
tracerManagement.updateActiveTraceConfig(
48+
tracerManagement.getActiveTraceConfig().toBuilder().setSampler(Sampler.alwaysOn()).build());
4549
}
4650
}

custom/src/test/java/com/splunk/opentelemetry/SplunkTracerCustomizerTest.java

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,32 +17,46 @@
1717
package com.splunk.opentelemetry;
1818

1919
import static com.splunk.opentelemetry.SplunkTracerCustomizer.ENABLE_JDBC_SPAN_LOW_CARDINALITY_NAME_PROPERTY;
20+
import static org.junit.jupiter.api.Assertions.assertEquals;
2021
import static org.mockito.ArgumentMatchers.isA;
22+
import static org.mockito.BDDMockito.given;
2123
import static org.mockito.BDDMockito.then;
2224

2325
import io.opentelemetry.sdk.trace.TracerSdkProvider;
26+
import io.opentelemetry.sdk.trace.config.TraceConfig;
27+
import io.opentelemetry.sdk.trace.samplers.Sampler;
2428
import org.junit.jupiter.api.Test;
2529
import org.junit.jupiter.api.extension.ExtendWith;
30+
import org.mockito.ArgumentCaptor;
31+
import org.mockito.Captor;
2632
import org.mockito.Mock;
2733
import org.mockito.junit.jupiter.MockitoExtension;
2834

2935
@ExtendWith(MockitoExtension.class)
3036
public class SplunkTracerCustomizerTest {
3137
@Mock private TracerSdkProvider tracerSdkProvider;
3238

39+
@Captor private ArgumentCaptor<TraceConfig> traceConfigCaptor;
40+
3341
@Test
3442
public void shouldAddSpanProcessorsIfPropertiesAreSetToTrue() {
3543

3644
// given
3745
SplunkTracerCustomizer underTest = new SplunkTracerCustomizer();
3846
System.setProperty(ENABLE_JDBC_SPAN_LOW_CARDINALITY_NAME_PROPERTY, "true");
3947

48+
TraceConfig traceConfig = TraceConfig.getDefault();
49+
given(tracerSdkProvider.getActiveTraceConfig()).willReturn(traceConfig);
50+
4051
// when
4152
underTest.configure(tracerSdkProvider);
4253

4354
// then
4455
then(tracerSdkProvider).should().addSpanProcessor(isA(JdbcSpanRenamingProcessor.class));
56+
then(tracerSdkProvider).should().updateActiveTraceConfig(traceConfigCaptor.capture());
4557
then(tracerSdkProvider).shouldHaveNoMoreInteractions();
58+
59+
assertEquals(Sampler.alwaysOn(), traceConfigCaptor.getValue().getSampler());
4660
}
4761

4862
@Test
@@ -52,25 +66,36 @@ public void shouldNotAddSpanProcessorsIfPropertiesAreSetToAnythingElse() {
5266
SplunkTracerCustomizer underTest = new SplunkTracerCustomizer();
5367
System.setProperty(ENABLE_JDBC_SPAN_LOW_CARDINALITY_NAME_PROPERTY, "whatever");
5468

69+
TraceConfig traceConfig = TraceConfig.getDefault();
70+
given(tracerSdkProvider.getActiveTraceConfig()).willReturn(traceConfig);
71+
5572
// when
5673
underTest.configure(tracerSdkProvider);
5774

5875
// then
59-
then(tracerSdkProvider).shouldHaveNoInteractions();
76+
then(tracerSdkProvider).should().updateActiveTraceConfig(traceConfigCaptor.capture());
77+
then(tracerSdkProvider).shouldHaveNoMoreInteractions();
78+
79+
assertEquals(Sampler.alwaysOn(), traceConfigCaptor.getValue().getSampler());
6080
}
6181

6282
@Test
6383
public void shouldConfigureTracerSdkForDefaultValues() {
64-
6584
// given
6685
SplunkTracerCustomizer underTest = new SplunkTracerCustomizer();
6786
System.clearProperty(ENABLE_JDBC_SPAN_LOW_CARDINALITY_NAME_PROPERTY);
6887

88+
TraceConfig traceConfig = TraceConfig.getDefault();
89+
given(tracerSdkProvider.getActiveTraceConfig()).willReturn(traceConfig);
90+
6991
// when
7092
underTest.configure(tracerSdkProvider);
7193

7294
// then
7395
then(tracerSdkProvider).should().addSpanProcessor(isA(JdbcSpanRenamingProcessor.class));
96+
then(tracerSdkProvider).should().updateActiveTraceConfig(traceConfigCaptor.capture());
7497
then(tracerSdkProvider).shouldHaveNoMoreInteractions();
98+
99+
assertEquals(Sampler.alwaysOn(), traceConfigCaptor.getValue().getSampler());
75100
}
76101
}

smoke-tests/src/test/java/com/splunk/opentelemetry/SpringBootSmokeTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@
2828
class SpringBootSmokeTest extends SmokeTest {
2929

3030
private String getTargetImage(int jdk) {
31-
return "open-telemetry-docker-dev.bintray.io/java/smoke-springboot-jdk" + jdk + ":latest";
31+
return "open-telemetry-docker-dev.bintray.io/java/smoke-springboot-jdk"
32+
+ jdk
33+
+ ":20201105.347264626";
3234
}
3335

3436
@ParameterizedTest(name = "{index} => SpringBoot SmokeTest On JDK{0}.")

0 commit comments

Comments
 (0)