diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/trace/samplers/ComposableAnnotatingSampler.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/trace/samplers/ComposableAnnotatingSampler.java index dcc54916372..e88913c194d 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/trace/samplers/ComposableAnnotatingSampler.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/trace/samplers/ComposableAnnotatingSampler.java @@ -44,4 +44,9 @@ public SamplingIntent getSamplingIntent( public String getDescription() { return description; } + + @Override + public String toString() { + return getDescription(); + } } diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/trace/samplers/ComposableAnnotatingSamplerTest.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/trace/samplers/ComposableAnnotatingSamplerTest.java index 9a719844449..8dba73e7c98 100644 --- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/trace/samplers/ComposableAnnotatingSamplerTest.java +++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/trace/samplers/ComposableAnnotatingSamplerTest.java @@ -32,6 +32,22 @@ void testDescription() { "ComposableAnnotatingSampler{ComposableAlwaysOnSampler,{http.route=\"/bear\", size=100}}"); } + @Test + void descriptionInComposedSampler() { + // The annotating sampler must override toString() so that samplers composing it (which build + // their description by concatenating the nested sampler) surface its real description instead + // of + // an Object hash. + String description = + ComposableSampler.parentThreshold( + ComposableSampler.annotating(ComposableSampler.alwaysOn(), Attributes.empty())) + .getDescription(); + assertThat(description) + .isEqualTo( + "ComposableParentThresholdSampler{rootSampler=ComposableAnnotatingSampler{ComposableAlwaysOnSampler,{}}}"); + assertThat(description).doesNotContain("@"); + } + @Test void setsAttributes() { SamplingIntent intent =