Class: RubyZipkin::RackHandler
- Inherits:
-
Object
- Object
- RubyZipkin::RackHandler
- Defined in:
- lib/ruby-zipkin.rb
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, service_name, scribe_server, scribe_port, uri_filter_list = [], http_header_filter_list = [], scribe_max_buffer = 10, uri_sample_filter_list = {}, sampling_rate = 0.01) ⇒ RackHandler
constructor
A new instance of RackHandler.
Constructor Details
#initialize(app, service_name, scribe_server, scribe_port, uri_filter_list = [], http_header_filter_list = [], scribe_max_buffer = 10, uri_sample_filter_list = {}, sampling_rate = 0.01) ⇒ RackHandler
Returns a new instance of RackHandler.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/ruby-zipkin.rb', line 15 def initialize(app, service_name, scribe_server, scribe_port, uri_filter_list = [], http_header_filter_list = [], scribe_max_buffer = 10, uri_sample_filter_list = {} , sampling_rate = 0.01) @app = app @lock = Mutex.new puts "sampling rate = #{sampling_rate}" puts "uri_sample_filter_list = #{uri_sample_filter_list}" @service_name = service_name @scribe_port = scribe_port @sample_rate = sampling_rate @uri_filter_list = uri_filter_list @http_header_filter_list = http_header_filter_list @scribe = Scribe.new("#{scribe_server}:#{scribe_port}") ::Trace.tracer = ::Trace::ZipkinTracer.new(Scriber.new(@scribe), scribe_max_buffer) end |
Instance Method Details
#call(env) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/ruby-zipkin.rb', line 31 def call(env) begin ::Trace.default_endpoint = ::Trace.default_endpoint.with_service_name(@service_name + "_#{normalized_uri(env['PATH_INFO'])}") ::Trace.sample_rate = @sampling_rate env[ZipkinTraceHeader::PARENT_SPAN_ID] = @spanid env[ZipkinTraceHeader::TRACE_ID] = @tid @status, @headers, @response = @app.call(env) tracing_filter(get_or_create_trace_id2(env), env, @headers) rescue => e #Tracing errors shouldn't block a request. puts "Zipkin error: #{e} \n #{e.backtrace}" raise e end [@status, @headers, @response] end |