Class: OpenTelemetry::Instrumentation::Rack::Instrumentation

Inherits:
Base
  • Object
show all
Defined in:
lib/opentelemetry/instrumentation/rack/instrumentation.rb

Overview

The Instrumentation class contains logic to detect and install the Rack instrumentation

Instance Method Summary collapse

Instance Method Details

#middleware_argsObject



35
36
37
38
# File 'lib/opentelemetry/instrumentation/rack/instrumentation.rb', line 35

def middleware_args
  patch_type = determine_semconv
  send(:"middleware_args_#{patch_type}")
end

#middleware_args_dupObject



56
57
58
59
60
61
62
# File 'lib/opentelemetry/instrumentation/rack/instrumentation.rb', line 56

def middleware_args_dup
  if config.fetch(:use_rack_events, false) == true && defined?(OpenTelemetry::Instrumentation::Rack::Middlewares::Dup::EventHandler)
    [::Rack::Events, [OpenTelemetry::Instrumentation::Rack::Middlewares::Dup::EventHandler.new]]
  else
    [OpenTelemetry::Instrumentation::Rack::Middlewares::Dup::TracerMiddleware]
  end
end

#middleware_args_oldArray

Temporary Helper for Sinatra and ActionPack middleware to use during installation

Examples:

Default usage

Rack::Builder.new do
  use *OpenTelemetry::Instrumentation::Rack::Instrumentation.instance.middleware_args
  run lambda { |_arg| [200, { 'Content-Type' => 'text/plain' }, body] }
end

Returns:

  • (Array)

    consisting of a middleware and arguments used in rack builders



48
49
50
51
52
53
54
# File 'lib/opentelemetry/instrumentation/rack/instrumentation.rb', line 48

def middleware_args_old
  if config.fetch(:use_rack_events, false) == true && defined?(OpenTelemetry::Instrumentation::Rack::Middlewares::Old::EventHandler)
    [::Rack::Events, [OpenTelemetry::Instrumentation::Rack::Middlewares::Old::EventHandler.new]]
  else
    [OpenTelemetry::Instrumentation::Rack::Middlewares::Old::TracerMiddleware]
  end
end

#middleware_args_stableObject



64
65
66
67
68
69
70
# File 'lib/opentelemetry/instrumentation/rack/instrumentation.rb', line 64

def middleware_args_stable
  if config.fetch(:use_rack_events, false) == true && defined?(OpenTelemetry::Instrumentation::Rack::Middlewares::Stable::EventHandler)
    [::Rack::Events, [OpenTelemetry::Instrumentation::Rack::Middlewares::Stable::EventHandler.new]]
  else
    [OpenTelemetry::Instrumentation::Rack::Middlewares::Stable::TracerMiddleware]
  end
end