Deprecated
This gem is deprecated. The code of this middleware has been moved into the Zipkin-tracer gem. Please use the FaradayHandler in the zipkin-tracer gem to get the most up-to-date code.
The README below is left only as reference for users of the old code.
Faraday::Zipkin
Faraday middleware to generate Zipkin tracing headers.
For more information about Zipkin, go to http://twitter.github.io/zipkin http://github.com/twitter/zipkin
This gem implements the client side described at http://twitter.github.io/zipkin/instrument.html
Note that you should also be using the zipkin-tracer Rack middleware to generate trace IDs around your requests: https://github.com/twitter/zipkin/tree/master/zipkin-gems/zipkin-tracer
Zipkin tracing headers for HTTP APIs are documented at https://github.com/twitter/zipkin/blob/master/doc/collector-api.md
Usage
Include Faraday::Zipkin::TraceHeaders as a Faraday middleware:
require 'faraday'
require 'faraday-zipkin'
conn = Faraday.new(:url => 'http://localhost:9292/') do |faraday|
# 'service_name' is optional (but recommended)
faraday.use Faraday::Zipkin::TraceHeaders, 'service_name'
# default Faraday stack
faraday.request :url_encoded
faraday.adapter Faraday.default_adapter
end
Note that supplying the service name for the destination service is optional; the tracing will default to a service name derived from the first section of the destination URL (e.g. 'service.example.com' => 'service').
Contributing
- Fork it ( https://github.com/openzipkin/faraday-zipkin/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request