Class: Datadog::Contrib::Faraday::Middleware
- Inherits:
-
Faraday::Middleware
- Object
- Faraday::Middleware
- Datadog::Contrib::Faraday::Middleware
- Defined in:
- lib/ddtrace/contrib/faraday/middleware.rb
Overview
Middleware implements a faraday-middleware for ddtrace instrumentation
Constant Summary collapse
- DEFAULT_ERROR_HANDLER =
lambda do |env| Ext::HTTP::ERROR_RANGE.cover?(env[:status]) end
- DEFAULT_OPTIONS =
{ distributed_tracing: false, split_by_domain: false, error_handler: DEFAULT_ERROR_HANDLER }.freeze
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, options = {}) ⇒ Middleware
constructor
A new instance of Middleware.
Constructor Details
#initialize(app, options = {}) ⇒ Middleware
Returns a new instance of Middleware.
21 22 23 24 |
# File 'lib/ddtrace/contrib/faraday/middleware.rb', line 21 def initialize(app, = {}) super(app) @options = DEFAULT_OPTIONS.merge() end |
Instance Method Details
#call(env) ⇒ Object
26 27 28 29 30 31 32 |
# File 'lib/ddtrace/contrib/faraday/middleware.rb', line 26 def call(env) dd_pin.tracer.trace(SERVICE) do |span| annotate!(span, env) propagate!(span, env) if [:distributed_tracing] app.call(env).on_complete { |resp| handle_response(span, resp) } end end |