- Allow Faraday 2.x.
- Moved CI to GitHub Actions.
- Fix to not flush local component span when a server span or a consumer span is in the stack.
- Fix to set
SERVER
span kind at the beginning to avoid being flushed before closing.
- Add a
check_routes
option to make the routable request check optional.
- Add Amazon SQS tracer.
- Add a
trace_context
option to the TraceWrapper utility class to retrieve trace data.
- Allow Faraday 1.x.
- Fix to not flush
PRODUCER
span when a server span is in the stack.
- Add the
PRODUCER
andCONSUMER
span kinds.
- Reuse existing tracer(sender) in the TraceWrapper utility class.
- Add support for writing B3 single header.
- Omit ParentSpanId header for root spans.
- Fix to pass
async
option to the HTTP sender.
- Add support for reading B3 single header.
- Make Faraday 0.13 the minimum requirement.
- Duplicate rack environment strings so that applications that depend on this call only happening once don't break.
- Allow clients to provide an explicit timestamp when starting and stopping spans.
- Add RabbitMQ sender.
- Add an
async
option to the HTTP and SQS senders. - Allow the
logger
option to be provided. - Add the TraceWrapper utility class.
- Cleanup the gemspec. No code changes.
- Bugfix: Prevent uninitialized constant AsyncHttpApiClient::ZipkinHttpSender error
- Add ZipkinSqsSender to send spans via Amazon SQS
- Rename ZipkinJsonTracer to ZipkinHttpSender and rename others to replace the term "tracer" with "sender"
- Fix bug with Rails 5.1 when calling recognize_path with a nil path
- removes record_on_server_receive option
- records status_code and method on all server receive events.
- Whitelist plugin ensure a request is traced even if it is not routable
- Gem requires Ruby > 2.3.0. In practice this was true already.
- Switch to Zipkin v2 span format
- Remove the ':service_port' configuration.
- Fix 'sa' annotation encoding.
- Fix bug using trace generator.
- Recover the old Trace.id logic but based not the new API. Again, for compatibility.
- Delete added parameter to trace.next_id
- Restore Trace.id for now as software needs to migrate out of it.
- Remove dependency from finagle-thrift
- Use http.url instead of http.uri
- Add 'http.method' to client annotations
- Patch abstract route to work with Grape
- Add abstract route to span name
- Fix not to raise "NoMethodError" for Rails:Module
- Add the
:trace_id_128bit
configuration option.
- Update version.rb to fix checksum mismatch on RubyGems.org
- Add
condition
on Travis CI deployment
- Convert trace values to string
- Rescue connection errors when sending information to Zipkin fails
- Add tagging of errors for Faraday and Excon.
- Add sidekiq worker tracing.
- Fix pass kafka producer to rack middleware
- Fix Pass and use the span in annotate_plugin
- Fix Excon middleware span duration
- Add
start_span
andend_span
to the Null tracer
- 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