- Add the
:record_on_server_receive
configuration option.
- Bugfix: Guard against tracer not set in Faraday and Excon middlewares
- Bugfix: better guard against nil response in the Excon middleware
- Added an Excon middleware
- Bugfix: Properly handle the
sampled_as_boolean
configuration option
- Bugfix: The Faraday middleware does not leave in the container any generated Id
- Added TraceContainer and TraceGenerator to provide easier abstractions to interact with this library
- Limits the required headers to x_b3_trace_id and x_b3_span_id as per spec.
- Propagates the X-B3-Sampled in the same form it receives it (boolean or 1/0)
- Adds a configuration option to allow a service to emit boolean or numbers for the X-B3-Sampled header
- Passes HTTP Method to recognize_path
NullTracer
has a noopflush!
method.- Spans from
local_component_span
will be named according tolocal_component_value
overlc
.
- Uses http.path to annotate paths instead of http.uri.
- Ensures ip addresses for all hostnames are resolved, solves issue with docker hostnames
- Remove nil parentId from zipkin span payload.
- Turn the ZipkinTracer::FaradayHandler::B3_HEADERS constant into a private method
- Adds the :log_tracing option to explicitly use the logger tracer.
- Logger classes can not be passed via the configuration file (never worked correctly).
- Logger tracer logs in JSON format for easy analysis by other tools.
Adds a :producer configuration key as an alternative to Hermann as Kafka client.
- Remove the scribe tracer.
- Use sucker_punch 2.x. The main feature is the dependency on concurrent-ruby instead of celluloid.
- Less strict dependency on Rack. Allows to use Rails 5.
- Hostname resolution done asyncronously for the JSON tracer
- Access to the tracer when we need it and not before.
- Adds a logger kind of tracer.
- Move record methods in TraceClient to Span
- Relocate definition of constant variables
- Check the config entry is not blank when infering adapters
- Remove support for buffering. It was broken anyways.
- Make local tracing method (ZipkinTracer::TraceClient.local_component_span) returns the result of block
- Allow nesting of local tracing spans
- Add local tracing, fix flushing, add timestamp and duration to span
- Use local spans instead of thread-safe variables to improve performance
- Add new
with_new_span
method to the tracer api to allow creating custom spans
- Avoid requiring finagle-thrift when possible to avoid a hard dependency on Thrift
- Add faraday as a dependency
- Performance optimization: Do not create tracing related objects in the Faraday middleware if we are not sampling.
- Fix benchmark Rake task so it uses the proper Faraday middlewares
- Always create trace IDs even when the trace will not be sent to zipkin (other parts of the app may use them).
- Bugfix: Tracer is now Threadsafe
- Development improvement: Benchmark Rake task to help finding performance issues
- Make Scribe actually optional by inspecting the conf first and requiring after.
- Add a JSON tracer (ZipkinJsonTracer).
- Set caller service name using domain environment variable. If the value is not set, it will fall back to the configuration file default.
- To proper follow the correct spec, now the annotations cr/cs set the local service as servicename
- Added a 'sa' annotation to indicate the remote service servicename
- Send method name (get, post, etc) as lowercase (zipkin > 1.22 expect them lowercase)
- Rescue possible errors when lookup of the hostname fails
- Remove Scribe from direct dependencies list
- The ruby client does not wait to receive ACK from the collector. Just send traces
- Connecting to the collector now happens in a different thread
- The server annotations will not add information about the URL hit if hit by a zipkin enabled client
- Properly pop the Id from the traces stacks when finishing the Faraday tracer
- Do not trace requests if the current application will not serve them.
- Relax constraint on Rack from ~> 1.6 to ~> 1.3
- New configuration option :logger to setup a logger for error messages
- The Zipkin Rack middleware will not raise an error if sending information to Zipkin raises an error
- The Zipkin Rack middleware will not raise an error if sending information to Zipkin raises an error
- Integration specs to make sure information is properly passed when using Rack middleware together with Faraday's
- Added Faraday middleware to the repo
- Use Thread safe Finagle version to store the traces