oboe 2.6.6.1 → 2.6.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +6 -0
  3. data/Appraisals +6 -16
  4. data/CHANGELOG.md +30 -14
  5. data/Gemfile +4 -3
  6. data/Gemfile.lock +20 -25
  7. data/Rakefile +5 -1
  8. data/ext/oboe_metal/extconf.rb +2 -2
  9. data/gemfiles/mongo.gemfile +33 -0
  10. data/gemfiles/moped.gemfile +33 -0
  11. data/lib/base.rb +28 -10
  12. data/lib/joboe_metal.rb +12 -34
  13. data/lib/method_profiling.rb +3 -3
  14. data/lib/oboe/api/layerinit.rb +14 -14
  15. data/lib/oboe/api/logging.rb +11 -11
  16. data/lib/oboe/api/profiling.rb +7 -6
  17. data/lib/oboe/api/tracing.rb +3 -3
  18. data/lib/oboe/api/util.rb +4 -4
  19. data/lib/oboe/config.rb +7 -7
  20. data/lib/oboe/frameworks/padrino.rb +2 -2
  21. data/lib/oboe/frameworks/rails.rb +11 -11
  22. data/lib/oboe/frameworks/rails/inst/action_controller.rb +4 -4
  23. data/lib/oboe/frameworks/rails/inst/action_view.rb +2 -2
  24. data/lib/oboe/frameworks/rails/inst/action_view_2x.rb +1 -1
  25. data/lib/oboe/frameworks/rails/inst/action_view_30.rb +1 -1
  26. data/lib/oboe/frameworks/rails/inst/active_record.rb +1 -1
  27. data/lib/oboe/frameworks/rails/inst/connection_adapters/mysql.rb +3 -3
  28. data/lib/oboe/frameworks/rails/inst/connection_adapters/mysql2.rb +2 -2
  29. data/lib/oboe/frameworks/rails/inst/connection_adapters/postgresql.rb +1 -1
  30. data/lib/oboe/frameworks/rails/inst/connection_adapters/utils.rb +8 -8
  31. data/lib/oboe/frameworks/sinatra.rb +33 -3
  32. data/lib/oboe/frameworks/sinatra/templates.rb +2 -2
  33. data/lib/oboe/inst/cassandra.rb +19 -19
  34. data/lib/oboe/inst/dalli.rb +7 -7
  35. data/lib/oboe/inst/http.rb +5 -5
  36. data/lib/oboe/inst/memcache.rb +14 -14
  37. data/lib/oboe/inst/memcached.rb +8 -8
  38. data/lib/oboe/inst/mongo.rb +2 -2
  39. data/lib/oboe/inst/moped.rb +29 -29
  40. data/lib/oboe/inst/rack.rb +3 -3
  41. data/lib/oboe/inst/redis.rb +24 -24
  42. data/lib/oboe/inst/resque.rb +4 -4
  43. data/lib/oboe/loading.rb +6 -6
  44. data/lib/oboe/logger.rb +4 -4
  45. data/lib/oboe/version.rb +1 -1
  46. data/lib/oboe_metal.rb +11 -39
  47. data/test/frameworks/apps/grape_simple.rb +1 -1
  48. data/test/frameworks/apps/sinatra_simple.rb +1 -1
  49. data/test/frameworks/padrino_test.rb +3 -3
  50. data/test/frameworks/sinatra_test.rb +3 -3
  51. data/test/instrumentation/cassandra_test.rb +45 -45
  52. data/test/instrumentation/http_test.rb +6 -6
  53. data/test/instrumentation/mongo_test.rb +347 -345
  54. data/test/instrumentation/moped_test.rb +40 -40
  55. data/test/instrumentation/redis_hashes_test.rb +20 -20
  56. data/test/instrumentation/redis_keys_test.rb +19 -19
  57. data/test/instrumentation/redis_lists_test.rb +22 -22
  58. data/test/instrumentation/redis_misc_test.rb +14 -14
  59. data/test/instrumentation/redis_sets_test.rb +20 -20
  60. data/test/instrumentation/redis_sortedsets_test.rb +25 -25
  61. data/test/instrumentation/redis_strings_test.rb +27 -27
  62. data/test/instrumentation/resque_test.rb +7 -7
  63. data/test/minitest_helper.rb +18 -6
  64. data/test/profiling/method_test.rb +24 -24
  65. data/test/support/liboboe_settings_test.rb +3 -3
  66. data/test/support/xtrace_test.rb +2 -2
  67. metadata +26 -32
  68. data/gemfiles/rails2.3.gemfile +0 -18
  69. data/gemfiles/rails2.3.gemfile.lock +0 -95
  70. data/gemfiles/rails3.0.gemfile +0 -18
  71. data/gemfiles/rails3.0.gemfile.lock +0 -142
  72. data/gemfiles/rails3.1.gemfile +0 -18
  73. data/gemfiles/rails3.1.gemfile.lock +0 -152
  74. data/gemfiles/rails3.2.gemfile +0 -18
  75. data/gemfiles/rails3.2.gemfile.lock +0 -150
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 88b047a073e88c218371312a035decc488059eaa
4
- data.tar.gz: c4893000d6fc960a84ac93f84e5b4b26ffef9713
3
+ metadata.gz: 8f433a30233b7bcf02a8334f30a2b70c6e0ff20d
4
+ data.tar.gz: 4f5024d368825709de09b87c17572cb8e6241fdd
5
5
  SHA512:
6
- metadata.gz: 3e59b0470032680bf931922fce2ea4e402a75bc430aacc14739e7d02cd44a08f3c3634e7f82009ce457dbb3df691c503cba444b15b52fa58f94e8a4314599a87
7
- data.tar.gz: c52b420be49fc23794252e0f68aa9b6d6834e76173f8ca485f02bdf27dd70e80bad07116c206d4cb2b70520c65cd10249f9a23ca0e08bb44a9d3e774d8aa20f7
6
+ metadata.gz: 1141ad7b9271ee2dc3c4aa26c8263f34d4e15e41ae5fd214ef8d9a2d1c5de2e4fa75c24680a7cca7e880c19b7ea2fb03a8af8371a2cfaf3a8e18d856c601ccfa
7
+ data.tar.gz: 1b45262da56437de57cafeb959b1227323f329292a5a75cdb1fe9dfe6d19c2608b311476491ff926afdef74f1ad7730352554c2dbf6d4b2fbb8f03861a677b5c
@@ -7,6 +7,10 @@ rvm:
7
7
  - 1.8.7
8
8
  - ree
9
9
 
10
+ #gemfile:
11
+ # - gemfiles/mongo.gemfile
12
+ # - gemfiles/moped.gemfile
13
+
10
14
  # Attempt Travis/Cassandra fix re: https://github.com/travis-ci/travis-ci/issues/1484
11
15
  # Updated Cassandra: https://github.com/travis-ci/travis-ci/issues/1650
12
16
  before_install:
@@ -26,6 +30,8 @@ before_script:
26
30
  - bundle install --without development
27
31
  - bundle exec rake compile
28
32
 
33
+ script: "bundle exec rake test"
34
+
29
35
  services:
30
36
  - mongodb
31
37
  - memcached
data/Appraisals CHANGED
@@ -1,20 +1,10 @@
1
1
 
2
- appraise "rails2.3" do
3
- gem "rails", "~> 2.3.18"
4
- gem "oboe", :path => "../"
2
+ appraise "mongo" do
3
+ gem 'mongo'
5
4
  end
6
5
 
7
- appraise "rails3.0" do
8
- gem "rails", "~> 3.0.20"
9
- gem "oboe", :path => "../"
10
- end
11
-
12
- appraise "rails3.1" do
13
- gem "rails", "~> 3.1.12"
14
- gem "oboe", :path => "../"
15
- end
16
-
17
- appraise "rails3.2" do
18
- gem "rails", "~> 3.2.13"
19
- gem "oboe", :path => "../"
6
+ if RUBY_VERSION >= '1.9'
7
+ appraise "moped" do
8
+ gem 'moped', "~> 1.5"
9
+ end
20
10
  end
@@ -1,12 +1,28 @@
1
- # oboe 2.6.5.5 (06/02/14)
1
+ # oboe 2.6.7 (07/14/2014)
2
+
3
+ This patch release includes better error handling, API clean-up and RUM template improvements.
4
+
5
+ * [Add RUM helpers](https://github.com/appneta/oboe-ruby/pull/56) for Sinatra and Padrino stacks. Thanks @tlunter!
6
+ * Prefer [StandardError over Exception](https://github.com/appneta/oboe-ruby/pull/59) for rescue blocks that we handle directly
7
+ * [Clean up Oboe logging API](https://github.com/appneta/oboe-ruby/pull/58): Oboe.log, Oboe::Context.log and Oboe::API.log redundancy
8
+
9
+ # oboe 2.6.6.1 (06/16/2014)
10
+
11
+ This patch release adds new instrumentation and a couple fixes:
12
+
13
+ * [Add instrumentation support](https://github.com/appneta/oboe-ruby/pull/37) for [Grape API Micro Framework](http://intridea.github.io/grape/) (thanks @tlunter!)
14
+ * Important [Mongo find operation with block fix](https://github.com/appneta/oboe-ruby/pull/53) (thanks @rafaelfranca!)
15
+ * Better and more [data independent tests](https://github.com/appneta/oboe-ruby/pull/52) for Travis
16
+
17
+ # oboe 2.6.5.5 (06/02/2014)
2
18
 
3
19
  This patch release improves [instrumentation for Mongo](https://github.com/appneta/oboe-ruby/pull/48) version >= 1.10 and fixes TraceView [sample rate reporting](https://github.com/appneta/oboe-ruby/pull/50).
4
20
 
5
- # oboe 2.6.4.1 (04/30/14)
21
+ # oboe 2.6.4.1 (04/30/2014)
6
22
 
7
23
  This patch release adds detection and support for Redhat [OpenShift](https://www.openshift.com/). See our OpenShift [TraceView cartridge](https://github.com/appneta/openshift-cartridge-traceview) for base libraries before using this gem on OpenShift.
8
24
 
9
- # oboe 2.6.3.0 (04/07/14)
25
+ # oboe 2.6.3.0 (04/07/2014)
10
26
 
11
27
  This patch releases fixes a number of smaller issues:
12
28
 
@@ -15,18 +31,18 @@ This patch releases fixes a number of smaller issues:
15
31
  * fix for incorrectly starting traces when in `through` tracing mode under certain circumstances
16
32
  * Expand the test suite to validate sample rates and tracing modes (https://github.com/appneta/oboe-ruby/pull/8)
17
33
 
18
- # oboe 2.6.2.0 (03/24/14)
34
+ # oboe 2.6.2.0 (03/24/2014)
19
35
 
20
36
  * This patch release improves webserver detection on Heroku and adds in some c extension protections. A oboe-heroku gem release will follow this release.
21
37
 
22
- # oboe 2.6.1.0 (03/12/14)
38
+ # oboe 2.6.1.0 (03/12/2014)
23
39
 
24
40
  This is a patch release to address "Unsupported digest algorithm (SHA256)" occurring under certain cases on Heroku. A oboe-heroku gem release will follow this release.
25
41
 
26
42
  * Support delayed Reporter Initialization for Forking Webservers
27
43
  * README syntax fixes
28
44
 
29
- # oboe 2.5.0.7 (02/13/14)
45
+ # oboe 2.5.0.7 (02/2013/2014)
30
46
 
31
47
  * Added new Redis redis-rb gem (>= 3.0.0) instrumentation
32
48
  * Fix a SampleSource bitmask high bit issue
@@ -35,7 +51,7 @@ This is a patch release to address "Unsupported digest algorithm (SHA256)" occur
35
51
  * Test against Ruby 2.1.0 on TravisCI
36
52
  * Fix errant Oboe::Config warning
37
53
 
38
- # oboe 2.4.0.1 (01/12/13)
54
+ # oboe 2.4.0.1 (01/12/2013)
39
55
 
40
56
  * Report SampleRate & SampleSource per updated SWIG API
41
57
  * Change OboeHeroku __Init Key
@@ -47,11 +63,11 @@ This is a patch release to address "Unsupported digest algorithm (SHA256)" occur
47
63
  * Report the application server used
48
64
  * Support Oboe::Config.merge! and warn on non-existent (thanks @adamjt!)
49
65
 
50
- # oboe 2.3.4.1 (11/21/13)
66
+ # oboe 2.3.4.1 (11/21/2013)
51
67
 
52
68
  * Stacks that use a caching system like Varnish could see corrupted traces; fixed.
53
69
 
54
- # oboe 2.3.3.7 (11/06/13)
70
+ # oboe 2.3.3.7 (11/06/2013)
55
71
 
56
72
  * Rename the _Init layer to "rack"
57
73
  * Decode URLS when reporting them
@@ -61,7 +77,7 @@ This is a patch release to address "Unsupported digest algorithm (SHA256)" occur
61
77
  * Further refactoring for Ruby 2.0 support
62
78
  * Track the version of the instrumentation installed
63
79
 
64
- # oboe 2.3.2 (10/22/13)
80
+ # oboe 2.3.2 (10/22/2013)
65
81
 
66
82
  * Backtrace collection can now be configured to skip certain components if a lighter-weight trace is desired
67
83
  * On MRI Ruby the hostname of the Tracelyzer is now configurable via Oboe::Config[:reporter_host] (default is localhost)
@@ -70,7 +86,7 @@ This is a patch release to address "Unsupported digest algorithm (SHA256)" occur
70
86
  * Renamed "sampling_rate" to be "sample_rate" for consistency
71
87
  * More tests added and documentation in anticipation of our Ruby open-source initiative
72
88
 
73
- # oboe 2.2.6 (09/27/13)
89
+ # oboe 2.2.6 (09/27/2013)
74
90
 
75
91
  * Query Privacy now fully supported; can configure the app to not send SQL parameters if needed
76
92
  * Configuring the local sample rate now supports 1e6 notation
@@ -78,17 +94,17 @@ This is a patch release to address "Unsupported digest algorithm (SHA256)" occur
78
94
  * Now reporting HTTPStatus on http client calls
79
95
  * Heroku - the start time when a request hits the load balancer now captured
80
96
 
81
- # oboe 2.2.0 (09/12/13)
97
+ # oboe 2.2.0 (09/12/2013)
82
98
 
83
99
  * Initial support for Rails 4
84
100
  * Various internal reporting fixes and improvements
85
101
  * Fix for auto sampling rate
86
102
 
87
- # oboe 2.1.4 (08/01/13)
103
+ # oboe 2.1.4 (08/01/2013)
88
104
 
89
105
  * Integration support for AppView Web
90
106
 
91
- # oboe 2.1.3 (07/16/13)
107
+ # oboe 2.1.3 (07/16/2013)
92
108
 
93
109
  * Allow _Access Key_ assignment via Environment variable: TRACEVIEW_CUUID
94
110
 
data/Gemfile CHANGED
@@ -5,7 +5,6 @@ group :development, :test do
5
5
  gem 'minitest-reporters'
6
6
  gem 'rack-test'
7
7
  gem 'appraisal'
8
- gem 'bson'
9
8
  end
10
9
 
11
10
  group :development do
@@ -22,8 +21,7 @@ gem 'memcache-client'
22
21
  gem 'memcached', '1.7.2' if RUBY_VERSION < '2.0.0'
23
22
  gem 'cassandra'
24
23
  gem 'mongo'
25
- gem 'bson_ext' # For Mongo, Yours Truly
26
- gem 'moped' if RUBY_VERSION >= '1.9'
24
+ gem 'moped', '~> 1.5' if RUBY_VERSION >= '1.9'
27
25
  gem 'resque'
28
26
  gem 'redis'
29
27
 
@@ -33,6 +31,9 @@ gem 'sinatra'
33
31
  if RUBY_VERSION >= '1.9.3'
34
32
  gem 'padrino', '0.12.0'
35
33
  gem 'grape'
34
+ gem 'bson'
35
+ else
36
+ gem 'bson', '1.10.2'
36
37
  end
37
38
 
38
39
  # Import dependencies from oboe.gemspec
@@ -1,13 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- oboe (2.6.5.5)
4
+ oboe (2.6.7)
5
5
  json
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activesupport (4.1.1)
10
+ activesupport (4.1.4)
11
11
  i18n (~> 0.6, >= 0.6.9)
12
12
  json (~> 1.7, >= 1.7.7)
13
13
  minitest (~> 5.1)
@@ -22,9 +22,7 @@ GEM
22
22
  descendants_tracker (~> 0.0.4)
23
23
  ice_nine (~> 0.11.0)
24
24
  thread_safe (~> 0.3, >= 0.3.1)
25
- bson (1.10.1)
26
- bson_ext (1.10.1)
27
- bson (~> 1.10.1)
25
+ bson (1.10.2)
28
26
  builder (3.2.2)
29
27
  byebug (3.1.2)
30
28
  columnize (~> 0.8)
@@ -48,21 +46,21 @@ GEM
48
46
  descendants_tracker (0.0.4)
49
47
  thread_safe (~> 0.3, >= 0.3.1)
50
48
  equalizer (0.0.9)
51
- grape (0.7.0)
49
+ grape (0.8.0)
52
50
  activesupport
53
51
  builder
54
- hashie (>= 1.2.0)
52
+ hashie (>= 2.1.0)
55
53
  multi_json (>= 1.3.2)
56
54
  multi_xml (>= 0.5.2)
57
55
  rack (>= 1.3.0)
58
56
  rack-accept
59
57
  rack-mount
60
58
  virtus (>= 1.0.0)
61
- hashie (3.0.0)
59
+ hashie (3.2.0)
62
60
  http_router (0.11.1)
63
61
  rack (>= 1.0.0)
64
62
  url_mount (~> 0.2.1)
65
- i18n (0.6.9)
63
+ i18n (0.6.11)
66
64
  ice_nine (0.11.0)
67
65
  json (1.8.1)
68
66
  linecache (0.46)
@@ -71,18 +69,17 @@ GEM
71
69
  mime-types (~> 1.16)
72
70
  treetop (~> 1.4.8)
73
71
  memcache-client (1.8.5)
74
- memcached (1.7.2)
75
72
  method_source (0.8.2)
76
73
  mime-types (1.25.1)
77
- minitest (5.3.4)
78
- minitest-reporters (1.0.4)
74
+ minitest (5.4.0)
75
+ minitest-reporters (1.0.5)
79
76
  ansi
80
77
  builder
81
78
  minitest (>= 5.0)
82
79
  ruby-progressbar
83
80
  moneta (0.7.20)
84
- mongo (1.10.1)
85
- bson (~> 1.10.1)
81
+ mongo (1.3.1)
82
+ bson (>= 1.3.1)
86
83
  mono_logger (1.1.0)
87
84
  moped (1.5.2)
88
85
  multi_json (1.10.1)
@@ -118,10 +115,10 @@ GEM
118
115
  mail (~> 2.5.3)
119
116
  padrino-core (= 0.12.0)
120
117
  perftools.rb (2.0.1)
121
- polyglot (0.3.4)
122
- pry (0.9.12.6)
123
- coderay (~> 1.0)
124
- method_source (~> 0.8)
118
+ polyglot (0.3.5)
119
+ pry (0.10.0)
120
+ coderay (~> 1.1.0)
121
+ method_source (~> 0.8.1)
125
122
  slop (~> 3.4)
126
123
  rack (1.5.2)
127
124
  rack-accept (0.4.5)
@@ -134,9 +131,9 @@ GEM
134
131
  rack (>= 1.0)
135
132
  rake (10.3.2)
136
133
  rbx-require-relative (0.0.9)
137
- redis (3.0.7)
138
- redis-namespace (1.4.1)
139
- redis (~> 3.0.4)
134
+ redis (3.1.0)
135
+ redis-namespace (1.5.0)
136
+ redis (~> 3.0, >= 3.0.4)
140
137
  resque (1.25.2)
141
138
  mono_logger (~> 1.0)
142
139
  multi_json (~> 1.0)
@@ -164,7 +161,7 @@ GEM
164
161
  treetop (1.4.15)
165
162
  polyglot
166
163
  polyglot (>= 0.3.1)
167
- tzinfo (1.2.0)
164
+ tzinfo (1.2.1)
168
165
  thread_safe (~> 0.1)
169
166
  url_mount (0.2.1)
170
167
  rack
@@ -182,18 +179,16 @@ PLATFORMS
182
179
  DEPENDENCIES
183
180
  appraisal
184
181
  bson
185
- bson_ext
186
182
  byebug
187
183
  cassandra
188
184
  dalli
189
185
  debugger
190
186
  grape
191
187
  memcache-client
192
- memcached (= 1.7.2)
193
188
  minitest
194
189
  minitest-reporters
195
190
  mongo
196
- moped
191
+ moped (~> 1.5)
197
192
  oboe!
198
193
  padrino (= 0.12.0)
199
194
  perftools.rb
data/Rakefile CHANGED
@@ -11,7 +11,11 @@ Rake::TestTask.new do |t|
11
11
  t.verbose = true
12
12
  end
13
13
 
14
- task :default => :test
14
+ if !ENV["APPRAISAL_INITIALIZED"] && !ENV["TRAVIS"]
15
+ task :default => :appraisal
16
+ else
17
+ task :default => :test
18
+ end
15
19
 
16
20
  desc "Build the gem's c extension"
17
21
  task :compile do
@@ -28,7 +28,7 @@ else
28
28
  dir_config('oboe')
29
29
  end
30
30
 
31
- if jruby or ENV.has_key?('TRACEVIEW_URL')
31
+ if jruby or ENV.has_key?('TRACEVIEW_URL')
32
32
  # Build the noop extension under JRuby and Heroku.
33
33
  # The oboe-heroku gem builds it's own c extension which links to
34
34
  # libs specific to a Heroku dyno
@@ -50,7 +50,7 @@ elsif have_library('oboe', 'oboe_config_get_revision', 'oboe/oboe.h')
50
50
  end
51
51
 
52
52
  if RUBY_VERSION < '1.9'
53
- cpp_command('g++')
53
+ cpp_command('g++')
54
54
  $CPPFLAGS << "-I./src/"
55
55
  end
56
56
  create_makefile('oboe_metal', 'src')
@@ -0,0 +1,33 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "dalli"
6
+ gem "memcache-client"
7
+ gem "memcached", "1.7.2"
8
+ gem "cassandra"
9
+ gem "mongo"
10
+ gem "bson"
11
+ gem "moped", "~> 1.5"
12
+ gem "resque"
13
+ gem "redis"
14
+ gem "sinatra"
15
+ gem "padrino", "0.12.0"
16
+ gem "grape"
17
+
18
+ group :development, :test do
19
+ gem "minitest"
20
+ gem "minitest-reporters"
21
+ gem "rack-test"
22
+ gem "appraisal"
23
+ end
24
+
25
+ group :development do
26
+ gem "ruby-debug", :platform => :mri_18
27
+ gem "debugger", :platform => :mri_19
28
+ gem "byebug", :platforms => [:mri_20, :mri_21]
29
+ gem "perftools.rb", :platforms => [:mri_20, :mri_21], :require => "perftools"
30
+ gem "pry"
31
+ end
32
+
33
+ gemspec :name => "oboe", :path => "../"
@@ -0,0 +1,33 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "dalli"
6
+ gem "memcache-client"
7
+ gem "memcached", "1.7.2"
8
+ gem "cassandra"
9
+ gem "mongo"
10
+ gem "bson"
11
+ gem "moped", "~> 1.5"
12
+ gem "resque"
13
+ gem "redis"
14
+ gem "sinatra"
15
+ gem "padrino", "0.12.0"
16
+ gem "grape"
17
+
18
+ group :development, :test do
19
+ gem "minitest"
20
+ gem "minitest-reporters"
21
+ gem "rack-test"
22
+ gem "appraisal"
23
+ end
24
+
25
+ group :development do
26
+ gem "ruby-debug", :platform => :mri_18
27
+ gem "debugger", :platform => :mri_19
28
+ gem "byebug", :platforms => [:mri_20, :mri_21]
29
+ gem "perftools.rb", :platforms => [:mri_20, :mri_21], :require => "perftools"
30
+ gem "pry"
31
+ end
32
+
33
+ gemspec :name => "oboe", :path => "../"
@@ -1,6 +1,6 @@
1
1
  # Copyright (c) 2013 AppNeta, Inc.
2
2
  # All rights reserved.
3
-
3
+
4
4
  # Constants from liboboe
5
5
  OBOE_TRACE_NEVER = 0
6
6
  OBOE_TRACE_ALWAYS = 1
@@ -22,6 +22,22 @@ SAMPLE_SOURCE_MASK = 0b1111000000000000000000000000
22
22
  ZERO_SAMPLE_RATE_MASK = 0b1111000000000000000000000000
23
23
  ZERO_SAMPLE_SOURCE_MASK = 0b0000111111111111111111111111
24
24
 
25
+ module Oboe_metal
26
+ class Context
27
+ class << self
28
+ attr_accessor :layer_op
29
+
30
+ def tracing_layer_op?(operation)
31
+ if operation.is_a?(Array)
32
+ return operation.include?(@layer_op)
33
+ else
34
+ return @layer_op == operation
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+
25
41
  module OboeBase
26
42
  attr_accessor :reporter
27
43
  attr_accessor :loaded
@@ -31,11 +47,11 @@ module OboeBase
31
47
  def self.included(cls)
32
48
  self.loaded = true
33
49
  end
34
-
50
+
35
51
  def always?
36
52
  Oboe::Config[:tracing_mode].to_s == "always"
37
53
  end
38
-
54
+
39
55
  def never?
40
56
  Oboe::Config[:tracing_mode].to_s == "never"
41
57
  end
@@ -43,19 +59,20 @@ module OboeBase
43
59
  def passthrough?
44
60
  ["always", "through"].include?(Oboe::Config[:tracing_mode])
45
61
  end
46
-
62
+
47
63
  def through?
48
64
  Oboe::Config[:tracing_mode] == "through"
49
65
  end
50
-
66
+
51
67
  def tracing?
52
68
  return false unless Oboe.loaded
53
69
 
54
70
  Oboe::Context.isValid and not Oboe.never?
55
71
  end
56
-
72
+
57
73
  def log(layer, label, options = {})
58
- Context.log(layer, label, options = options)
74
+ # WARN: Oboe.log will be deprecated in a future release. Please use Oboe::API.log instead.
75
+ Oboe::API.log(layer, label, options)
59
76
  end
60
77
 
61
78
  def heroku?
@@ -73,17 +90,18 @@ module OboeBase
73
90
  def sample?(opts = {})
74
91
  raise "sample? should be implemented by metal layer."
75
92
  end
76
-
93
+
77
94
  def log(layer, label, options = {})
78
95
  raise "log should be implemented by metal layer."
79
96
  end
80
-
97
+
81
98
  def set_tracing_mode(mode)
82
99
  raise "set_tracing_mode should be implemented by metal layer."
83
100
  end
84
-
101
+
85
102
  def set_sample_rate(rate)
86
103
  raise "set_sample_rate should be implemented by metal layer."
87
104
  end
105
+
88
106
  end
89
107