* TraceKeys -> moved to root
* TraceRunnable and TraceCallable moved to root
* Websockets moved as a subpackage of messaging
* created TraceMetricsAutoConfiguration in the metric package (thanks to this the TraeAutoConfiguration doesn't need any metric info)
What’s left?
* the remaining dependencies are related to everybody using events
* there are a couple of usages of NeverSample
When a span is continued a new one is created from the previous one. We've been copying span collections thus the changes in the continued instance were not reflected in the parent.
Fixes#161
Added changes following review
* added comments
* added javadocs
* added naming basing on @SpanName and toString()
* added default 'async' naming if there is no overriden span name
* removed TraceDelegate after review
* introduced SpanNamer
fixes#168
Hystrix is complex and the stacks get very deep. It turns out that
it is also rather stateful, so order of tests affects the outcomes.
Long story short: if you set the concurrency strategy it infects
other tests (like the TraecCommandTests), which then have to assert
slightly more carefully.
The TraceFilter should clean up its own spans. It should never
need to use the SpanContextHolder directly.
There was a test that needed it inserted instead.
The fact that a Span was active when a new one is created needs
to be recorded, but it doesn't seem to belong in the Span. However
the DefaultTracer can call other methods on the SpanContextHolder
and that's what this change does (with package private methods).
There are still some usages of the public methods in
SpanContextHolder which I'd like to stamp out as a separate issue.
Fixes gh-141
Also allows us to actually create a PercentageBasedSampler (I
don't think anyone tried it before) without resorting to
lazy beans and proxies.
Another freature added here is a default percentage sampler
if we know that spans need to be exported (zipkin or stream
is present).
Fixes gh-138
It also turns out that there's a bug in Spring MVC which makes an
empty header blow up in RequestHeaderMapMethodArgumentResolver
so we set the header to "true" instead of empty.
Fixes gh-136
Previously, if a trace id came into the filter from the caller and
the controller was async, the span context was not properly managed
resulting in warnings in logs.
Fixes gh-137