- Fix sampling when
jaeger-baggage
header is given (#542, @yurishkuro)
- Support
jaeger-baggage
header for ad-hoc baggage (#525, @yurishkuro)
- Fine-tune bootstrap logging (#531, @jpkrohling)
- Add specification version to jars, and impl-title/version & spec version to javadoc and sources jars (#533, @objectiser)
- Move jaeger-thrift shadow jar to its own classifier (#526, @jpkrohling)
- Mark gson field in HttpSamplingManager as ignored for toString (#528, @jpkrohling)
- Use abstract factory pattern to allow subclassing core Jaeger types (#509, @isaachier)
- Use SenderFactory classloader for ServiceLoader (#523, @dbuchhorn)
- Reduce visibility of TextMapCodec.contextFromString to package scope (#519, @isaachier)
- Move contextFromString out of JaegerSpanContext into TextMapCodec (#517, @isaachier)
- Add possibility to specify serviceName with 'fromEnv' (#510, @jpkrohling)
- Fix concurrent modification exception on logs and tags (#500, @pavolloffay)
- Remove unwanted classes from jaeger-thrift shadowed jar (#498, @mdvorak)
- Do not log null spancontext references (#487, @objectiser)
- Fix jaeger-client dependency jaeger-thrift no-shadow artifact (#486, @jpkrohling)
- Add "serialVersionUID" for exceptions to avoid InvalidClassException (#481, @quaff)
- Add jaeger-client module (#479, @jpkrohling)
- Fix wrong package declaration (#480, @quaff)
- Make GuaranteedThroughputSampler public (#457, @quaff)
- Fix version retrieval from jaeger.properties (#478, @jpkrohling)
WARNING: this release breaks compatibility with previous versions.
The most disruptive changes are:
-
The module
jaeger-core
is not bringing Thrift senders anymore. Instead, client applications should now depend on thejaeger-thrift
module, which will bring thejaeger-core
transitively -
The first step in establishing the public API was made: all classes were moved to an
internal
package, to signal that they are not supposed to be used directly. Classes not in theinternal
package are part of the new public API and compatibility should followsemver
. Clients currently using theTracer.Builder
mechanism are encouraged to switch over to theConfiguration
approach. If you face a situation that cannot be done with this approach, do let us know. -
Related to the point above: we now have also a SPI package, intended to be consumed by service providers (components implementing
Sender
s,Reporter
s,Sampler
s). If you are implementing a service, do let us know! We need your feedback before moving forward with this API. -
Jaeger types related to the OpenTracing standard were renamed, to avoid name clashes:
io.jaegertracing.Tracer
is nowJaegerTracer
.
Complete list of changes:
- Define some classes internal (#470, @jpkrohling)
- Change return types from Jaeger Span/Tracer/Context to Jaeger types (#469, @jpkrohling)
- Rename Jaeger's Span to JaegerSpan (#454, @jpkrohling)
- Upgrades internals to Zipkin v2 library (#456, @adriancole)
- Make jaeger-thrift's shaded JAR the default one (#461, @jpkrohling)
- Treat gauge.update() parameter as new value, not delta (#463, @mdouaihy)
- Adjust thrift shadow configuration and version (#458, @jpkrohling)
- Remove dependency from jaeger-core to jaeger-thrift (#449, @jpkrohling)
- Deprecate B3 codec contructor (#440, @pavolloffay)
- Add baggage to B3 codec (#438, @pavolloffay)
- Remove deprecated API - HttpSender and RemoteBaggageManager (#431, @pavolloffay)
- Load metrics factory service from classpath if available (#433, @jpkrohling)
- Remove unused exception (#428, @pavolloffay)
- Add builder patter to RemoteBaggageManager and deprecate some APIs (#424, @pavolloffay)
- Use string builder instead of string format (#425, @pavolloffay)
- Remove deprecated APIs (#414, @pavolloffay)
- Implement Zipkin 2 JSON Sender (#399, @keitwb)
- Fix deploy stage on travis (#421, @pavolloffay)
- Bump versions of gradle plugins (#418, @pavolloffay)
- Bump gradle wrapper to 4.7 (#419, @pavolloffay)
- Fix flaky test in RemoteReporterTest (#415, @pavolloffay)
- Do not use deprecated Tracer.Builder constructor internally (#417, @pavolloffay)
- Polish configuration API (#411, @pavolloffay)
- Do not use deprecated APIs internally (#416, @pavolloffay)
- Do not use deprecated APIs internally (#412, @pavolloffay)
- Remove dependency on brave-http (#410, @pavolloffay)
- Remove tchannel from crossdock (#405, @yurishkuro)
- Add Node.js client to crossdock matrix (#404, @yurishkuro)
- Remove tchannel as tested transport in crossdock (#403, @yurishkuro)
- Define dependencies versions in top level build.gradle (#402, @objectiser)
- Enable development and dependency versions to be overridden from the commandline (#397)
- Add tests for metrics exposed via prometheus (#386)
- Change groupid to io.jaegertracing and remove instrumentations (#375). Sources with com.uber.jaeger have been moved to https://github.com/jaegertracing/legacy-client-java
- Remove reference to JAEGER_DISABLE_GLOBAL_TRACER (#379)
- Avoid direct access to apache thrift from jaeger-core via transitive dependency through jaeger-thrift (#374)
- Make some methods in HttpSender.Builder public (#376)
- Avoid host lookups if trace tags have already been provided (#371)
- Update the ReporterConfig to set Sender Correctly (#370)
- Fix for issue 366, fix deprecated code in example (#367)
- Consolidate codec exception handling and logs exceptions (#362)
- Deprecated StatsReporter (#349) <Juraci Paixão Kröhling>
- Ignores B3 headers if invalid values are provided (#355) <Juraci Paixão Kröhling>
- Refactor public constructor API (#346)
- Expand exception logs (#168)
- Deprecate JerseyServerFilter#JerseyServerFilter(Tracer, TraceContext) (#352)
- Micrometer support (#335) <Juraci Paixão Kröhling>
- Metrics are now consistent with Go (#335) <Juraci Paixão Kröhling>
- Updated Trace Resolver (#347)
- Remove apache instrumentation dependence on jaeger-context (#320)
- Remove JAX-RS2 instrumentation dependence on TracingUtils/jaeger-context (#319)
- Fix ClassCastException when a wrapped span impl is activated instead of the Jaeger Span (#327)
- Remove shadow dependency from jaeger-b3 (#309)
- Adding annotated filter priorities for Jersey filters (#329)
- Handle baggage null values better (#308)
- Upgrade to OpenTracing API v0.31.0 (#313)
0.22.0-RC3 (2017-12-08)
- Remove dependency on GlobalTracer (#302)
- Add configuration support for B3 trace context propagation (#296)
- Prevent Span from being reported twice on multiple calls to finish() (#299)
- Do not store client span in thread-local in apache and jax-rs2 instrumentation (#297)
- Add auth options to HttpSender (#285) <Juraci Paixão Kröhling>
- Break apart functionality of TracingRequestInterceptor (jaegertracing#248)
- Split out the jaxrs2 filters (jaegertracing#273)
- Add TraceContext backed by ActiveSpanSource (jaegertracing#266)
- Update to Apache License v. 2 (jaegertracing#262)
- Use io.opentracing.GlobalTracer instead of singleton in Configuration (jaegertracing#255)
- Tracer implements Closeable (jaegertracing#242)
- Fix: span builder should accept null in asChildOf (jaegertracing#243)
- Support baggage restrictions (jaegertracing#217, jaegertracing#229)
- Fix concurrency bug when using multiple senders (jaegertracing#233)
- Support span log fields in zipkin sender (jaegertracing#226)
- Use okhttp for HTTP sender (jaegertracing#224)
- Upgrade to OpenTracing Java 0.30.0 with in-process propagation support (jaegertracing#188)
- Add Process IP to jaeger.thrift (jaegertracing#197)
- Implement HTTP sender for jaeger.thrift (jaegertracing#194)
- TraceResolver support (jaegertracing#175)
- Do not truncate reported strings (jaegertracing#174)
- Bump OpenTracing version to 0.22.0 (jaegertracing#164)
- Use jaeger.thrift data model (jaegertracing#142)
- Enable process level tags to be associated with the tracer (jaegertracing#143)
- Add adaptive sampler
- Run RemoteReporter's flush timer in daemon thread (jaegertracing#124)
- Bump opentracingVersion to 0.21.0 (jaegertracing#137)
- Add Java 6 compatibility (jaegertracing#132)
- Fix bug where server spans were incorrectly marked as local components
- Tighten checks for marking a span as a RPC
- Add a Configuration#closeTracer() method
- Add Builder to TextMapCodec
- Bump up zipkin to 1.16.2
- Automatically add span names for jersey instrumentation
- Add init logging
- Add a Tracer.close() method
- Fill in
Host
on all annotations when reporting to Zipkin - Downgrade to libthrift 0.9.2
- Publish a shaded jar with libthrift 0.9.2 packaged
- Bump up zipkin versions
- Fix http url tag on jaxrs2 filters
- Add convenience setter for metrics
- Expose interceptor callbacks and custom operation name for extension classes
- Fix bug with dropwizard config parsing
- Support Apache HttpClient
- fixed crossdock notImplementedError propagation
- refactored configuration
- added google-formatter
- Support debug traces via HTTP header "jaeger-debug-id"
- Introduce Clock interface for time measurements
- Use nano-time for measuring duration
- Remove powermock dependency
- Upgrade to OT 0.15
- Exclude test classes from published jars
- Default peer service name to blank as it is required in Thrift Endpoint (fixes #45)
- Add jaeger-zipkin module that allows on the wire propagation with B3-xxx headers and uses zipkin-reporter
- Report sampling strategy as root span tags
sampler.type
andsampler.param
. In case of probabilistic sampling (most frequently used strategy), the values would beprobabilistic
and the sampling probability [0 .. 1], respectively. - Record host name as
jaeger.hostname
tag on the first-in-process spans (i.e. root spans and rpc-server spans) - Record the version of the Jaeger library as
jaeger.version
tag
- Reduce the size of published jars
- Upgrade to OpenTracing API 0.12, with immutable SpanContext