traceview 3.8.0-java → 3.8.1-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/README.md +3 -3
- data/lib/joboe_metal.rb +4 -4
- data/lib/oboe_metal.rb +3 -3
- data/lib/traceview/api/layerinit.rb +2 -2
- data/lib/traceview/api/logging.rb +12 -12
- data/lib/traceview/api/profiling.rb +6 -6
- data/lib/traceview/api/tracing.rb +1 -1
- data/lib/traceview/api/util.rb +1 -1
- data/lib/traceview/base.rb +14 -7
- data/lib/traceview/config.rb +8 -5
- data/lib/traceview/frameworks/padrino/templates.rb +4 -4
- data/lib/traceview/frameworks/rails.rb +2 -2
- data/lib/traceview/frameworks/rails/inst/action_controller.rb +6 -2
- data/lib/traceview/frameworks/rails/inst/action_controller2.rb +4 -2
- data/lib/traceview/frameworks/rails/inst/action_controller3.rb +5 -4
- data/lib/traceview/frameworks/rails/inst/action_controller4.rb +4 -2
- data/lib/traceview/frameworks/rails/inst/action_controller5.rb +22 -11
- data/lib/traceview/frameworks/rails/inst/action_controller5_api.rb +23 -12
- data/lib/traceview/frameworks/sinatra/templates.rb +4 -4
- data/lib/traceview/inst/bunny-client.rb +8 -8
- data/lib/traceview/inst/bunny-consumer.rb +1 -1
- data/lib/traceview/inst/curb.rb +19 -19
- data/lib/traceview/inst/dalli.rb +4 -4
- data/lib/traceview/inst/delayed_job.rb +4 -4
- data/lib/traceview/inst/em-http-request.rb +6 -6
- data/lib/traceview/inst/excon.rb +18 -18
- data/lib/traceview/inst/faraday.rb +13 -13
- data/lib/traceview/inst/http.rb +12 -12
- data/lib/traceview/inst/httpclient.rb +19 -19
- data/lib/traceview/inst/memcache.rb +5 -5
- data/lib/traceview/inst/memcached.rb +4 -4
- data/lib/traceview/inst/mongo.rb +6 -6
- data/lib/traceview/inst/moped.rb +28 -28
- data/lib/traceview/inst/rack.rb +24 -24
- data/lib/traceview/inst/redis.rb +6 -6
- data/lib/traceview/inst/resque.rb +6 -6
- data/lib/traceview/inst/rest-client.rb +4 -4
- data/lib/traceview/inst/sequel.rb +12 -12
- data/lib/traceview/inst/sidekiq-client.rb +3 -3
- data/lib/traceview/inst/sidekiq-worker.rb +3 -3
- data/lib/traceview/inst/twitter-cassandra.rb +17 -17
- data/lib/traceview/inst/typhoeus.rb +13 -13
- data/lib/traceview/method_profiling.rb +2 -2
- data/lib/traceview/ruby.rb +1 -1
- data/lib/traceview/util.rb +4 -4
- data/lib/traceview/version.rb +1 -1
- data/test/frameworks/rails3x_test.rb +105 -0
- data/test/frameworks/rails4x_test.rb +97 -0
- data/test/frameworks/rails5x_api_test.rb +98 -1
- data/test/frameworks/rails5x_test.rb +99 -2
- data/test/profiling/legacy_method_profiling_test.rb +1 -1
- data/test/support/backcompat_test.rb +2 -2
- data/test/support/config_test.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6918ca640b03dacc619fd36064707047f5211b0e
|
4
|
+
data.tar.gz: dae4ef5e2d198a07f2cc74c7f45f177fc64de1e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6852197905e577dc9ba4e4a64d3eda2461cf783f480b215e4c5769e7b89eef4f5633c02b03b699c32f0185ab3dedce0dbcdde011f5369e5dc96b2aa25d69d87b
|
7
|
+
data.tar.gz: 6e6600a968e564575b62cd008424e4574193d24cc07237faab07168f7672374cd27ce69a15638c70249aabd1e624260099aadd140b5e52ec5e3b64cabf14a92b
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,18 @@ https://github.com/appneta/oboe-ruby/releases
|
|
4
4
|
|
5
5
|
Dates in this file are in the format MM/DD/YYYY.
|
6
6
|
|
7
|
+
# traceview 3.8.1
|
8
|
+
|
9
|
+
This patch release includes the following fixes:
|
10
|
+
|
11
|
+
* Use less string literals and more symbols: #168
|
12
|
+
* Fix `alias_method_chain` deprecation under Rails 5: #169
|
13
|
+
|
14
|
+
Pushed to Rubygems:
|
15
|
+
|
16
|
+
https://rubygems.org/gems/traceview/versions/3.8.1
|
17
|
+
https://rubygems.org/gems/traceview/versions/3.8.1-java
|
18
|
+
|
7
19
|
# traceview 3.8.0
|
8
20
|
|
9
21
|
This minor release includes the following new feature:
|
data/README.md
CHANGED
@@ -332,9 +332,9 @@ rake recompile # Rebuild the gem's c extension
|
|
332
332
|
Note: Make sure you have the development package `liboboe0-dev` installed before attempting to compile the C extension.
|
333
333
|
|
334
334
|
```bash
|
335
|
-
|
336
|
-
ii liboboe-dev
|
337
|
-
ii liboboe0
|
335
|
+
>>$ dpkg -l | grep liboboe
|
336
|
+
ii liboboe-dev 1.2.1-trusty1 AppNeta TraceView common library -- development files
|
337
|
+
ii liboboe0 1.2.1-trusty1 AppNeta Traceview common library
|
338
338
|
```
|
339
339
|
|
340
340
|
See [Installing Base Packages on Debian and Ubuntu](https://docs.appneta.com/installation-overview) in the Knowledge Base for details. Our hacker extraordinaire [Rob Salmond](https://github.com/rsalmond) from the support team has even gotten these packages to [run on Gentoo](http://www.appneta.com/blog/unsupported-doesnt-work/)!
|
data/lib/joboe_metal.rb
CHANGED
@@ -66,11 +66,11 @@ module Oboe_metal
|
|
66
66
|
cfg = LayerUtil.getLocalSampleRate(nil, nil)
|
67
67
|
|
68
68
|
if cfg.hasSampleStartFlag
|
69
|
-
TraceView::Config.tracing_mode =
|
69
|
+
TraceView::Config.tracing_mode = :always
|
70
70
|
elsif cfg.hasSampleThroughFlag
|
71
|
-
TraceView::Config.tracing_mode =
|
71
|
+
TraceView::Config.tracing_mode = :through
|
72
72
|
else
|
73
|
-
TraceView::Config.tracing_mode =
|
73
|
+
TraceView::Config.tracing_mode = :never
|
74
74
|
end
|
75
75
|
|
76
76
|
TraceView.sample_rate = cfg.getSampleRate
|
@@ -205,7 +205,7 @@ case Java::ComTracelyticsAgent::Agent.getStatus
|
|
205
205
|
$stderr.puts '=============================================================='
|
206
206
|
$stderr.puts 'TraceView Java Agent not initialized properly.'
|
207
207
|
$stderr.puts 'Possibly misconfigured? Going into no-op mode.'
|
208
|
-
$stderr.puts '
|
208
|
+
$stderr.puts 'https://docs.appneta.com/installing-jruby-instrumentation'
|
209
209
|
$stderr.puts '=============================================================='
|
210
210
|
|
211
211
|
when Java::ComTracelyticsAgent::Agent::AgentStatus::UNINITIALIZED
|
data/lib/oboe_metal.rb
CHANGED
@@ -118,9 +118,9 @@ module TraceView
|
|
118
118
|
return false if TraceView.never? || (TraceView.through? && !opts.key?('X-TV-Meta'))
|
119
119
|
|
120
120
|
# Assure defaults since SWIG enforces Strings
|
121
|
-
layer = opts[:layer] ? opts[:layer].to_s.strip
|
122
|
-
xtrace = opts[:xtrace] ? opts[:xtrace].to_s.strip
|
123
|
-
tv_meta = opts['X-TV-Meta'] ? opts['X-TV-Meta'].to_s.strip
|
121
|
+
layer = opts[:layer] ? opts[:layer].to_s.strip.freeze : TV_STR_BLANK
|
122
|
+
xtrace = opts[:xtrace] ? opts[:xtrace].to_s.strip : TV_STR_BLANK
|
123
|
+
tv_meta = opts['X-TV-Meta'] ? opts['X-TV-Meta'].to_s.strip : TV_STR_BLANK
|
124
124
|
|
125
125
|
rv = TraceView::Context.sampleRequest(layer, xtrace, tv_meta)
|
126
126
|
|
@@ -10,7 +10,7 @@ module TraceView
|
|
10
10
|
# installed, as well as the version of instrumentation and version of
|
11
11
|
# layer.
|
12
12
|
#
|
13
|
-
def report_init(layer =
|
13
|
+
def report_init(layer = :rack)
|
14
14
|
# Don't send __Init in development, test or if the gem
|
15
15
|
# isn't fully loaded (e.g. missing c-extension)
|
16
16
|
return if %w(development test).include?(ENV['RACK_ENV']) ||
|
@@ -41,7 +41,7 @@ module TraceView
|
|
41
41
|
'removed in a subsequent version.'
|
42
42
|
|
43
43
|
saved_mode = TraceView::Config[:tracing_mode]
|
44
|
-
TraceView::Config[:tracing_mode] =
|
44
|
+
TraceView::Config[:tracing_mode] = :always
|
45
45
|
yield
|
46
46
|
ensure
|
47
47
|
TraceView::Config[:tracing_mode] = saved_mode
|
@@ -68,7 +68,7 @@ module TraceView
|
|
68
68
|
:Backtrace => exn.backtrace.join("\r\n"))
|
69
69
|
|
70
70
|
exn.instance_variable_set(:@oboe_logged, true)
|
71
|
-
log(layer,
|
71
|
+
log(layer, :error, kvs)
|
72
72
|
end
|
73
73
|
|
74
74
|
##
|
@@ -118,7 +118,7 @@ module TraceView
|
|
118
118
|
elsif opts.key?('Force')
|
119
119
|
# Forced tracing: used by __Init reporting
|
120
120
|
opts[:TraceOrigin] = :forced
|
121
|
-
log_event(layer,
|
121
|
+
log_event(layer, :entry, TraceView::Context.startTrace, opts)
|
122
122
|
|
123
123
|
elsif TraceView.sample?(opts.merge(:layer => layer, :xtrace => xtrace))
|
124
124
|
# Probablistic tracing of a subset of requests based off of
|
@@ -132,7 +132,7 @@ module TraceView
|
|
132
132
|
opts[:TraceOrigin] = :always_sampled
|
133
133
|
end
|
134
134
|
|
135
|
-
log_event(layer,
|
135
|
+
log_event(layer, :entry, TraceView::Context.startTrace, opts)
|
136
136
|
end
|
137
137
|
end
|
138
138
|
|
@@ -152,7 +152,7 @@ module TraceView
|
|
152
152
|
def log_end(layer, opts = {})
|
153
153
|
return unless TraceView.loaded
|
154
154
|
|
155
|
-
log_event(layer,
|
155
|
+
log_event(layer, :exit, TraceView::Context.createEvent, opts)
|
156
156
|
xtrace = TraceView::Context.toString
|
157
157
|
TraceView::Context.clear unless TraceView.has_incoming_context?
|
158
158
|
xtrace
|
@@ -177,8 +177,8 @@ module TraceView
|
|
177
177
|
def log_entry(layer, kvs = {}, op = nil)
|
178
178
|
return unless TraceView.loaded
|
179
179
|
|
180
|
-
TraceView.layer_op = op if op
|
181
|
-
log_event(layer,
|
180
|
+
TraceView.layer_op = op.to_sym if op
|
181
|
+
log_event(layer, :entry, TraceView::Context.createEvent, kvs)
|
182
182
|
end
|
183
183
|
|
184
184
|
##
|
@@ -199,7 +199,7 @@ module TraceView
|
|
199
199
|
def log_info(layer, kvs = {})
|
200
200
|
return unless TraceView.loaded
|
201
201
|
|
202
|
-
log_event(layer,
|
202
|
+
log_event(layer, :info, TraceView::Context.createEvent, kvs)
|
203
203
|
end
|
204
204
|
|
205
205
|
##
|
@@ -222,7 +222,7 @@ module TraceView
|
|
222
222
|
return unless TraceView.loaded
|
223
223
|
|
224
224
|
TraceView.layer_op = nil if op
|
225
|
-
log_event(layer,
|
225
|
+
log_event(layer, :exit, TraceView::Context.createEvent, kvs)
|
226
226
|
end
|
227
227
|
|
228
228
|
##
|
@@ -247,11 +247,11 @@ module TraceView
|
|
247
247
|
def log_event(layer, label, event, opts = {})
|
248
248
|
return unless TraceView.loaded
|
249
249
|
|
250
|
-
event.addInfo(
|
251
|
-
event.addInfo(
|
250
|
+
event.addInfo(TV_STR_LAYER, layer.to_s.freeze) if layer
|
251
|
+
event.addInfo(TV_STR_LABEL, label.to_s.freeze)
|
252
252
|
|
253
|
-
TraceView.layer = layer if label ==
|
254
|
-
TraceView.layer = nil
|
253
|
+
TraceView.layer = layer.to_sym if label == :entry
|
254
|
+
TraceView.layer = nil if label == :exit
|
255
255
|
|
256
256
|
opts.each do |k, v|
|
257
257
|
value = nil
|
@@ -30,7 +30,7 @@ module TraceView
|
|
30
30
|
report_kvs[:ProfileName] ||= profile_name
|
31
31
|
report_kvs[:Backtrace] = TraceView::API.backtrace if with_backtrace
|
32
32
|
|
33
|
-
TraceView::API.log(nil,
|
33
|
+
TraceView::API.log(nil, :profile_entry, report_kvs)
|
34
34
|
|
35
35
|
begin
|
36
36
|
yield
|
@@ -42,7 +42,7 @@ module TraceView
|
|
42
42
|
exit_kvs[:Language] = :ruby
|
43
43
|
exit_kvs[:ProfileName] = report_kvs[:ProfileName]
|
44
44
|
|
45
|
-
TraceView::API.log(nil,
|
45
|
+
TraceView::API.log(nil, :profile_exit, exit_kvs)
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
@@ -133,8 +133,8 @@ module TraceView
|
|
133
133
|
profile_wrapper(without_traceview, report_kvs, opts, *args, &block)
|
134
134
|
end
|
135
135
|
|
136
|
-
alias_method without_traceview,
|
137
|
-
alias_method
|
136
|
+
alias_method without_traceview, method.to_s
|
137
|
+
alias_method method.to_s, with_traceview
|
138
138
|
end
|
139
139
|
elsif class_method
|
140
140
|
klass.define_singleton_method(with_traceview) do |*args, &block|
|
@@ -142,8 +142,8 @@ module TraceView
|
|
142
142
|
end
|
143
143
|
|
144
144
|
klass.singleton_class.class_eval do
|
145
|
-
alias_method without_traceview,
|
146
|
-
alias_method
|
145
|
+
alias_method without_traceview, method.to_s
|
146
|
+
alias_method method.to_s, with_traceview
|
147
147
|
end
|
148
148
|
end
|
149
149
|
true
|
data/lib/traceview/api/util.rb
CHANGED
@@ -17,7 +17,7 @@ module TraceView
|
|
17
17
|
#
|
18
18
|
# Return a boolean indicating whether or not key is reserved.
|
19
19
|
def valid_key?(key)
|
20
|
-
|
20
|
+
![:Label, :Layer, :Edge, :Timestamp, :Timestamp_u].include?(key.to_sym)
|
21
21
|
end
|
22
22
|
|
23
23
|
# Internal: Get the current backtrace.
|
data/lib/traceview/base.rb
CHANGED
@@ -22,6 +22,10 @@ SAMPLE_SOURCE_MASK = 0b1111000000000000000000000000
|
|
22
22
|
ZERO_SAMPLE_RATE_MASK = 0b1111000000000000000000000000
|
23
23
|
ZERO_SAMPLE_SOURCE_MASK = 0b0000111111111111111111111111
|
24
24
|
|
25
|
+
TV_STR_BLANK = ''.freeze
|
26
|
+
TV_STR_LAYER = 'Layer'.freeze
|
27
|
+
TV_STR_LABEL = 'Label'.freeze
|
28
|
+
|
25
29
|
##
|
26
30
|
# This module is the base module for the various implementations of TraceView reporting.
|
27
31
|
# Current variations as of 2014-09-10 are a c-extension, JRuby (using TraceView Java
|
@@ -111,7 +115,7 @@ module TraceViewBase
|
|
111
115
|
# operation tracing or one instrumented operation calling another.
|
112
116
|
#
|
113
117
|
def tracing_layer?(layer)
|
114
|
-
TraceView.layer == layer
|
118
|
+
TraceView.layer == layer.to_sym
|
115
119
|
end
|
116
120
|
|
117
121
|
##
|
@@ -121,13 +125,16 @@ module TraceViewBase
|
|
121
125
|
# operation being traced. This is used in cases of recursive
|
122
126
|
# operation tracing or one instrumented operation calling another.
|
123
127
|
#
|
128
|
+
# <operation> can be a single symbol or an array of symbols that
|
129
|
+
# will be checked against.
|
130
|
+
#
|
124
131
|
# In such cases, we only want to trace the outermost operation.
|
125
132
|
#
|
126
133
|
def tracing_layer_op?(operation)
|
127
134
|
if operation.is_a?(Array)
|
128
135
|
return operation.include?(TraceView.layer_op)
|
129
136
|
else
|
130
|
-
return TraceView.layer_op == operation
|
137
|
+
return TraceView.layer_op == operation.to_sym
|
131
138
|
end
|
132
139
|
end
|
133
140
|
|
@@ -150,7 +157,7 @@ module TraceViewBase
|
|
150
157
|
# False otherwise
|
151
158
|
#
|
152
159
|
def always?
|
153
|
-
TraceView::Config[:tracing_mode].
|
160
|
+
TraceView::Config[:tracing_mode].to_sym == :always
|
154
161
|
end
|
155
162
|
|
156
163
|
##
|
@@ -158,7 +165,7 @@ module TraceViewBase
|
|
158
165
|
# False otherwise
|
159
166
|
#
|
160
167
|
def never?
|
161
|
-
TraceView::Config[:tracing_mode].
|
168
|
+
TraceView::Config[:tracing_mode].to_sym == :never
|
162
169
|
end
|
163
170
|
|
164
171
|
##
|
@@ -166,7 +173,7 @@ module TraceViewBase
|
|
166
173
|
# False otherwise
|
167
174
|
#
|
168
175
|
def passthrough?
|
169
|
-
|
176
|
+
[:always, :through].include?(TraceView::Config[:tracing_mode])
|
170
177
|
end
|
171
178
|
|
172
179
|
##
|
@@ -174,7 +181,7 @@ module TraceViewBase
|
|
174
181
|
# False otherwise
|
175
182
|
#
|
176
183
|
def through?
|
177
|
-
TraceView::Config[:tracing_mode].
|
184
|
+
TraceView::Config[:tracing_mode].to_sym == :through
|
178
185
|
end
|
179
186
|
|
180
187
|
##
|
@@ -240,7 +247,7 @@ module TraceViewBase
|
|
240
247
|
# or not
|
241
248
|
#
|
242
249
|
def framework?
|
243
|
-
defined?(::Rails)
|
250
|
+
defined?(::Rails) || defined?(::Sinatra) || defined?(::Padrino) || defined?(::Grape)
|
244
251
|
end
|
245
252
|
|
246
253
|
##
|
data/lib/traceview/config.rb
CHANGED
@@ -43,8 +43,8 @@ module TraceView
|
|
43
43
|
TraceView::Config[:em_http_request][:enabled] = false
|
44
44
|
|
45
45
|
# Set collect_backtraces defaults
|
46
|
-
TraceView::Config[:action_controller][:collect_backtraces] =
|
47
|
-
TraceView::Config[:action_controller_api][:collect_backtraces] =
|
46
|
+
TraceView::Config[:action_controller][:collect_backtraces] = false
|
47
|
+
TraceView::Config[:action_controller_api][:collect_backtraces] = false
|
48
48
|
TraceView::Config[:active_record][:collect_backtraces] = true
|
49
49
|
TraceView::Config[:bunnyclient][:collect_backtraces] = false
|
50
50
|
TraceView::Config[:bunnyconsumer][:collect_backtraces] = false
|
@@ -190,12 +190,12 @@ module TraceView
|
|
190
190
|
# Environment support for OpenShift.
|
191
191
|
if ENV.key?('OPENSHIFT_TRACEVIEW_TLYZER_IP')
|
192
192
|
# We're running on OpenShift
|
193
|
-
@@config[:tracing_mode] =
|
193
|
+
@@config[:tracing_mode] = :always
|
194
194
|
@@config[:reporter_host] = ENV['OPENSHIFT_TRACEVIEW_TLYZER_IP']
|
195
195
|
@@config[:reporter_port] = ENV['OPENSHIFT_TRACEVIEW_TLYZER_PORT']
|
196
196
|
else
|
197
197
|
# The default configuration
|
198
|
-
@@config[:tracing_mode] =
|
198
|
+
@@config[:tracing_mode] = :through
|
199
199
|
@@config[:reporter_host] = '127.0.0.1'
|
200
200
|
@@config[:reporter_port] = '7831'
|
201
201
|
end
|
@@ -265,7 +265,10 @@ module TraceView
|
|
265
265
|
|
266
266
|
# Update liboboe if updating :tracing_mode
|
267
267
|
if key == :tracing_mode
|
268
|
-
TraceView.set_tracing_mode(value) if TraceView.loaded
|
268
|
+
TraceView.set_tracing_mode(value.to_sym) if TraceView.loaded
|
269
|
+
|
270
|
+
# Make sure that the mode is stored as a symbol
|
271
|
+
@@config[key.to_sym] = value.to_sym
|
269
272
|
end
|
270
273
|
end
|
271
274
|
|
@@ -19,13 +19,13 @@ module TraceView
|
|
19
19
|
report_kvs[:template] = engine
|
20
20
|
end
|
21
21
|
|
22
|
-
if TraceView.tracing_layer_op?(
|
22
|
+
if TraceView.tracing_layer_op?(:render)
|
23
23
|
# For recursive calls to :render (for sub-partials and layouts),
|
24
24
|
# use method profiling.
|
25
25
|
begin
|
26
26
|
report_kvs[:FunctionName] = :render
|
27
27
|
report_kvs[:Class] = :Rendering
|
28
|
-
report_kvs[:Module] =
|
28
|
+
report_kvs[:Module] = :Padrino
|
29
29
|
report_kvs[:File] = __FILE__
|
30
30
|
report_kvs[:LineNumber] = __LINE__
|
31
31
|
rescue StandardError => e
|
@@ -41,12 +41,12 @@ module TraceView
|
|
41
41
|
# back on exit (a limitation of the TraceView::API.trace
|
42
42
|
# block method) This removes the need for an info
|
43
43
|
# event to send additonal KVs
|
44
|
-
::TraceView::API.log_entry(
|
44
|
+
::TraceView::API.log_entry(:render, {}, :render)
|
45
45
|
|
46
46
|
begin
|
47
47
|
render_without_traceview(engine, data, options, locals, &block)
|
48
48
|
ensure
|
49
|
-
::TraceView::API.log_exit(
|
49
|
+
::TraceView::API.log_exit(:render, report_kvs)
|
50
50
|
end
|
51
51
|
end
|
52
52
|
else
|
@@ -43,9 +43,9 @@ module TraceView
|
|
43
43
|
# Force load the TraceView Rails initializer if there is one
|
44
44
|
# Prefer traceview.rb but give priority to the legacy tracelytics.rb if it exists
|
45
45
|
if ::Rails::VERSION::MAJOR > 2
|
46
|
-
rails_root =
|
46
|
+
rails_root = ::Rails.root.to_s
|
47
47
|
else
|
48
|
-
rails_root =
|
48
|
+
rails_root = RAILS_ROOT.to_s
|
49
49
|
end
|
50
50
|
|
51
51
|
#
|
@@ -76,14 +76,18 @@ end
|
|
76
76
|
if defined?(ActionController::Base) && TraceView::Config[:action_controller][:enabled]
|
77
77
|
TraceView.logger.info '[traceview/loading] Instrumenting actioncontroller' if TraceView::Config[:verbose]
|
78
78
|
require "traceview/frameworks/rails/inst/action_controller#{Rails::VERSION::MAJOR}"
|
79
|
-
::
|
79
|
+
if Rails::VERSION::MAJOR >= 5
|
80
|
+
::ActionController::Base.send(:prepend, ::TraceView::Inst::ActionController)
|
81
|
+
else
|
82
|
+
::TraceView::Util.send_include(::ActionController::Base, TraceView::Inst::ActionController)
|
83
|
+
end
|
80
84
|
end
|
81
85
|
|
82
86
|
# ActionController::API (Rails 5+)
|
83
87
|
if defined?(ActionController::API) && TraceView::Config[:action_controller_api][:enabled]
|
84
88
|
TraceView.logger.info '[traceview/loading] Instrumenting actioncontroller api' if TraceView::Config[:verbose]
|
85
89
|
require "traceview/frameworks/rails/inst/action_controller#{Rails::VERSION::MAJOR}_api"
|
86
|
-
::
|
90
|
+
::ActionController::API.send(:prepend, ::TraceView::Inst::ActionControllerAPI)
|
87
91
|
end
|
88
92
|
|
89
93
|
# vim:set expandtab:tabstop=2
|
@@ -31,11 +31,13 @@ module TraceView
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def perform_action_with_traceview(*arguments)
|
34
|
-
|
34
|
+
kvs = {
|
35
35
|
:Controller => @_request.path_parameters['controller'],
|
36
36
|
:Action => @_request.path_parameters['action']
|
37
37
|
}
|
38
|
-
TraceView::API.
|
38
|
+
kvs[:Backtrace] = TraceView::API.backtrace if TraceView::Config[:action_controller][:collect_backtraces]
|
39
|
+
|
40
|
+
TraceView::API.log(nil, 'info', kvs)
|
39
41
|
perform_action_without_traceview(*arguments)
|
40
42
|
end
|
41
43
|
|
@@ -32,16 +32,17 @@ module TraceView
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def process_action_with_traceview(*args)
|
35
|
-
|
35
|
+
kvs = {
|
36
36
|
:Controller => self.class.name,
|
37
37
|
:Action => action_name,
|
38
38
|
}
|
39
|
-
TraceView::API.
|
39
|
+
kvs[:Backtrace] = TraceView::API.backtrace if TraceView::Config[:action_controller][:collect_backtraces]
|
40
|
+
TraceView::API.log(nil, 'info', kvs)
|
40
41
|
|
41
42
|
process_action_without_traceview(*args)
|
42
43
|
rescue Exception
|
43
|
-
|
44
|
-
TraceView::API.log(nil, 'info',
|
44
|
+
kvs[:Status] = 500
|
45
|
+
TraceView::API.log(nil, 'info', kvs)
|
45
46
|
raise
|
46
47
|
end
|
47
48
|
end
|