File tree Expand file tree Collapse file tree 5 files changed +10
-31
lines changed
action_pack/lib/opentelemetry/instrumentation/action_pack
rack/lib/opentelemetry/instrumentation/rack
lib/opentelemetry/instrumentation/sinatra
test/opentelemetry/instrumentation Expand file tree Collapse file tree 5 files changed +10
-31
lines changed Original file line number Diff line number Diff line change @@ -11,21 +11,9 @@ module ActionPack
1111 class Railtie < ::Rails ::Railtie
1212 config . before_initialize do |app |
1313 OpenTelemetry ::Instrumentation ::Rack ::Instrumentation . instance . install ( { } )
14-
15- stability_opt_in = ENV . fetch ( 'OTEL_SEMCONV_STABILITY_OPT_IN' , '' )
16- values = stability_opt_in . split ( ',' ) . map ( &:strip )
17-
18- rack_middleware_args = if values . include? ( 'http/dup' )
19- OpenTelemetry ::Instrumentation ::Rack ::Instrumentation . instance . middleware_args_dup
20- elsif values . include? ( 'http' )
21- OpenTelemetry ::Instrumentation ::Rack ::Instrumentation . instance . middleware_args_stable
22- else
23- OpenTelemetry ::Instrumentation ::Rack ::Instrumentation . instance . middleware_args
24- end
25-
2614 app . middleware . insert_before (
2715 0 ,
28- *rack_middleware_args
16+ *OpenTelemetry :: Instrumentation :: Rack :: Instrumentation . instance . middleware_args
2917 )
3018 end
3119 end
Original file line number Diff line number Diff line change @@ -32,6 +32,11 @@ class Instrumentation < OpenTelemetry::Instrumentation::Base
3232 # This option is only valid for applications using Rack 2.0 or greater
3333 option :use_rack_events , default : true , validate : :boolean
3434
35+ def middleware_args
36+ patch_type = determine_semconv
37+ send ( :"middleware_args_#{ patch_type } " )
38+ end
39+
3540 # Temporary Helper for Sinatra and ActionPack middleware to use during installation
3641 #
3742 # @example Default usage
@@ -40,16 +45,14 @@ class Instrumentation < OpenTelemetry::Instrumentation::Base
4045 # run lambda { |_arg| [200, { 'Content-Type' => 'text/plain' }, body] }
4146 # end
4247 # @return [Array] consisting of a middleware and arguments used in rack builders
43- def middleware_args
48+ def middleware_args_old
4449 if config . fetch ( :use_rack_events , false ) == true && defined? ( OpenTelemetry ::Instrumentation ::Rack ::Middlewares ::Old ::EventHandler )
4550 [ ::Rack ::Events , [ OpenTelemetry ::Instrumentation ::Rack ::Middlewares ::Old ::EventHandler . new ] ]
4651 else
4752 [ OpenTelemetry ::Instrumentation ::Rack ::Middlewares ::Old ::TracerMiddleware ]
4853 end
4954 end
5055
51- alias middleware_args_old middleware_args
52-
5356 def middleware_args_dup
5457 if config . fetch ( :use_rack_events , false ) == true && defined? ( OpenTelemetry ::Instrumentation ::Rack ::Middlewares ::Dup ::EventHandler )
5558 [ ::Rack ::Events , [ OpenTelemetry ::Instrumentation ::Rack ::Middlewares ::Dup ::EventHandler . new ] ]
Original file line number Diff line number Diff line change @@ -51,19 +51,7 @@ class Instrumentation < OpenTelemetry::Instrumentation::Base
5151 end
5252
5353 def install_middleware ( app )
54- if config [ :install_rack ]
55- stability_opt_in = ENV . fetch ( 'OTEL_SEMCONV_STABILITY_OPT_IN' , '' )
56- values = stability_opt_in . split ( ',' ) . map ( &:strip )
57-
58- if values . include? ( 'http/dup' )
59- app . use ( *OpenTelemetry ::Instrumentation ::Rack ::Instrumentation . instance . middleware_args_dup )
60- elsif values . include? ( 'http' )
61- app . use ( *OpenTelemetry ::Instrumentation ::Rack ::Instrumentation . instance . middleware_args_stable )
62- else
63- app . use ( *OpenTelemetry ::Instrumentation ::Rack ::Instrumentation . instance . middleware_args )
64- end
65- end
66-
54+ app . use ( *OpenTelemetry ::Instrumentation ::Rack ::Instrumentation . instance . middleware_args ) if config [ :install_rack ]
6755 app . use ( Middlewares ::TracerMiddleware )
6856 end
6957 end
Original file line number Diff line number Diff line change @@ -219,7 +219,7 @@ class CustomError < StandardError; end
219219 let ( :app ) do
220220 apps_to_build = apps
221221 Rack ::Builder . new do
222- use ( *OpenTelemetry ::Instrumentation ::Rack ::Instrumentation . instance . middleware_args_dup )
222+ use ( *OpenTelemetry ::Instrumentation ::Rack ::Instrumentation . instance . middleware_args )
223223
224224 apps_to_build . each do |root , app |
225225 map root do
Original file line number Diff line number Diff line change @@ -199,7 +199,7 @@ class CustomError < StandardError; end
199199 let ( :app ) do
200200 apps_to_build = apps
201201 Rack ::Builder . new do
202- use ( *OpenTelemetry ::Instrumentation ::Rack ::Instrumentation . instance . middleware_args_stable )
202+ use ( *OpenTelemetry ::Instrumentation ::Rack ::Instrumentation . instance . middleware_args )
203203
204204 apps_to_build . each do |root , app |
205205 map root do
You can’t perform that action at this time.
0 commit comments