oboe-heroku 0.8.0.27.beta2 → 0.9.0.1
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 +7 -0
- data/lib/base.rb +58 -0
- data/lib/heroku_metal.rb +45 -33
- data/lib/oboe-heroku/version.rb +2 -2
- data/lib/oboe-heroku.rb +12 -7
- data/oboe-heroku.gemspec +1 -1
- metadata +17 -24
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: fa6cde0325de70e2f6e7218a1c9f4268f136834a
|
4
|
+
data.tar.gz: 38e42a03e506dc439db13cc4ef2535d1dacef956
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 35790a7bb3634e1750299e97451bea1f3be21853dac3d9cd94ed0cfe2dff50d448a6a4fc445e6d7a3cf222d22e783d5b215fe501ad0bb44d286a1a6b9fcceed6
|
7
|
+
data.tar.gz: 9365f4ac4a3c1942e9d512a28811c62b8200ad4567f69c83f866de7faf894b0ed21f1940aa7030f02f4479ec9f489da12dd00610caa6ab3e7160f069e734812c
|
data/lib/base.rb
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
# Copyright (c) 2013 AppNeta, Inc.
|
2
|
+
# All rights reserved.
|
3
|
+
|
4
|
+
module OboeBase
|
5
|
+
attr_accessor :reporter
|
6
|
+
attr_accessor :loaded
|
7
|
+
|
8
|
+
def self.included(cls)
|
9
|
+
self.loaded = true
|
10
|
+
end
|
11
|
+
|
12
|
+
def always?
|
13
|
+
Oboe::Config[:tracing_mode].to_s == "always"
|
14
|
+
end
|
15
|
+
|
16
|
+
def never?
|
17
|
+
Oboe::Config[:tracing_mode].to_s == "never"
|
18
|
+
end
|
19
|
+
|
20
|
+
def passthrough?
|
21
|
+
["always", "through"].include?(Oboe::Config[:tracing_mode])
|
22
|
+
end
|
23
|
+
|
24
|
+
def through?
|
25
|
+
Oboe::Config[:tracing_mode] == "through"
|
26
|
+
end
|
27
|
+
|
28
|
+
def tracing?
|
29
|
+
return false unless Oboe.loaded
|
30
|
+
|
31
|
+
Oboe::Context.isValid and not Oboe.never?
|
32
|
+
end
|
33
|
+
|
34
|
+
def log(layer, label, options = {})
|
35
|
+
Context.log(layer, label, options = options)
|
36
|
+
end
|
37
|
+
|
38
|
+
##
|
39
|
+
# These methods should be implemented by the descendants
|
40
|
+
# (Oboe_metal, Oboe_metal (JRuby), Heroku_metal)
|
41
|
+
#
|
42
|
+
def sample?(opts = {})
|
43
|
+
raise "sample? should be implemented by metal layer."
|
44
|
+
end
|
45
|
+
|
46
|
+
def log(layer, label, options = {})
|
47
|
+
raise "log should be implemented by metal layer."
|
48
|
+
end
|
49
|
+
|
50
|
+
def set_tracing_mode(mode)
|
51
|
+
raise "set_tracing_mode should be implemented by metal layer."
|
52
|
+
end
|
53
|
+
|
54
|
+
def set_sample_rate(rate)
|
55
|
+
raise "set_sample_rate should be implemented by metal layer."
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
data/lib/heroku_metal.rb
CHANGED
@@ -1,20 +1,14 @@
|
|
1
1
|
# Copyright (c) 2013 AppNeta
|
2
2
|
# All rights reserved.
|
3
3
|
|
4
|
-
|
5
|
-
class Event
|
6
|
-
def self.metadataString(evt)
|
7
|
-
evt.metadataString()
|
8
|
-
end
|
9
|
-
end
|
4
|
+
require 'base'
|
10
5
|
|
6
|
+
module Oboe_metal
|
11
7
|
class Context
|
12
8
|
class << self
|
13
9
|
attr_accessor :layer_op
|
14
|
-
|
15
|
-
def log(layer, label, options = {}, with_backtrace =
|
16
|
-
Oboe.logger.debug "HerokuMetal log: layer: #{layer}, label: #{label}, options: #{options}, with_backtrace: #{with_backtrace.to_s}"
|
17
|
-
|
10
|
+
|
11
|
+
def log(layer, label, options = {}, with_backtrace = false)
|
18
12
|
evt = Oboe::Context.createEvent()
|
19
13
|
evt.addInfo("Layer", layer.to_s)
|
20
14
|
evt.addInfo("Label", label.to_s)
|
@@ -24,9 +18,10 @@ module Oboe_metal
|
|
24
18
|
end
|
25
19
|
|
26
20
|
evt.addInfo("Backtrace", Oboe::API.backtrace) if with_backtrace
|
21
|
+
|
27
22
|
Oboe.reporter.sendReport(evt)
|
28
23
|
end
|
29
|
-
|
24
|
+
|
30
25
|
def tracing_layer_op?(operation)
|
31
26
|
if operation.is_a?(Array)
|
32
27
|
return operation.include?(@layer_op)
|
@@ -37,6 +32,12 @@ module Oboe_metal
|
|
37
32
|
end
|
38
33
|
end
|
39
34
|
|
35
|
+
class Event
|
36
|
+
def self.metadataString(evt)
|
37
|
+
evt.metadataString()
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
40
41
|
class Reporter
|
41
42
|
##
|
42
43
|
# Initialize the Oboe Context, reporter and report the initialization
|
@@ -62,24 +63,12 @@ module Oboe_metal
|
|
62
63
|
end
|
63
64
|
end
|
64
65
|
|
65
|
-
module Oboe
|
66
|
+
module Oboe
|
67
|
+
extend OboeBase
|
66
68
|
include Oboe_metal
|
67
69
|
|
68
70
|
class << self
|
69
|
-
attr_accessor :reporter
|
70
|
-
|
71
|
-
def always?
|
72
|
-
Oboe::Config[:tracing_mode].to_s == "always"
|
73
|
-
end
|
74
|
-
|
75
|
-
def never?
|
76
|
-
Oboe::Config[:tracing_mode].to_s == "never"
|
77
|
-
end
|
78
71
|
|
79
|
-
def passthrough?
|
80
|
-
["always", "through"].include?(Oboe::Config[:tracing_mode])
|
81
|
-
end
|
82
|
-
|
83
72
|
def sample?(opts = {})
|
84
73
|
# Assure defaults since SWIG enforces Strings
|
85
74
|
opts[:layer] ||= ''
|
@@ -87,25 +76,48 @@ module Oboe
|
|
87
76
|
opts['TV-Meta'] ||= ''
|
88
77
|
Oboe::Context.sampleRequest(opts[:layer], opts[:xtrace], opts['TV-Meta'])
|
89
78
|
end
|
90
|
-
|
91
|
-
def
|
92
|
-
|
79
|
+
|
80
|
+
def set_tracing_mode(mode)
|
81
|
+
return unless Oboe.loaded
|
82
|
+
|
83
|
+
value = mode.to_sym
|
84
|
+
|
85
|
+
case value
|
86
|
+
when :never
|
87
|
+
# OBOE_TRACE_NEVER
|
88
|
+
Oboe::Context.setTracingMode(0)
|
89
|
+
when :always
|
90
|
+
# OBOE_TRACE_ALWAYS
|
91
|
+
Oboe::Context.setTracingMode(1)
|
92
|
+
when :through
|
93
|
+
# OBOE_TRACE_THROUGH
|
94
|
+
Oboe::Context.setTracingMode(2)
|
95
|
+
else
|
96
|
+
Oboe.logger.fatal "[oboe/error] Invalid tracing mode set: #{mode}"
|
97
|
+
# OBOE_TRACE_ALWAYS
|
98
|
+
Oboe::Context.setTracingMode(1)
|
99
|
+
end
|
93
100
|
end
|
94
|
-
|
95
|
-
def
|
96
|
-
|
101
|
+
|
102
|
+
def set_sample_rate(rate)
|
103
|
+
if Oboe.loaded
|
104
|
+
# Update liboboe with the new SampleRate value
|
105
|
+
Oboe::Context.setDefaultSampleRate(rate.to_i)
|
106
|
+
end
|
97
107
|
end
|
98
108
|
|
99
109
|
# Disconnect/Reconnect wrappers used for forking webservers
|
100
110
|
# such as Unicorn or Passenger
|
101
111
|
#
|
102
112
|
def disconnect!
|
103
|
-
::Oboe::Context.disconnect(::Oboe.reporter)
|
113
|
+
::Oboe::Context.disconnect(::Oboe.reporter) if Oboe.loaded
|
104
114
|
end
|
105
115
|
|
106
116
|
def reconnect!
|
107
|
-
::Oboe::Context.reconnect(::Oboe.reporter)
|
117
|
+
::Oboe::Context.reconnect(::Oboe.reporter) if Oboe.loaded
|
108
118
|
end
|
109
119
|
end
|
110
120
|
end
|
111
121
|
|
122
|
+
Oboe.loaded = true
|
123
|
+
|
data/lib/oboe-heroku/version.rb
CHANGED
data/lib/oboe-heroku.rb
CHANGED
@@ -3,8 +3,16 @@
|
|
3
3
|
|
4
4
|
begin
|
5
5
|
if ENV.has_key?('TRACEVIEW_URL')
|
6
|
-
|
7
|
-
|
6
|
+
begin
|
7
|
+
require 'heroku_metal'
|
8
|
+
require 'oboe_metal.so'
|
9
|
+
rescue LoadError => e
|
10
|
+
if ENV.has_key?('TRACEVIEW_DEBUG_LEVEL') and (ENV['TRACEVIEW_DEBUG_LEVEL'].to_i > 1)
|
11
|
+
$stderr.puts "[oboe-heroku/error] Could not load oboe-heroku dependencies: #{e.message}"
|
12
|
+
$stderr.puts e.backtrace.join("\n")
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
8
16
|
require 'oboe-heroku/loading'
|
9
17
|
require 'oboe-heroku/version'
|
10
18
|
|
@@ -13,11 +21,8 @@ begin
|
|
13
21
|
|
14
22
|
::OboeHeroku::Loading.initialize
|
15
23
|
end
|
16
|
-
rescue LoadError
|
17
|
-
if ENV.has_key?('TRACEVIEW_DEBUG_LEVEL') and (ENV['TRACEVIEW_DEBUG_LEVEL'].to_i > 1)
|
18
|
-
$stderr.puts "[oboe-heroku/error] Could not load oboe-heroku dependencies."
|
19
|
-
end
|
20
24
|
rescue Exception => e
|
21
|
-
$stderr.puts "[oboe-heroku/error] Problem loading: #{e.
|
25
|
+
$stderr.puts "[oboe-heroku/error] Problem loading: #{e.message}"
|
22
26
|
$stderr.puts e.backtrace.join("\n")
|
23
27
|
end
|
28
|
+
|
data/oboe-heroku.gemspec
CHANGED
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oboe-heroku
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease: 9
|
4
|
+
version: 0.9.0.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Peter Giacomo Lombardo
|
@@ -10,54 +9,48 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-
|
12
|
+
date: 2013-11-19 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: oboe
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
|
-
- -
|
18
|
+
- - '>='
|
21
19
|
- !ruby/object:Gem::Version
|
22
|
-
version: 2.3.
|
20
|
+
version: 2.3.3.7
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
|
-
- -
|
25
|
+
- - '>='
|
29
26
|
- !ruby/object:Gem::Version
|
30
|
-
version: 2.3.
|
27
|
+
version: 2.3.3.7
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: rake
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
|
-
- -
|
32
|
+
- - '>='
|
37
33
|
- !ruby/object:Gem::Version
|
38
34
|
version: '0'
|
39
35
|
type: :development
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
|
-
- -
|
39
|
+
- - '>='
|
45
40
|
- !ruby/object:Gem::Version
|
46
41
|
version: '0'
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: rspec
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
|
-
- -
|
46
|
+
- - '>='
|
53
47
|
- !ruby/object:Gem::Version
|
54
48
|
version: '0'
|
55
49
|
type: :development
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
|
-
- -
|
53
|
+
- - '>='
|
61
54
|
- !ruby/object:Gem::Version
|
62
55
|
version: '0'
|
63
56
|
description: The oboe-heroku gem provides TraceView instrumentation for Ruby and Ruby
|
@@ -98,6 +91,7 @@ files:
|
|
98
91
|
- ext/oboe_metal/src/oboe/oboe.h
|
99
92
|
- ext/oboe_metal/src/oboe/oboe_debug.h
|
100
93
|
- ext/oboe_metal/src/oboe_wrap.cxx
|
94
|
+
- lib/base.rb
|
101
95
|
- lib/heroku_metal.rb
|
102
96
|
- lib/oboe-heroku.rb
|
103
97
|
- lib/oboe-heroku/loading.rb
|
@@ -106,26 +100,25 @@ files:
|
|
106
100
|
- tasks/.keep
|
107
101
|
homepage: http://www.appneta.com/application-performance-management
|
108
102
|
licenses: []
|
103
|
+
metadata: {}
|
109
104
|
post_install_message:
|
110
105
|
rdoc_options: []
|
111
106
|
require_paths:
|
112
107
|
- lib
|
113
108
|
required_ruby_version: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
109
|
requirements:
|
116
|
-
- -
|
110
|
+
- - '>='
|
117
111
|
- !ruby/object:Gem::Version
|
118
112
|
version: '0'
|
119
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
120
|
-
none: false
|
121
114
|
requirements:
|
122
|
-
- -
|
115
|
+
- - '>='
|
123
116
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
117
|
+
version: '0'
|
125
118
|
requirements: []
|
126
119
|
rubyforge_project:
|
127
|
-
rubygems_version:
|
120
|
+
rubygems_version: 2.0.3
|
128
121
|
signing_key:
|
129
|
-
specification_version:
|
122
|
+
specification_version: 4
|
130
123
|
summary: AppNeta TraceView performance instrumentation gem for the Heroku platform
|
131
124
|
test_files: []
|