From 43be1e7f9d3e326bc9ab34ab54f3c2f24385cf46 Mon Sep 17 00:00:00 2001 From: Drew Hammond <2405390+drewhammond@users.noreply.github.com> Date: Wed, 4 Sep 2024 15:03:19 -0400 Subject: [PATCH] change polling interval property name to match spec (#6672) Co-authored-by: Jack Berg --- .../sampler/JaegerRemoteSamplerProvider.java | 21 ++++++++++++++++++- .../JaegerRemoteSamplerProviderTest.java | 2 +- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/sdk-extensions/jaeger-remote-sampler/src/main/java/io/opentelemetry/sdk/extension/trace/jaeger/sampler/JaegerRemoteSamplerProvider.java b/sdk-extensions/jaeger-remote-sampler/src/main/java/io/opentelemetry/sdk/extension/trace/jaeger/sampler/JaegerRemoteSamplerProvider.java index d099f3b33f8..422a3b3f4e4 100644 --- a/sdk-extensions/jaeger-remote-sampler/src/main/java/io/opentelemetry/sdk/extension/trace/jaeger/sampler/JaegerRemoteSamplerProvider.java +++ b/sdk-extensions/jaeger-remote-sampler/src/main/java/io/opentelemetry/sdk/extension/trace/jaeger/sampler/JaegerRemoteSamplerProvider.java @@ -10,16 +10,21 @@ import io.opentelemetry.sdk.trace.samplers.Sampler; import java.util.Map; import java.util.concurrent.TimeUnit; +import java.util.logging.Level; +import java.util.logging.Logger; public class JaegerRemoteSamplerProvider implements ConfigurableSamplerProvider { + private static final Logger LOGGER = + Logger.getLogger(JaegerRemoteSamplerProvider.class.getName()); + // visible for testing static final String ATTRIBUTE_PROPERTY = "otel.resource.attributes"; static final String SERVICE_NAME_PROPERTY = "otel.service.name"; static final String SAMPLER_ARG_PROPERTY = "otel.traces.sampler.arg"; static final String RESOURCE_ATTRIBUTE_SERVICE_NAME_PROPERTY = "service.name"; private static final String ENDPOINT_KEY = "endpoint"; - private static final String POLLING_INTERVAL = "pollingInterval"; + private static final String POLLING_INTERVAL = "pollingIntervalMs"; private static final String INITIAL_SAMPLING_RATE = "initialSamplingRate"; @Override @@ -43,9 +48,23 @@ public Sampler createSampler(ConfigProperties config) { builder.setEndpoint(endpoint); } String pollingInterval = params.get(POLLING_INTERVAL); + // Previously, we mistakenly read from pollingInterval. For backwards compatibility, check + // pollingInterval and log warning if set. + if (pollingInterval == null) { + pollingInterval = params.get("pollingInterval"); + if (pollingInterval != null) { + LOGGER.log( + Level.WARNING, + SAMPLER_ARG_PROPERTY + + " contains deprecated \"pollingInterval\" property. Please use \"" + + POLLING_INTERVAL + + "\" instead."); + } + } if (pollingInterval != null) { builder.setPollingInterval(Integer.valueOf(pollingInterval), TimeUnit.MILLISECONDS); } + String initialSamplingRate = params.get(INITIAL_SAMPLING_RATE); if (initialSamplingRate != null) { builder.setInitialSampler( diff --git a/sdk-extensions/jaeger-remote-sampler/src/test/java/io/opentelemetry/sdk/extension/trace/jaeger/sampler/JaegerRemoteSamplerProviderTest.java b/sdk-extensions/jaeger-remote-sampler/src/test/java/io/opentelemetry/sdk/extension/trace/jaeger/sampler/JaegerRemoteSamplerProviderTest.java index 8fa43a7f759..e691b576f18 100644 --- a/sdk-extensions/jaeger-remote-sampler/src/test/java/io/opentelemetry/sdk/extension/trace/jaeger/sampler/JaegerRemoteSamplerProviderTest.java +++ b/sdk-extensions/jaeger-remote-sampler/src/test/java/io/opentelemetry/sdk/extension/trace/jaeger/sampler/JaegerRemoteSamplerProviderTest.java @@ -34,7 +34,7 @@ void serviceProvider() { .thenReturn("test_service"); HashMap samplerArgs = new HashMap<>(); samplerArgs.put("endpoint", "http://localhost:9999"); - samplerArgs.put("pollingInterval", "99"); + samplerArgs.put("pollingIntervalMs", "99"); double samplingRate = 0.33; samplerArgs.put("initialSamplingRate", String.valueOf(samplingRate)); when(mockConfig.getMap(JaegerRemoteSamplerProvider.SAMPLER_ARG_PROPERTY))