Skip to content

Commit 2d150ea

Browse files
authored
Hook up sampler (#810)
* add sampler * add sampler * fix order * fix typos * another typo * spotless
1 parent f3fa60b commit 2d150ea

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

custom/src/main/java/co/elastic/otel/ElasticAutoConfigurationCustomizerProvider.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
*/
1919
package co.elastic.otel;
2020

21+
import co.elastic.otel.compositesampling.DynamicCompositeParentBasedTraceIdRatioBasedSampler;
2122
import co.elastic.otel.dynamicconfig.BlockableLogRecordExporter;
2223
import co.elastic.otel.dynamicconfig.BlockableMetricExporter;
2324
import co.elastic.otel.dynamicconfig.BlockableSpanExporter;
@@ -91,6 +92,7 @@ public void customize(AutoConfigurationCustomizer autoConfiguration) {
9192
(providerBuilder, properties) -> {
9293
CentralConfig.init(providerBuilder, properties);
9394
AgentLog.addSpanLoggingIfRequired(providerBuilder, properties);
95+
providerBuilder.setSampler(DynamicCompositeParentBasedTraceIdRatioBasedSampler.INSTANCE);
9496
return providerBuilder;
9597
});
9698
}

custom/src/main/java/co/elastic/otel/dynamicconfig/CentralConfig.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
*/
1919
package co.elastic.otel.dynamicconfig;
2020

21+
import co.elastic.otel.compositesampling.DynamicCompositeParentBasedTraceIdRatioBasedSampler;
2122
import co.elastic.otel.dynamicconfig.internal.OpampManager;
2223
import co.elastic.otel.logging.AgentLog;
2324
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
@@ -128,6 +129,7 @@ public static class Configs {
128129
new DeactivateAllInstrumentations(),
129130
new DeactivateInstrumentations(),
130131
new LoggingLevel(),
132+
new SamplingRate(),
131133
new PollingInterval())
132134
.collect(Collectors.toMap(ConfigOption::getConfigName, option -> option));
133135
}
@@ -299,6 +301,19 @@ void update(String configurationValue, OpampManager opampManager)
299301
}
300302
}
301303

304+
public static final class SamplingRate extends ConfigOption {
305+
SamplingRate() {
306+
super("sampling_rate", "1.0");
307+
}
308+
309+
@Override
310+
void update(String configurationValue, OpampManager opampManager)
311+
throws IllegalArgumentException {
312+
DynamicCompositeParentBasedTraceIdRatioBasedSampler.setRatio(
313+
Double.parseDouble(configurationValue));
314+
}
315+
}
316+
302317
public static final class PollingInterval extends ConfigOption {
303318
PollingInterval() {
304319
super("opamp_polling_interval", "30s");

0 commit comments

Comments
 (0)