class MicroscopeTracer::FaradayMiddleware

Public Class Methods

new(app,service_name) click to toggle source
Calls superclass method
# File lib/microscope_tracer/faraday_middleware.rb, line 7
def initialize(app,service_name)
  @trace_logger = TraceLogger.new(service_name)
  super(app)
end

Public Instance Methods

call(env) click to toggle source
# File lib/microscope_tracer/faraday_middleware.rb, line 12
def call(env)
  span = Span.lookup_for_this_request
  child_span_id = Span.generate_unique_id

  Headers.add_client_request_headers(env.request_headers,span,child_span_id)

  started_at = Time.now

  @trace_logger.log_client_start(span,child_span_id)


  @app.call(env).on_complete do |response_env|
    duration = Time.now - started_at
    @trace_logger.log_client_end(span,child_span_id,duration) 
  end
end