From 1d65faaffaabee8e7fb658c26976c2fe47957a79 Mon Sep 17 00:00:00 2001 From: Brian Estrada Date: Thu, 20 Jul 2023 22:22:14 +0200 Subject: [PATCH] feature: added support for traceIdRatioBased --- .../com/monta/otel/extension/Customizer.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/com/monta/otel/extension/Customizer.java b/src/main/kotlin/com/monta/otel/extension/Customizer.java index d37d188..917d897 100644 --- a/src/main/kotlin/com/monta/otel/extension/Customizer.java +++ b/src/main/kotlin/com/monta/otel/extension/Customizer.java @@ -37,7 +37,7 @@ public void customize(AutoConfigurationCustomizer autoConfiguration) { autoConfiguration.addTracerProviderCustomizer((sdkTracerProviderBuilder, configProperties) -> sdkTracerProviderBuilder.setSampler( Sampler.parentBased( - RuleBasedRoutingSampler.builder(SpanKind.SERVER, Sampler.alwaysOn()) + RuleBasedRoutingSampler.builder(SpanKind.SERVER, getSampler()) .drop(SemanticAttributes.HTTP_TARGET, "/health*") .drop(SemanticAttributes.HTTP_TARGET, "/prometheus*") .build() @@ -45,4 +45,20 @@ public void customize(AutoConfigurationCustomizer autoConfiguration) { ) ); } + + private static Sampler getSampler() { + + String otelTracesSamplerArg = System.getenv("OTEL_TRACES_SAMPLER_ARG"); + + if (otelTracesSamplerArg != null) { + try { + double ratio = Double.parseDouble(otelTracesSamplerArg); + return Sampler.traceIdRatioBased(ratio); + } catch (Exception exception) { + return Sampler.alwaysOff(); + } + } else { + return Sampler.alwaysOn(); + } + } }