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
11
11
class Railtie < ::Rails ::Railtie
12
12
config . before_initialize do |app |
13
13
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
-
26
14
app . middleware . insert_before (
27
15
0 ,
28
- *rack_middleware_args
16
+ *OpenTelemetry :: Instrumentation :: Rack :: Instrumentation . instance . middleware_args
29
17
)
30
18
end
31
19
end
Original file line number Diff line number Diff line change @@ -32,6 +32,11 @@ class Instrumentation < OpenTelemetry::Instrumentation::Base
32
32
# This option is only valid for applications using Rack 2.0 or greater
33
33
option :use_rack_events , default : true , validate : :boolean
34
34
35
+ def middleware_args
36
+ patch_type = determine_semconv
37
+ send ( :"middleware_args_#{ patch_type } " )
38
+ end
39
+
35
40
# Temporary Helper for Sinatra and ActionPack middleware to use during installation
36
41
#
37
42
# @example Default usage
@@ -40,16 +45,14 @@ class Instrumentation < OpenTelemetry::Instrumentation::Base
40
45
# run lambda { |_arg| [200, { 'Content-Type' => 'text/plain' }, body] }
41
46
# end
42
47
# @return [Array] consisting of a middleware and arguments used in rack builders
43
- def middleware_args
48
+ def middleware_args_old
44
49
if config . fetch ( :use_rack_events , false ) == true && defined? ( OpenTelemetry ::Instrumentation ::Rack ::Middlewares ::Old ::EventHandler )
45
50
[ ::Rack ::Events , [ OpenTelemetry ::Instrumentation ::Rack ::Middlewares ::Old ::EventHandler . new ] ]
46
51
else
47
52
[ OpenTelemetry ::Instrumentation ::Rack ::Middlewares ::Old ::TracerMiddleware ]
48
53
end
49
54
end
50
55
51
- alias middleware_args_old middleware_args
52
-
53
56
def middleware_args_dup
54
57
if config . fetch ( :use_rack_events , false ) == true && defined? ( OpenTelemetry ::Instrumentation ::Rack ::Middlewares ::Dup ::EventHandler )
55
58
[ ::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
51
51
end
52
52
53
53
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 ]
67
55
app . use ( Middlewares ::TracerMiddleware )
68
56
end
69
57
end
Original file line number Diff line number Diff line change @@ -219,7 +219,7 @@ class CustomError < StandardError; end
219
219
let ( :app ) do
220
220
apps_to_build = apps
221
221
Rack ::Builder . new do
222
- use ( *OpenTelemetry ::Instrumentation ::Rack ::Instrumentation . instance . middleware_args_dup )
222
+ use ( *OpenTelemetry ::Instrumentation ::Rack ::Instrumentation . instance . middleware_args )
223
223
224
224
apps_to_build . each do |root , app |
225
225
map root do
Original file line number Diff line number Diff line change @@ -199,7 +199,7 @@ class CustomError < StandardError; end
199
199
let ( :app ) do
200
200
apps_to_build = apps
201
201
Rack ::Builder . new do
202
- use ( *OpenTelemetry ::Instrumentation ::Rack ::Instrumentation . instance . middleware_args_stable )
202
+ use ( *OpenTelemetry ::Instrumentation ::Rack ::Instrumentation . instance . middleware_args )
203
203
204
204
apps_to_build . each do |root , app |
205
205
map root do
You can’t perform that action at this time.
0 commit comments