class OpenTelemetry::Adapters::Faraday::Middlewares::TracerMiddleware
TracerMiddleware
propagates context and instruments Faraday
requests by way of its middlware system
Constants
- HTTP_METHODS_SYMBOL_TO_STRING
Attributes
app[R]
Public Instance Methods
call(env)
click to toggle source
# File lib/opentelemetry/adapters/faraday/middlewares/tracer_middleware.rb, line 26 def call(env) http_method = HTTP_METHODS_SYMBOL_TO_STRING[env.method] tracer.in_span( "HTTP #{http_method}", attributes: { 'component' => 'http', 'http.method' => http_method, 'http.url' => env.url.to_s }, kind: :client ) do |span| OpenTelemetry.propagation.http.inject(env.request_headers) app.call(env).on_complete { |resp| trace_response(span, resp) } end end
Private Instance Methods
trace_response(span, response)
click to toggle source
# File lib/opentelemetry/adapters/faraday/middlewares/tracer_middleware.rb, line 52 def trace_response(span, response) span.set_attribute('http.status_code', response.status) span.set_attribute('http.status_text', response.reason_phrase) span.status = OpenTelemetry::Trace::Status.http_to_status( response.status ) end
tracer()
click to toggle source
# File lib/opentelemetry/adapters/faraday/middlewares/tracer_middleware.rb, line 48 def tracer Faraday::Adapter.instance.tracer end