oboe 2.6.8 → 2.7.0.3
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/.travis.yml +11 -0
- data/CHANGELOG.md +19 -0
- data/Gemfile +15 -7
- data/README.md +7 -20
- data/Rakefile +58 -43
- data/ext/oboe_metal/extconf.rb +1 -6
- data/lib/base.rb +9 -17
- data/lib/joboe_metal.rb +102 -22
- data/lib/oboe.rb +2 -2
- data/lib/oboe/api/logging.rb +3 -3
- data/lib/oboe/api/tracing.rb +2 -2
- data/lib/oboe/frameworks/padrino/templates.rb +1 -1
- data/lib/oboe/frameworks/sinatra/templates.rb +1 -1
- data/lib/oboe/inst/cassandra.rb +3 -3
- data/lib/oboe/inst/dalli.rb +1 -1
- data/lib/oboe/inst/memcache.rb +1 -1
- data/lib/oboe/inst/moped.rb +30 -10
- data/lib/oboe/inst/resque.rb +1 -1
- data/lib/oboe/version.rb +3 -3
- data/lib/oboe_metal.rb +35 -0
- data/oboe.gemspec +4 -3
- data/test/frameworks/apps/grape_simple.rb +0 -2
- data/test/instrumentation/cassandra_test.rb +297 -293
- data/test/instrumentation/dalli_test.rb +1 -1
- data/test/instrumentation/memcached_test.rb +1 -1
- data/test/instrumentation/moped_test.rb +1 -1
- data/test/instrumentation/rack_test.rb +9 -0
- data/test/minitest_helper.rb +9 -19
- data/test/support/liboboe_settings_test.rb +33 -28
- metadata +4 -4
- data/Gemfile.lock +0 -114
@@ -47,6 +47,7 @@ class RackTestApp < Minitest::Test
|
|
47
47
|
assert traces[0].has_key?('SampleSource')
|
48
48
|
|
49
49
|
assert last_response.ok?
|
50
|
+
|
50
51
|
assert last_response['X-Trace']
|
51
52
|
end
|
52
53
|
|
@@ -60,5 +61,13 @@ class RackTestApp < Minitest::Test
|
|
60
61
|
|
61
62
|
assert last_response.status == 404
|
62
63
|
end
|
64
|
+
|
65
|
+
def test_must_return_xtrace_header
|
66
|
+
clear_all_traces
|
67
|
+
get "/lobster"
|
68
|
+
xtrace = last_response['X-Trace']
|
69
|
+
assert xtrace
|
70
|
+
assert Oboe::XTrace.valid?(xtrace)
|
71
|
+
end
|
63
72
|
end
|
64
73
|
|
data/test/minitest_helper.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require "minitest/spec"
|
1
2
|
require "minitest/autorun"
|
2
3
|
require "minitest/reporters"
|
3
4
|
|
@@ -14,6 +15,10 @@ unless RUBY_VERSION =~ /^1.8/
|
|
14
15
|
MiniTest::Reporters.use! MiniTest::Reporters::SpecReporter.new
|
15
16
|
end
|
16
17
|
|
18
|
+
if defined?(JRUBY_VERSION)
|
19
|
+
ENV['JAVA_OPTS'] = "-J-javaagent:/usr/local/tracelytics/tracelyticsagent.jar"
|
20
|
+
end
|
21
|
+
|
17
22
|
require 'rubygems'
|
18
23
|
require 'bundler'
|
19
24
|
|
@@ -38,7 +43,7 @@ Oboe.logger.level = Logger::DEBUG
|
|
38
43
|
# Truncates the trace output file to zero
|
39
44
|
#
|
40
45
|
def clear_all_traces
|
41
|
-
|
46
|
+
Oboe::Reporter.clear_all_traces
|
42
47
|
end
|
43
48
|
|
44
49
|
##
|
@@ -47,24 +52,7 @@ end
|
|
47
52
|
# Retrieves all traces written to the trace file
|
48
53
|
#
|
49
54
|
def get_all_traces
|
50
|
-
|
51
|
-
contents = io.readlines(nil)
|
52
|
-
|
53
|
-
return contents if contents.empty?
|
54
|
-
|
55
|
-
s = StringIO.new(contents[0])
|
56
|
-
|
57
|
-
traces = []
|
58
|
-
|
59
|
-
until s.eof?
|
60
|
-
if ::BSON.respond_to? :read_bson_document
|
61
|
-
traces << BSON.read_bson_document(s)
|
62
|
-
else
|
63
|
-
traces << BSON::Document.from_bson(s)
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
traces
|
55
|
+
Oboe::Reporter.get_all_traces
|
68
56
|
end
|
69
57
|
|
70
58
|
##
|
@@ -100,6 +88,7 @@ end
|
|
100
88
|
# has he specified key
|
101
89
|
#
|
102
90
|
def layer_has_key(traces, layer, key)
|
91
|
+
return false if traces.empty?
|
103
92
|
has_key = false
|
104
93
|
|
105
94
|
traces.each do |t|
|
@@ -120,6 +109,7 @@ end
|
|
120
109
|
# (regardless of event type) doesn't have the specified key
|
121
110
|
#
|
122
111
|
def layer_doesnt_have_key(traces, layer, key)
|
112
|
+
return false if traces.empty?
|
123
113
|
has_key = false
|
124
114
|
|
125
115
|
traces.each do |t|
|
@@ -3,39 +3,44 @@ require 'rack/test'
|
|
3
3
|
require 'rack/lobster'
|
4
4
|
require 'oboe/inst/rack'
|
5
5
|
|
6
|
-
|
7
|
-
Oboe::Config[:
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
6
|
+
unless defined?(JRUBY_VERSION)
|
7
|
+
Oboe::Config[:tracing_mode] = 'always'
|
8
|
+
Oboe::Config[:sample_rate] = 1e6
|
9
|
+
|
10
|
+
class RackTestApp < Minitest::Test
|
11
|
+
include Rack::Test::Methods
|
12
|
+
|
13
|
+
def app
|
14
|
+
@app = Rack::Builder.new {
|
15
|
+
use Rack::CommonLogger
|
16
|
+
use Rack::ShowExceptions
|
17
|
+
use Oboe::Rack
|
18
|
+
map "/lobster" do
|
19
|
+
use Rack::Lint
|
20
|
+
run Rack::Lobster.new
|
21
|
+
end
|
22
|
+
}
|
23
|
+
end
|
23
24
|
|
24
|
-
|
25
|
-
|
25
|
+
def test_localset_sample_source
|
26
|
+
# We make an initial call here which will force the oboe gem to retrieve
|
27
|
+
# the sample_rate and sample_source from liboboe (via sample? method)
|
28
|
+
get "/lobster"
|
26
29
|
|
27
|
-
|
30
|
+
clear_all_traces
|
28
31
|
|
29
|
-
|
30
|
-
traces.count.must_equal 3
|
32
|
+
get "/lobster"
|
31
33
|
|
32
|
-
|
34
|
+
traces = get_all_traces
|
35
|
+
traces.count.must_equal 3
|
33
36
|
|
34
|
-
|
35
|
-
kvs["SampleRate"] = "1000000"
|
36
|
-
kvs["SampleSource"] = OBOE_SAMPLE_RATE_SOURCE_FILE.to_s
|
37
|
-
validate_event_keys(traces[0], kvs)
|
37
|
+
validate_outer_layers(traces, 'rack')
|
38
38
|
|
39
|
+
kvs = {}
|
40
|
+
kvs["SampleRate"] = "1000000"
|
41
|
+
kvs["SampleSource"] = OBOE_SAMPLE_RATE_SOURCE_FILE.to_s
|
42
|
+
validate_event_keys(traces[0], kvs)
|
43
|
+
|
44
|
+
end
|
39
45
|
end
|
40
46
|
end
|
41
|
-
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oboe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.7.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Giacomo Lombardo
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-08-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -39,7 +39,8 @@ dependencies:
|
|
39
39
|
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
|
-
description: The oboe gem provides TraceView instrumentation for Ruby and
|
42
|
+
description: The oboe gem provides TraceView instrumentation for MRI Ruby, JRuby and
|
43
|
+
related frameworks.
|
43
44
|
email: traceviewsupport@appneta.com
|
44
45
|
executables: []
|
45
46
|
extensions:
|
@@ -52,7 +53,6 @@ files:
|
|
52
53
|
- Appraisals
|
53
54
|
- CHANGELOG.md
|
54
55
|
- Gemfile
|
55
|
-
- Gemfile.lock
|
56
56
|
- LICENSE
|
57
57
|
- README.md
|
58
58
|
- Rakefile
|
data/Gemfile.lock
DELETED
@@ -1,114 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
oboe (2.6.7)
|
5
|
-
json
|
6
|
-
|
7
|
-
GEM
|
8
|
-
remote: https://rubygems.org/
|
9
|
-
specs:
|
10
|
-
ansi (1.4.3)
|
11
|
-
appraisal (1.0.0)
|
12
|
-
bundler
|
13
|
-
rake
|
14
|
-
thor (>= 0.14.0)
|
15
|
-
bson (1.10.2)
|
16
|
-
builder (3.2.2)
|
17
|
-
byebug (3.1.2)
|
18
|
-
columnize (~> 0.8)
|
19
|
-
debugger-linecache (~> 1.2)
|
20
|
-
cassandra (0.23.0)
|
21
|
-
json
|
22
|
-
rake
|
23
|
-
simple_uuid (~> 0.3)
|
24
|
-
thrift_client (~> 0.7, < 0.9)
|
25
|
-
coderay (1.1.0)
|
26
|
-
columnize (0.8.9)
|
27
|
-
dalli (2.7.2)
|
28
|
-
debugger (1.6.8)
|
29
|
-
columnize (>= 0.3.1)
|
30
|
-
debugger-linecache (~> 1.2.0)
|
31
|
-
debugger-ruby_core_source (~> 1.3.5)
|
32
|
-
debugger-linecache (1.2.0)
|
33
|
-
debugger-ruby_core_source (1.3.5)
|
34
|
-
json (1.8.1)
|
35
|
-
linecache (0.46)
|
36
|
-
rbx-require-relative (> 0.0.4)
|
37
|
-
memcache-client (1.8.5)
|
38
|
-
memcached (1.7.2)
|
39
|
-
method_source (0.8.2)
|
40
|
-
minitest (5.4.0)
|
41
|
-
minitest-reporters (1.0.5)
|
42
|
-
ansi
|
43
|
-
builder
|
44
|
-
minitest (>= 5.0)
|
45
|
-
ruby-progressbar
|
46
|
-
mongo (1.3.1)
|
47
|
-
bson (>= 1.3.1)
|
48
|
-
mono_logger (1.1.0)
|
49
|
-
multi_json (1.10.1)
|
50
|
-
perftools.rb (2.0.1)
|
51
|
-
pry (0.10.0)
|
52
|
-
coderay (~> 1.1.0)
|
53
|
-
method_source (~> 0.8.1)
|
54
|
-
slop (~> 3.4)
|
55
|
-
rack (1.5.2)
|
56
|
-
rack-protection (1.5.3)
|
57
|
-
rack
|
58
|
-
rack-test (0.6.2)
|
59
|
-
rack (>= 1.0)
|
60
|
-
rake (10.3.2)
|
61
|
-
rbx-require-relative (0.0.9)
|
62
|
-
redis (3.1.0)
|
63
|
-
redis-namespace (1.5.0)
|
64
|
-
redis (~> 3.0, >= 3.0.4)
|
65
|
-
resque (1.25.2)
|
66
|
-
mono_logger (~> 1.0)
|
67
|
-
multi_json (~> 1.0)
|
68
|
-
redis-namespace (~> 1.3)
|
69
|
-
sinatra (>= 0.9.2)
|
70
|
-
vegas (~> 0.1.2)
|
71
|
-
ruby-debug (0.10.4)
|
72
|
-
columnize (>= 0.1)
|
73
|
-
ruby-debug-base (~> 0.10.4.0)
|
74
|
-
ruby-debug-base (0.10.4)
|
75
|
-
linecache (>= 0.3)
|
76
|
-
ruby-progressbar (1.5.1)
|
77
|
-
simple_uuid (0.4.0)
|
78
|
-
sinatra (1.4.5)
|
79
|
-
rack (~> 1.4)
|
80
|
-
rack-protection (~> 1.4)
|
81
|
-
tilt (~> 1.3, >= 1.3.4)
|
82
|
-
slop (3.5.0)
|
83
|
-
thor (0.17.0)
|
84
|
-
thrift (0.8.0)
|
85
|
-
thrift_client (0.8.4)
|
86
|
-
thrift (~> 0.8.0)
|
87
|
-
tilt (1.4.1)
|
88
|
-
vegas (0.1.11)
|
89
|
-
rack (>= 1.0.0)
|
90
|
-
|
91
|
-
PLATFORMS
|
92
|
-
ruby
|
93
|
-
|
94
|
-
DEPENDENCIES
|
95
|
-
appraisal
|
96
|
-
bson (= 1.10.2)
|
97
|
-
byebug
|
98
|
-
cassandra
|
99
|
-
dalli
|
100
|
-
debugger
|
101
|
-
memcache-client
|
102
|
-
memcached (= 1.7.2)
|
103
|
-
minitest
|
104
|
-
minitest-reporters
|
105
|
-
mongo
|
106
|
-
oboe!
|
107
|
-
perftools.rb
|
108
|
-
pry
|
109
|
-
rack-test
|
110
|
-
rake
|
111
|
-
redis
|
112
|
-
resque
|
113
|
-
ruby-debug
|
114
|
-
sinatra
|