You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Aug 6, 2024. It is now read-only.
I've started seeing an issue after updating a project to use 2.1.0 and correspondingly Sleuth 3.0.x.
If you have an application with an auto-configuration class which has a dependency on Tracer (from Sleuth), then a noop Sampler is auto-configured, and no traces are sampled without manually configuring a Sampler.
I have a small project which demonstrates the issue here. The application adds a simple auto-configuration class as follows:
When the application runs, the AutoConfigureAfter forces this component to be registered after Brave and correspondingly BraveSamplerConfiguration. Unfortunately, that seems to ignore the AutoConfigureBefore requirement that WavefrontTracingSleuthConfiguration should run before BraveAutoConfiguration. This causes issues because Sleuth has a SamplerCondition which configures a real Sampler if a custom TracingCustomizer has been configured (which WavefrontTracingSleuthConfiguration adds).
If you run the demo project, you would see this output indicating the order in which the auto-configuration classes are loaded, and correspondingly, the sampler that was configured:
Prior to 2.1.0 (and Sleuth 3.0.x) this same code worked as expected and a real Sampler is auto-configured by Sleuth/Brave. I believe this was possibly introduced by #92here.
It's very unclear to me which component is at fault here, or where this issue could be addressed most effectively. The example project and corresponding auto-configuration are very similar to how a library I've been using instruments database queries via p6spy, which is how I ran into this issue.
Would greatly appreciate any input/feedback. I'm really unsure how to address this without a custom Sampler configuration, which isn't great experience given that the Sampler auto-configuration used to work.
Thanks!!!
The text was updated successfully, but these errors were encountered:
Howdy!
I've started seeing an issue after updating a project to use 2.1.0 and correspondingly Sleuth 3.0.x.
If you have an application with an auto-configuration class which has a dependency on
Tracer
(from Sleuth), then a noopSampler
is auto-configured, and no traces are sampled without manually configuring aSampler
.I have a small project which demonstrates the issue here. The application adds a simple auto-configuration class as follows:
When the application runs, the
AutoConfigureAfter
forces this component to be registered after Brave and correspondingly BraveSamplerConfiguration. Unfortunately, that seems to ignore theAutoConfigureBefore
requirement that WavefrontTracingSleuthConfiguration should run before BraveAutoConfiguration. This causes issues because Sleuth has a SamplerCondition which configures a realSampler
if a customTracingCustomizer
has been configured (whichWavefrontTracingSleuthConfiguration
adds).If you run the demo project, you would see this output indicating the order in which the auto-configuration classes are loaded, and correspondingly, the sampler that was configured:
Prior to 2.1.0 (and Sleuth 3.0.x) this same code worked as expected and a real
Sampler
is auto-configured by Sleuth/Brave. I believe this was possibly introduced by #92 here.It's very unclear to me which component is at fault here, or where this issue could be addressed most effectively. The example project and corresponding auto-configuration are very similar to how a library I've been using instruments database queries via p6spy, which is how I ran into this issue.
Would greatly appreciate any input/feedback. I'm really unsure how to address this without a custom
Sampler
configuration, which isn't great experience given that theSampler
auto-configuration used to work.Thanks!!!
The text was updated successfully, but these errors were encountered: