oboe 2.7.12.1 → 2.7.13.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +23 -0
- data/Gemfile +3 -1
- data/README.md +8 -8
- data/Rakefile +4 -1
- data/lib/oboe/api/logging.rb +10 -5
- data/lib/oboe/version.rb +2 -2
- data/test/instrumentation/faraday_test.rb +6 -6
- data/test/instrumentation/http_test.rb +2 -2
- data/test/instrumentation/typhoeus_test.rb +1 -1
- metadata +2 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dea66d9392e02f4dc3f95f94255d936d05538728
|
4
|
+
data.tar.gz: 282b194a123ef6b47d67a7175c2517a73462c9fa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d85ed382fbff8eba52ec81a4715aeab9dcf5cdee7f9b6b980edd25bbe10f5033004a07d3000f6335577f67b135600c0c79c3ee9969235f71ac6596e3d99b15f
|
7
|
+
data.tar.gz: da5b4204b7069874eee538fe2422172ba6cbe8063cfc67f27b3aa524a45df71fe05e3042a77162add80349830d7c1cc7e52c3e4c3d21c7960c65f4aeafc8f7b3
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,29 @@ 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
|
+
# oboe 2.7.13.3
|
8
|
+
|
9
|
+
This build release includes:
|
10
|
+
|
11
|
+
* Protect against unknown data type reporting: #106
|
12
|
+
|
13
|
+
Pushed to Rubygems:
|
14
|
+
|
15
|
+
https://rubygems.org/gems/oboe/versions/2.7.13.3
|
16
|
+
https://rubygems.org/gems/oboe/versions/2.7.13.3-java
|
17
|
+
|
18
|
+
# oboe 2.7.12.1
|
19
|
+
|
20
|
+
This patch release includes:
|
21
|
+
|
22
|
+
* Report values using BSON data types: #103
|
23
|
+
* Avoid double tracing rack layer for nested apps: #104
|
24
|
+
|
25
|
+
Pushed to Rubygems:
|
26
|
+
|
27
|
+
https://rubygems.org/gems/oboe/versions/2.7.12.1
|
28
|
+
https://rubygems.org/gems/oboe/versions/2.7.12.1-java
|
29
|
+
|
7
30
|
# oboe 2.7.11.1
|
8
31
|
|
9
32
|
This patch release includes:
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -5,7 +5,7 @@ The oboe gem provides AppNeta [TraceView](http://www.appneta.com/application-per
|
|
5
5
|
|
6
6
|
![Ruby TraceView](https://s3.amazonaws.com/pglombardo/oboe-ruby-header.png)
|
7
7
|
|
8
|
-
It has the ability to report performance metrics on an array of libraries, databases and frameworks such as Rails, Mongo, Memcache, ActiveRecord, Cassandra, Rack, Resque [and more](https://
|
8
|
+
It has the ability to report performance metrics on an array of libraries, databases and frameworks such as Rails, Mongo, Memcache, ActiveRecord, Cassandra, Rack, Resque [and more](https://docs.appneta.com/ruby-instrumentation-supported-components)
|
9
9
|
|
10
10
|
It requires a [TraceView](http://www.appneta.com/products/traceview/) account to view metrics. Get yours, [it's free](http://www.appneta.com/products/traceview-free-account/).
|
11
11
|
|
@@ -45,7 +45,7 @@ No special steps are needed to instrument Ruby on Rails. Once part of the bundl
|
|
45
45
|
|
46
46
|
### The Install Generator
|
47
47
|
|
48
|
-
The oboe gem provides a Rails generator used to seed an oboe initializer where you can configure and control `tracing_mode`, `sample_rate` and [other options](https://
|
48
|
+
The oboe gem provides a Rails generator used to seed an oboe initializer where you can configure and control `tracing_mode`, `sample_rate` and [other options](https://docs.appneta.com/configuring-ruby-instrumentation)
|
49
49
|
|
50
50
|
To run the install generator run:
|
51
51
|
|
@@ -149,7 +149,7 @@ Once inside of the `Oboe::API.start_trace` block, performance metrics will be au
|
|
149
149
|
|
150
150
|
## Other
|
151
151
|
|
152
|
-
You can send deploy notifications to TraceView and have the events show up on your dashboard. See: [Capistrano Deploy Notifications with tlog](https://
|
152
|
+
You can send deploy notifications to TraceView and have the events show up on your dashboard. See: [Capistrano Deploy Notifications with tlog](https://docs.appneta.com/capistrano-deploy-notifications-tlog)
|
153
153
|
|
154
154
|
# Custom Tracing
|
155
155
|
|
@@ -204,11 +204,11 @@ class Engine
|
|
204
204
|
end
|
205
205
|
```
|
206
206
|
|
207
|
-
This example demonstrates method profiling of instance methods. Class methods are profiled slightly differently. See the TraceView [documentation portal](https://
|
207
|
+
This example demonstrates method profiling of instance methods. Class methods are profiled slightly differently. See the TraceView [documentation portal](https://docs.appneta.com/custom-ruby-instrumentation) for full details.
|
208
208
|
|
209
209
|
# Support
|
210
210
|
|
211
|
-
If you find a bug or would like to request an enhancement, feel free to file an issue. For all other support requests, see our [support portal](https://
|
211
|
+
If you find a bug or would like to request an enhancement, feel free to file an issue. For all other support requests, see our [support portal](https://tickets.appneta.com) or on IRC @ #appneta on [Freenode](http://freenode.net/).
|
212
212
|
|
213
213
|
# Contributing
|
214
214
|
|
@@ -222,7 +222,7 @@ We at AppNeta have made a large effort to expose as much technical information a
|
|
222
222
|
|
223
223
|
* The [TraceView blog](http://www.appneta.com/blog) has a constant stream of great technical articles. (See [A Gentle X-Trace Introduction](http://www.appneta.com/blog/x-trace-introduction/) for details on the basic methodology that TraceView uses to gather structured performance data across hosts and stacks.)
|
224
224
|
|
225
|
-
* The [TraceView
|
225
|
+
* The [TraceView Documentation Portal](https://docs.appneta.com/ruby) has a large collection of technical articles or, if needed, you can [submit a support request](https://tickets.appneta.com) directly to the team.
|
226
226
|
|
227
227
|
* You can also reach the TraceView team on our IRC channel #appneta on freenode.
|
228
228
|
|
@@ -255,7 +255,7 @@ Here, I'll use a stripped down version of the Dalli instrumentation (`lib/oboe/i
|
|
255
255
|
|
256
256
|
The Dalli gem nicely routes all memcache operations through a single `perform` operation. Wrapping this method allows us to capture all Dalli operations called by an application.
|
257
257
|
|
258
|
-
First, we define a module (Oboe::Inst::Dalli) and our own custom `perform_with_oboe` method that we will use as a wrapper around Dalli's `perform` method. We also declare an `included` method which automatically gets called when this module is included by another. See ['included' Ruby reference documentation](
|
258
|
+
First, we define a module (Oboe::Inst::Dalli) and our own custom `perform_with_oboe` method that we will use as a wrapper around Dalli's `perform` method. We also declare an `included` method which automatically gets called when this module is included by another. See ['included' Ruby reference documentation](https://www.omniref.com/ruby/2.2.1/symbols/Module/included).
|
259
259
|
|
260
260
|
```ruby
|
261
261
|
module Oboe
|
@@ -350,7 +350,7 @@ ii liboboe-dev 1.1.1-precise1 Tracelytics common library -- development f
|
|
350
350
|
ii liboboe0 1.1.1-precise1 Tracelytics common library
|
351
351
|
```
|
352
352
|
|
353
|
-
See [Installing Base Packages on Debian and Ubuntu](https://
|
353
|
+
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/)!
|
354
354
|
|
355
355
|
To see the code related to the C extension, take a look at `ext/oboe_metal/extconf.rb` for details.
|
356
356
|
|
data/Rakefile
CHANGED
data/lib/oboe/api/logging.rb
CHANGED
@@ -181,17 +181,22 @@ module Oboe
|
|
181
181
|
Oboe.layer = nil if label == 'exit'
|
182
182
|
|
183
183
|
opts.each do |k, v|
|
184
|
+
value = nil
|
185
|
+
|
184
186
|
if valid_key? k
|
185
|
-
if [
|
186
|
-
|
187
|
-
value = v.to_s
|
187
|
+
if [Integer, Float, Fixnum, NilClass, String].include?(v.class)
|
188
|
+
value = v
|
188
189
|
elsif v.class == Set
|
189
190
|
value = v.to_a.to_s
|
190
191
|
else
|
191
|
-
value = v
|
192
|
+
value = v.to_s if v.respond_to?(:to_s)
|
192
193
|
end
|
193
194
|
|
194
|
-
|
195
|
+
begin
|
196
|
+
event.addInfo(k.to_s, value)
|
197
|
+
rescue ArgumentError => e
|
198
|
+
Oboe.logger.debug "[oboe/debug] Couldn't add event KV: #{k.to_s} => #{v.class}"
|
199
|
+
end
|
195
200
|
end
|
196
201
|
end if !opts.nil? && opts.any?
|
197
202
|
|
data/lib/oboe/version.rb
CHANGED
@@ -54,7 +54,7 @@ describe Oboe::Inst::FaradayConnection do
|
|
54
54
|
|
55
55
|
it 'should trace a Faraday request' do
|
56
56
|
Oboe::API.start_trace('faraday_test') do
|
57
|
-
conn = Faraday.new(:url => 'http://www.curlmyip.
|
57
|
+
conn = Faraday.new(:url => 'http://www.curlmyip.de') do |faraday|
|
58
58
|
faraday.adapter Faraday.default_adapter # make requests with Net::HTTP
|
59
59
|
end
|
60
60
|
response = conn.get '/?q=ruby_test_suite'
|
@@ -71,7 +71,7 @@ describe Oboe::Inst::FaradayConnection do
|
|
71
71
|
traces[3]['Layer'].must_equal 'net-http'
|
72
72
|
traces[3]['IsService'].must_equal 1
|
73
73
|
traces[3]['RemoteProtocol'].must_equal 'HTTP'
|
74
|
-
traces[3]['RemoteHost'].must_equal 'www.curlmyip.
|
74
|
+
traces[3]['RemoteHost'].must_equal 'www.curlmyip.de'
|
75
75
|
traces[3]['ServiceArg'].must_equal '/?q=ruby_test_suite'
|
76
76
|
traces[3]['HTTPMethod'].must_equal 'GET'
|
77
77
|
traces[3]['HTTPStatus'].must_equal '200'
|
@@ -88,7 +88,7 @@ describe Oboe::Inst::FaradayConnection do
|
|
88
88
|
|
89
89
|
it 'should trace a Faraday alternate request method' do
|
90
90
|
Oboe::API.start_trace('faraday_test') do
|
91
|
-
Faraday.get('http://www.curlmyip.
|
91
|
+
Faraday.get('http://www.curlmyip.de', {:a => 1})
|
92
92
|
end
|
93
93
|
|
94
94
|
traces = get_all_traces
|
@@ -102,7 +102,7 @@ describe Oboe::Inst::FaradayConnection do
|
|
102
102
|
traces[3]['Layer'].must_equal 'net-http'
|
103
103
|
traces[3]['IsService'].must_equal 1
|
104
104
|
traces[3]['RemoteProtocol'].must_equal 'HTTP'
|
105
|
-
traces[3]['RemoteHost'].must_equal 'www.curlmyip.
|
105
|
+
traces[3]['RemoteHost'].must_equal 'www.curlmyip.de'
|
106
106
|
traces[3]['ServiceArg'].must_equal '/?a=1'
|
107
107
|
traces[3]['HTTPMethod'].must_equal 'GET'
|
108
108
|
traces[3]['HTTPStatus'].must_equal '200'
|
@@ -119,7 +119,7 @@ describe Oboe::Inst::FaradayConnection do
|
|
119
119
|
|
120
120
|
it 'should trace a Faraday with an alternate adapter' do
|
121
121
|
Oboe::API.start_trace('faraday_test') do
|
122
|
-
conn = Faraday.new(:url => 'http://www.curlmyip.
|
122
|
+
conn = Faraday.new(:url => 'http://www.curlmyip.de') do |faraday|
|
123
123
|
faraday.adapter :excon
|
124
124
|
end
|
125
125
|
response = conn.get '/?q=1'
|
@@ -135,7 +135,7 @@ describe Oboe::Inst::FaradayConnection do
|
|
135
135
|
|
136
136
|
traces[2]['IsService'].must_equal 1
|
137
137
|
traces[2]['RemoteProtocol'].must_equal 'HTTP'
|
138
|
-
traces[2]['RemoteHost'].must_equal 'www.curlmyip.
|
138
|
+
traces[2]['RemoteHost'].must_equal 'www.curlmyip.de'
|
139
139
|
traces[2]['ServiceArg'].must_equal '/?q=1'
|
140
140
|
traces[2]['HTTPMethod'].downcase.must_equal 'get'
|
141
141
|
|
@@ -48,7 +48,7 @@ describe Oboe::Inst do
|
|
48
48
|
|
49
49
|
it "should trace a Net::HTTP request" do
|
50
50
|
Oboe::API.start_trace('net-http_test', '', {}) do
|
51
|
-
uri = URI('http://www.curlmyip.
|
51
|
+
uri = URI('http://www.curlmyip.de')
|
52
52
|
http = Net::HTTP.new(uri.host, uri.port)
|
53
53
|
http.get('/?q=1').read_body
|
54
54
|
end
|
@@ -61,7 +61,7 @@ describe Oboe::Inst do
|
|
61
61
|
traces[1]['Layer'].must_equal 'net-http'
|
62
62
|
traces[2]['IsService'].must_equal 1
|
63
63
|
traces[2]['RemoteProtocol'].must_equal "HTTP"
|
64
|
-
traces[2]['RemoteHost'].must_equal "www.curlmyip.
|
64
|
+
traces[2]['RemoteHost'].must_equal "www.curlmyip.de"
|
65
65
|
traces[2]['ServiceArg'].must_equal "/?q=1"
|
66
66
|
traces[2]['HTTPMethod'].must_equal "GET"
|
67
67
|
traces[2]['HTTPStatus'].must_equal "200"
|
@@ -275,7 +275,7 @@ describe Oboe::Inst::TyphoeusRequestOps do
|
|
275
275
|
|
276
276
|
first_request = Typhoeus::Request.new("www.appneta.com/products/traceview/")
|
277
277
|
second_request = Typhoeus::Request.new("www.appneta.com/products/")
|
278
|
-
third_request = Typhoeus::Request.new("www.curlmyip.
|
278
|
+
third_request = Typhoeus::Request.new("www.curlmyip.de")
|
279
279
|
|
280
280
|
hydra.queue first_request
|
281
281
|
hydra.queue second_request
|
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.7.
|
4
|
+
version: 2.7.13.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: 2015-03-
|
12
|
+
date: 2015-03-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -224,4 +224,3 @@ test_files:
|
|
224
224
|
- test/support/config_test.rb
|
225
225
|
- test/support/xtrace_test.rb
|
226
226
|
- test/support/dnt_test.rb
|
227
|
-
has_rdoc:
|