oboe 1.4.0.2 → 1.4.1.2
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.
data/lib/oboe/api/logging.rb
CHANGED
@@ -113,7 +113,9 @@ module Oboe
|
|
113
113
|
#
|
114
114
|
# Returns nothing.
|
115
115
|
def log_event(layer, label, event, opts={})
|
116
|
-
|
116
|
+
if layer
|
117
|
+
event.addInfo('Layer', layer.to_s)
|
118
|
+
end
|
117
119
|
event.addInfo('Label', label.to_s)
|
118
120
|
|
119
121
|
opts.each do |k, v|
|
@@ -3,16 +3,19 @@ module Oboe
|
|
3
3
|
module Helpers
|
4
4
|
extend ActiveSupport::Concern if ::Rails::VERSION::MAJOR > 2
|
5
5
|
|
6
|
+
@@rum_xhr_tmpl = File.read(File.dirname(__FILE__) + '/rails/helpers/rum/rum_ajax_header.js.erb')
|
7
|
+
@@rum_hdr_tmpl = File.read(File.dirname(__FILE__) + '/rails/helpers/rum/rum_header.js.erb')
|
8
|
+
@@rum_ftr_tmpl = File.read(File.dirname(__FILE__) + '/rails/helpers/rum/rum_footer.js.erb')
|
9
|
+
|
6
10
|
def oboe_rum_header
|
7
11
|
begin
|
8
12
|
return unless Oboe::Config.rum_id
|
9
13
|
if Oboe.tracing?
|
10
14
|
if request.xhr?
|
11
|
-
|
15
|
+
return raw(ERB.new(@@rum_xhr_tmpl).result)
|
12
16
|
else
|
13
|
-
|
17
|
+
return raw(ERB.new(@@rum_hdr_tmpl).result)
|
14
18
|
end
|
15
|
-
return raw(ERB.new(header_tmpl).result)
|
16
19
|
end
|
17
20
|
rescue Exception => e
|
18
21
|
logger.warn "oboe_rum_header: #{e.message}." if defined?(logger)
|
@@ -26,8 +29,7 @@ module Oboe
|
|
26
29
|
if Oboe.tracing?
|
27
30
|
# Even though the footer template is named xxxx.erb, there are no ERB tags in it so we'll
|
28
31
|
# skip that step for now
|
29
|
-
|
30
|
-
return raw(footer_tmpl)
|
32
|
+
return raw(@@rum_ftr_tmpl)
|
31
33
|
end
|
32
34
|
rescue Exception => e
|
33
35
|
logger.warn "oboe_rum_footer: #{e.message}." if defined?(logger)
|
@@ -20,21 +20,15 @@ module Oboe
|
|
20
20
|
|
21
21
|
def process_action_with_oboe(*args)
|
22
22
|
report_kvs = {
|
23
|
-
'HTTP-Host' => @_request.headers['HTTP_HOST'],
|
24
|
-
:URL => @_request.headers['REQUEST_URI'],
|
25
|
-
:Method => @_request.headers['REQUEST_METHOD'],
|
26
23
|
:Controller => self.class.name,
|
27
24
|
:Action => self.action_name,
|
28
25
|
}
|
29
|
-
|
26
|
+
Oboe::API.log(nil, 'info', report_kvs)
|
30
27
|
|
31
|
-
|
32
|
-
Oboe::API.log('rails', 'info', report_kvs)
|
33
|
-
|
34
|
-
result
|
28
|
+
process_action_without_oboe *args
|
35
29
|
rescue Exception => exception
|
36
30
|
report_kvs[:Status] = 500
|
37
|
-
Oboe::API.log(
|
31
|
+
Oboe::API.log(nil, 'info', report_kvs)
|
38
32
|
raise
|
39
33
|
end
|
40
34
|
|
@@ -71,23 +65,15 @@ if defined?(ActionController::Base) and Oboe::Config[:action_controller][:enable
|
|
71
65
|
|
72
66
|
def perform_action(*arguments)
|
73
67
|
report_kvs = {
|
74
|
-
'HTTP-Host' => @_request.headers['HTTP_HOST'],
|
75
|
-
:URL => @_request.headers['REQUEST_URI'],
|
76
|
-
:Method => @_request.headers['REQUEST_METHOD'],
|
77
68
|
:Controller => @_request.path_parameters['controller'],
|
78
69
|
:Action => @_request.path_parameters['action']
|
79
70
|
}
|
80
|
-
|
71
|
+
Oboe::API.log(nil, 'info', report_kvs)
|
81
72
|
perform_action_without_oboe(*arguments)
|
82
|
-
begin
|
83
|
-
report_kvs[:Status] = @_response.status.to_i
|
84
|
-
rescue
|
85
|
-
end
|
86
|
-
Oboe::API.log('rails', 'info', report_kvs)
|
87
73
|
end
|
88
74
|
|
89
75
|
def rescue_action(exn)
|
90
|
-
Oboe::API.log_exception(
|
76
|
+
Oboe::API.log_exception(nil, exn)
|
91
77
|
rescue_action_without_oboe(exn)
|
92
78
|
end
|
93
79
|
|
@@ -101,3 +87,4 @@ if defined?(ActionController::Base) and Oboe::Config[:action_controller][:enable
|
|
101
87
|
puts "[oboe/loading] Instrumenting actioncontroler" if Oboe::Config[:verbose]
|
102
88
|
end
|
103
89
|
# vim:set expandtab:tabstop=2
|
90
|
+
|
data/lib/oboe/inst/rack.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
# Copyright (c) 2012 by Tracelytics, Inc.
|
2
2
|
# All rights reserved.
|
3
3
|
|
4
|
-
require 'rack'
|
5
|
-
|
6
4
|
module Oboe
|
7
5
|
class Rack
|
8
6
|
attr_reader :app
|
@@ -12,20 +10,35 @@ module Oboe
|
|
12
10
|
end
|
13
11
|
|
14
12
|
def call(env)
|
13
|
+
report_kvs = {}
|
15
14
|
xtrace = env['HTTP_X_TRACE']
|
16
15
|
|
17
|
-
|
18
|
-
|
16
|
+
begin
|
17
|
+
req = ::Rack::Request.new(env)
|
18
|
+
report_kvs[:SampleRate] = Oboe::Config[:sample_rate]
|
19
|
+
report_kvs['HTTP-Host'] = req.host
|
20
|
+
report_kvs['HTTP-Port'] = req.port
|
21
|
+
report_kvs['Query-String'] = req.query_string unless req.query_string.blank?
|
22
|
+
report_kvs[:URL] = req.path
|
23
|
+
report_kvs[:Method] = req.request_method
|
24
|
+
report_kvs['AJAX'] = true if req.xhr?
|
25
|
+
rescue
|
26
|
+
# Discard any potential exceptions. Report whatever we can.
|
27
|
+
end
|
28
|
+
|
29
|
+
result, xtrace = Oboe::API.start_trace('rack', xtrace, report_kvs) do
|
30
|
+
|
31
|
+
status, headers, response = @app.call(env)
|
32
|
+
Oboe::API.log(nil, 'info', { :Status => status })
|
19
33
|
|
20
|
-
|
21
|
-
@app.call(env)
|
34
|
+
[status, headers, response]
|
22
35
|
end
|
23
36
|
rescue Exception => e
|
24
37
|
xtrace = e.instance_variable_get(:@xtrace)
|
25
38
|
raise
|
26
39
|
ensure
|
27
|
-
|
28
|
-
return
|
40
|
+
result[1]['X-Trace'] = xtrace if xtrace
|
41
|
+
return result
|
29
42
|
end
|
30
43
|
end
|
31
44
|
end
|
data/lib/oboe/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oboe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 127
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 4
|
9
|
-
-
|
9
|
+
- 1
|
10
10
|
- 2
|
11
|
-
version: 1.4.
|
11
|
+
version: 1.4.1.2
|
12
12
|
platform: ruby
|
13
13
|
authors:
|
14
14
|
- Tracelytics, Inc.
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2013-
|
19
|
+
date: 2013-04-19 00:00:00 Z
|
20
20
|
dependencies: []
|
21
21
|
|
22
22
|
description: The oboe gem provides AppNeta instrumentation for Ruby and Ruby frameworks.
|