traceview 3.0.0-java

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.
Files changed (137) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.rubocop.yml +5 -0
  4. data/.travis.yml +58 -0
  5. data/Appraisals +10 -0
  6. data/CHANGELOG.md +490 -0
  7. data/CONFIG.md +16 -0
  8. data/Gemfile +95 -0
  9. data/LICENSE +199 -0
  10. data/README.md +380 -0
  11. data/Rakefile +109 -0
  12. data/examples/DNT.md +35 -0
  13. data/examples/carrying_context.rb +225 -0
  14. data/examples/instrumenting_metal_controller.rb +8 -0
  15. data/examples/puma_on_heroku_config.rb +17 -0
  16. data/examples/tracing_async_threads.rb +125 -0
  17. data/examples/tracing_background_jobs.rb +52 -0
  18. data/examples/tracing_forked_processes.rb +100 -0
  19. data/examples/unicorn_on_heroku_config.rb +28 -0
  20. data/ext/oboe_metal/extconf.rb +61 -0
  21. data/ext/oboe_metal/noop/noop.c +7 -0
  22. data/ext/oboe_metal/src/bson/bson.h +221 -0
  23. data/ext/oboe_metal/src/bson/platform_hacks.h +91 -0
  24. data/ext/oboe_metal/src/oboe.h +275 -0
  25. data/ext/oboe_metal/src/oboe.hpp +352 -0
  26. data/ext/oboe_metal/src/oboe_wrap.cxx +3886 -0
  27. data/ext/oboe_metal/tests/test.rb +11 -0
  28. data/gemfiles/mongo.gemfile +33 -0
  29. data/gemfiles/moped.gemfile +33 -0
  30. data/get_version.rb +5 -0
  31. data/init.rb +4 -0
  32. data/lib/joboe_metal.rb +206 -0
  33. data/lib/oboe/README +2 -0
  34. data/lib/oboe/backward_compatibility.rb +59 -0
  35. data/lib/oboe/inst/rack.rb +11 -0
  36. data/lib/oboe.rb +7 -0
  37. data/lib/oboe_metal.rb +151 -0
  38. data/lib/rails/generators/traceview/install_generator.rb +76 -0
  39. data/lib/rails/generators/traceview/templates/traceview_initializer.rb +159 -0
  40. data/lib/traceview/api/layerinit.rb +51 -0
  41. data/lib/traceview/api/logging.rb +209 -0
  42. data/lib/traceview/api/memcache.rb +31 -0
  43. data/lib/traceview/api/profiling.rb +50 -0
  44. data/lib/traceview/api/tracing.rb +135 -0
  45. data/lib/traceview/api/util.rb +121 -0
  46. data/lib/traceview/api.rb +18 -0
  47. data/lib/traceview/base.rb +225 -0
  48. data/lib/traceview/config.rb +238 -0
  49. data/lib/traceview/frameworks/grape.rb +97 -0
  50. data/lib/traceview/frameworks/padrino/templates.rb +58 -0
  51. data/lib/traceview/frameworks/padrino.rb +64 -0
  52. data/lib/traceview/frameworks/rails/helpers/rum/rum_ajax_header.js.erb +5 -0
  53. data/lib/traceview/frameworks/rails/helpers/rum/rum_footer.js.erb +1 -0
  54. data/lib/traceview/frameworks/rails/helpers/rum/rum_header.js.erb +3 -0
  55. data/lib/traceview/frameworks/rails/inst/action_controller.rb +216 -0
  56. data/lib/traceview/frameworks/rails/inst/action_view.rb +56 -0
  57. data/lib/traceview/frameworks/rails/inst/action_view_2x.rb +54 -0
  58. data/lib/traceview/frameworks/rails/inst/action_view_30.rb +48 -0
  59. data/lib/traceview/frameworks/rails/inst/active_record.rb +24 -0
  60. data/lib/traceview/frameworks/rails/inst/connection_adapters/mysql.rb +43 -0
  61. data/lib/traceview/frameworks/rails/inst/connection_adapters/mysql2.rb +28 -0
  62. data/lib/traceview/frameworks/rails/inst/connection_adapters/oracle.rb +18 -0
  63. data/lib/traceview/frameworks/rails/inst/connection_adapters/postgresql.rb +30 -0
  64. data/lib/traceview/frameworks/rails/inst/connection_adapters/utils.rb +117 -0
  65. data/lib/traceview/frameworks/rails.rb +145 -0
  66. data/lib/traceview/frameworks/sinatra/templates.rb +56 -0
  67. data/lib/traceview/frameworks/sinatra.rb +95 -0
  68. data/lib/traceview/inst/cassandra.rb +279 -0
  69. data/lib/traceview/inst/dalli.rb +86 -0
  70. data/lib/traceview/inst/em-http-request.rb +99 -0
  71. data/lib/traceview/inst/excon.rb +111 -0
  72. data/lib/traceview/inst/faraday.rb +73 -0
  73. data/lib/traceview/inst/http.rb +87 -0
  74. data/lib/traceview/inst/httpclient.rb +173 -0
  75. data/lib/traceview/inst/memcache.rb +102 -0
  76. data/lib/traceview/inst/memcached.rb +94 -0
  77. data/lib/traceview/inst/mongo.rb +238 -0
  78. data/lib/traceview/inst/moped.rb +474 -0
  79. data/lib/traceview/inst/rack.rb +122 -0
  80. data/lib/traceview/inst/redis.rb +271 -0
  81. data/lib/traceview/inst/resque.rb +192 -0
  82. data/lib/traceview/inst/rest-client.rb +38 -0
  83. data/lib/traceview/inst/sequel.rb +162 -0
  84. data/lib/traceview/inst/typhoeus.rb +102 -0
  85. data/lib/traceview/instrumentation.rb +21 -0
  86. data/lib/traceview/loading.rb +94 -0
  87. data/lib/traceview/logger.rb +41 -0
  88. data/lib/traceview/method_profiling.rb +84 -0
  89. data/lib/traceview/ruby.rb +36 -0
  90. data/lib/traceview/support.rb +113 -0
  91. data/lib/traceview/thread_local.rb +26 -0
  92. data/lib/traceview/util.rb +250 -0
  93. data/lib/traceview/version.rb +16 -0
  94. data/lib/traceview/xtrace.rb +90 -0
  95. data/lib/traceview.rb +62 -0
  96. data/test/frameworks/apps/grape_nested.rb +30 -0
  97. data/test/frameworks/apps/grape_simple.rb +24 -0
  98. data/test/frameworks/apps/padrino_simple.rb +45 -0
  99. data/test/frameworks/apps/sinatra_simple.rb +24 -0
  100. data/test/frameworks/grape_test.rb +142 -0
  101. data/test/frameworks/padrino_test.rb +30 -0
  102. data/test/frameworks/sinatra_test.rb +30 -0
  103. data/test/instrumentation/cassandra_test.rb +380 -0
  104. data/test/instrumentation/dalli_test.rb +171 -0
  105. data/test/instrumentation/em_http_request_test.rb +86 -0
  106. data/test/instrumentation/excon_test.rb +207 -0
  107. data/test/instrumentation/faraday_test.rb +235 -0
  108. data/test/instrumentation/http_test.rb +140 -0
  109. data/test/instrumentation/httpclient_test.rb +296 -0
  110. data/test/instrumentation/memcache_test.rb +251 -0
  111. data/test/instrumentation/memcached_test.rb +226 -0
  112. data/test/instrumentation/mongo_test.rb +462 -0
  113. data/test/instrumentation/moped_test.rb +496 -0
  114. data/test/instrumentation/rack_test.rb +116 -0
  115. data/test/instrumentation/redis_hashes_test.rb +265 -0
  116. data/test/instrumentation/redis_keys_test.rb +318 -0
  117. data/test/instrumentation/redis_lists_test.rb +310 -0
  118. data/test/instrumentation/redis_misc_test.rb +160 -0
  119. data/test/instrumentation/redis_sets_test.rb +293 -0
  120. data/test/instrumentation/redis_sortedsets_test.rb +325 -0
  121. data/test/instrumentation/redis_strings_test.rb +333 -0
  122. data/test/instrumentation/resque_test.rb +62 -0
  123. data/test/instrumentation/rest-client_test.rb +294 -0
  124. data/test/instrumentation/sequel_mysql2_test.rb +326 -0
  125. data/test/instrumentation/sequel_mysql_test.rb +326 -0
  126. data/test/instrumentation/sequel_pg_test.rb +330 -0
  127. data/test/instrumentation/typhoeus_test.rb +285 -0
  128. data/test/minitest_helper.rb +187 -0
  129. data/test/profiling/method_test.rb +198 -0
  130. data/test/servers/rackapp_8101.rb +22 -0
  131. data/test/support/backcompat_test.rb +269 -0
  132. data/test/support/config_test.rb +128 -0
  133. data/test/support/dnt_test.rb +73 -0
  134. data/test/support/liboboe_settings_test.rb +104 -0
  135. data/test/support/xtrace_test.rb +35 -0
  136. data/traceview.gemspec +29 -0
  137. metadata +248 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 419e8c941085b63d93dc35f85bce9f8b56a200c8
4
+ data.tar.gz: 3e7518114ba1299214ae651baf5d99567a74b5ed
5
+ SHA512:
6
+ metadata.gz: 1aadebfdbff8b454c9574c16ec26b0ecd2f7180bddab2c4cc97eeb6364ea24e57ca0aac82cc645d3afc075169dc3ffce017340b9ee5e7abbb8663aa58213e47b
7
+ data.tar.gz: 00905d0709474322db264419a43e110b72b83f188b4996fed9a2ab8e48ed9de316882bd18308cca49489d04deeaf77b77353c328f44feac40f2b47811b31652a
data/.gitignore ADDED
@@ -0,0 +1,10 @@
1
+ oboe*.gem
2
+ Gemfile.lock
3
+ .ruby-version
4
+ *~
5
+ *.swp
6
+ lib/oboe_metal.so
7
+ ext/oboe_metal/Makefile
8
+ ext/oboe_metal/mkmf.log
9
+ ext/oboe_metal/oboe_metal.so
10
+ ext/oboe_metal/oboe_wrap.o
data/.rubocop.yml ADDED
@@ -0,0 +1,5 @@
1
+ Metrics/LineLength:
2
+ Max: 120
3
+
4
+ Style/HashSyntax:
5
+ EnforcedStyle: hash_rockets
data/.travis.yml ADDED
@@ -0,0 +1,58 @@
1
+ language: ruby
2
+
3
+ cache:
4
+ bundler: true
5
+ directories:
6
+ - vendor/bundle
7
+
8
+ rvm:
9
+ - 2.2.0
10
+ - 2.1.1
11
+ - 2.0.0
12
+ - 1.9.3
13
+ - 1.9.2
14
+ - 1.8.7
15
+ - ree
16
+ - jruby-19mode
17
+
18
+ #gemfile:
19
+ # - gemfiles/mongo.gemfile
20
+ # - gemfiles/moped.gemfile
21
+
22
+ # Attempt Travis/Cassandra fix re: https://github.com/travis-ci/travis-ci/issues/1484
23
+ # Updated Cassandra: https://github.com/travis-ci/travis-ci/issues/1650
24
+ before_install:
25
+ - gem update --system
26
+ - gem update bundler
27
+ - gem --version
28
+ - sudo sh -c "echo 'JVM_OPTS=\"\${JVM_OPTS} -Djava.net.preferIPv4Stack=false\"' >> /usr/local/cassandra/conf/cassandra-env.sh"
29
+ - echo "127.0.0.1 localhost" | sudo tee /etc/hosts
30
+ - echo "127.0.0.1 " `hostname` | sudo tee /etc/hosts
31
+ - sudo service cassandra start
32
+
33
+ install:
34
+ - wget https://www.tracelytics.com/install_tracelytics.sh
35
+ - sudo sh ./install_tracelytics.sh f51e2a43-0ee5-4851-8a54-825773b3218e
36
+ - sudo apt-get install -y tracelytics-java-agent
37
+
38
+ before_script:
39
+ - bundle install --without development
40
+ - bundle exec rake compile
41
+ - psql -c 'create database travis_ci_test;' -U postgres
42
+ - mysql -e 'create database travis_ci_test;'
43
+ - sleep 10
44
+
45
+ script: "bundle exec rake test"
46
+
47
+ services:
48
+ - mongodb
49
+ - memcached
50
+ - cassandra
51
+ - redis
52
+
53
+ matrix:
54
+ allow_failures:
55
+ # FIXME: Until the joboe test reporter supports cross thread
56
+ # event collection.
57
+ - rvm: jruby-19mode
58
+
data/Appraisals ADDED
@@ -0,0 +1,10 @@
1
+
2
+ appraise "mongo" do
3
+ gem 'mongo'
4
+ end
5
+
6
+ if RUBY_VERSION >= '1.9'
7
+ appraise "moped" do
8
+ gem 'moped', "~> 1.5"
9
+ end
10
+ end
data/CHANGELOG.md ADDED
@@ -0,0 +1,490 @@
1
+
2
+ For the latest release info, see here:
3
+ https://github.com/appneta/oboe-ruby/releases
4
+
5
+ Dates in this file are in the format MM/DD/YYYY.
6
+
7
+ # traceview 3.0.0
8
+
9
+ The oboe gem has been renamed to traceview. The final oboe
10
+ gem (2.7.19) has a post-install deprecation warning and will
11
+ not have anymore updates.
12
+
13
+ All development going forward will be done on this traceview gem.
14
+
15
+ As a first release, this is simply a renamed version of oboe gem 2.7.19.
16
+
17
+ It contains no bug fixes or new features.
18
+
19
+ Pushed to Rubygems:
20
+
21
+ https://rubygems.org/gems/traceview/versions/3.0.0
22
+ https://rubygems.org/gems/traceview/versions/3.0.0-java
23
+
24
+ # oboe 2.7.19
25
+
26
+ __Note that this will be the last release for the oboe gem. The gem
27
+ will be renamed to _traceview_ and all future updates will be to that
28
+ other gem.__
29
+
30
+ This version will show a post-install warning message stating this. A
31
+ final version of this gem will be released with only a deprecation
32
+ warning.
33
+
34
+ This patch release includes the following fix:
35
+
36
+ * Report TraceMode in __Init: #120
37
+ * Add RemoteHost reporting to Dalli Instrumentation: #119
38
+
39
+ Pushed to Rubygems:
40
+
41
+ https://rubygems.org/gems/oboe/versions/2.7.19
42
+ https://rubygems.org/gems/oboe/versions/2.7.19-java
43
+
44
+ # oboe 2.7.18
45
+
46
+ This patch release includes the following fix:
47
+
48
+ * For custom ActionView renderers, properly accept and pass on blocks: #118
49
+
50
+ Pushed to Rubygems:
51
+
52
+ https://rubygems.org/gems/oboe/versions/2.7.18
53
+ https://rubygems.org/gems/oboe/versions/2.7.18-java
54
+
55
+ # oboe 2.7.17.1
56
+
57
+ This patch release includes:
58
+
59
+ * New config option to optionally not report URL query parameters: #116
60
+ * New HTTPClient instrumentation: #115
61
+
62
+ Pushed to Rubygems:
63
+
64
+ https://rubygems.org/gems/oboe/versions/2.7.17.1
65
+ https://rubygems.org/gems/oboe/versions/2.7.17.1-java
66
+
67
+ # oboe 2.7.16.1
68
+
69
+ This patch release includes:
70
+
71
+ * New rest-client instrumentation: #109
72
+ * New excon instrumentation: #114
73
+ * Fix `uninitialized constant` on unsupported platforms: #113
74
+
75
+ Pushed to Rubygems:
76
+
77
+ https://rubygems.org/gems/oboe/versions/2.7.16.1
78
+ https://rubygems.org/gems/oboe/versions/2.7.16.1-java
79
+
80
+ # oboe 2.7.15.1
81
+
82
+ This patch release includes:
83
+
84
+ * Rails Instrumentation should respect top-level rescue handlers: #111
85
+
86
+ Pushed to Rubygems:
87
+
88
+ https://rubygems.org/gems/oboe/versions/2.7.15.1
89
+ https://rubygems.org/gems/oboe/versions/2.7.15/1-java
90
+
91
+ # oboe 2.7.14.1
92
+
93
+ This patch release includes:
94
+
95
+ * Fixed support for Puma on Heroku: #108
96
+
97
+ Pushed to Rubygems:
98
+
99
+ https://rubygems.org/gems/oboe/versions/2.7.14.1
100
+ https://rubygems.org/gems/oboe/versions/2.7.14/1-java
101
+
102
+ # oboe 2.7.13.3
103
+
104
+ This build release includes:
105
+
106
+ * Protect against unknown data type reporting: #106
107
+
108
+ Pushed to Rubygems:
109
+
110
+ https://rubygems.org/gems/oboe/versions/2.7.13.3
111
+ https://rubygems.org/gems/oboe/versions/2.7.13.3-java
112
+
113
+ # oboe 2.7.12.1
114
+
115
+ This patch release includes:
116
+
117
+ * Report values using BSON data types: #103
118
+ * Avoid double tracing rack layer for nested apps: #104
119
+
120
+ Pushed to Rubygems:
121
+
122
+ https://rubygems.org/gems/oboe/versions/2.7.12.1
123
+ https://rubygems.org/gems/oboe/versions/2.7.12.1-java
124
+
125
+ # oboe 2.7.11.1
126
+
127
+ This patch release includes:
128
+
129
+ * Grape instrumentation fixes and improvements: #102
130
+ * Report Sequel and Typhoeus versions in __Init: #101
131
+
132
+ Pushed to Rubygems:
133
+
134
+ https://rubygems.org/gems/oboe/versions/2.7.11.1
135
+ https://rubygems.org/gems/oboe/versions/2.7.11.1-java
136
+
137
+ # oboe 2.7.10.1
138
+
139
+ This patch release includes:
140
+
141
+ * Add the ability to configure the do not trace list: #100
142
+
143
+ Pushed to Rubygems:
144
+
145
+ https://rubygems.org/gems/oboe/versions/2.7.10.1
146
+ https://rubygems.org/gems/oboe/versions/2.7.10.1-java
147
+
148
+ # oboe 2.7.9.6
149
+
150
+ This patch release includes:
151
+
152
+ * Better, faster, stronger Rack instrumentation: #99
153
+ * A Typhoeus instrumentation fix for cross-app tracing: #97
154
+
155
+ Pushed to Rubygems:
156
+
157
+ https://rubygems.org/gems/oboe/versions/2.7.9.6
158
+ https://rubygems.org/gems/oboe/versions/2.7.9.6-java
159
+
160
+ # oboe 2.7.8.1
161
+
162
+ This patch release includes:
163
+
164
+ * Improved sampling management and reporting
165
+
166
+ Pushed to Rubygems:
167
+
168
+ https://rubygems.org/gems/oboe/versions/2.7.8.1
169
+ https://rubygems.org/gems/oboe/versions/2.7.8.1-java
170
+
171
+
172
+ # oboe 2.7.7.1
173
+
174
+ This patch release includes:
175
+
176
+ * Add support and instrumentation for Sequel: #91
177
+
178
+ Pushed to Rubygems:
179
+
180
+ https://rubygems.org/gems/oboe/versions/2.7.7.1
181
+ https://rubygems.org/gems/oboe/versions/2.7.7.1-java
182
+
183
+ # oboe 2.7.6.2
184
+
185
+ This patch release includes:
186
+
187
+ * Fixed metrics when hosting a JRuby application under a Java webserver such as Tomcat: #94
188
+ * Fix for moped aggregate calls: #95
189
+
190
+ Pushed to Rubygems:
191
+
192
+ https://rubygems.org/gems/oboe/versions/2.7.6.2
193
+ https://rubygems.org/gems/oboe/versions/2.7.6.2-java
194
+
195
+ # oboe 2.7.5.1 (11/20/2014)
196
+
197
+ This patch release includes:
198
+
199
+ * New [Typhoeus](https://github.com/typhoeus/typhoeus) instrumentation: #90
200
+ * JRuby: Better Handling of Agent JSON Parsing Errors: #89
201
+ * Faraday doesn't Log like the others; Fixup Verbose Logging: #79
202
+ * Add DB Adapters to __Init reporting: #83
203
+ * Extended Typhoeus tests: #92
204
+
205
+ Pushed to Rubygems:
206
+
207
+ https://rubygems.org/gems/oboe/versions/2.7.5.1
208
+ https://rubygems.org/gems/oboe/versions/2.7.5.1-java
209
+
210
+ # oboe 2.7.4.1 (10/26/2014)
211
+
212
+ This patch release includes:
213
+
214
+ * Make Oboe::API available even when liboboe.so is not #81 (thanks Cannon!)
215
+ * Add OS and Oboe::Config info to support report #80
216
+
217
+ Pushed to Rubygems:
218
+
219
+ https://rubygems.org/gems/oboe/versions/2.7.4.1
220
+ https://rubygems.org/gems/oboe/versions/2.7.4.1-java
221
+
222
+ # oboe 2.7.3.1 (10/15/2014)
223
+
224
+ This patch release includes:
225
+
226
+ * Fix require statements under certain variations of REE-1.8.7: #78 (thanks @madrobby)
227
+ * Faraday instrumentation fails to capture and pass params update block: #79
228
+ * Add method to log environment details for support investigations (`Oboe.support_ report`): #77
229
+
230
+ Pushed to Rubygems:
231
+
232
+ https://rubygems.org/gems/oboe/versions/2.7.3.1
233
+ https://rubygems.org/gems/oboe/versions/2.7.3.1-java
234
+
235
+ # oboe 2.7.2.2 (09/26/2014)
236
+
237
+ This patch release includes:
238
+
239
+ * New [Faraday](https://github.com/lostisland/faraday) instrumentation: https://github.com/appneta/oboe-ruby/pull/68
240
+ * Auto-initialize instrumentation when no framework detected: https://github.com/appneta/oboe-ruby/pull/76
241
+ * Willingly ignore traceview missing libraries warning: https://github.com/appneta/oboe-ruby/pull/75 (thanks @theist!)
242
+
243
+ Pushed to Rubygems:
244
+
245
+ https://rubygems.org/gems/oboe/versions/2.7.2.2
246
+ https://rubygems.org/gems/oboe/versions/2.7.2.2-java
247
+
248
+ # oboe 2.7.1.7 (09/08/2014)
249
+
250
+ This patch release includes:
251
+
252
+ * Fixed load stack trace when missing TraceView base libraries: [#72](https://github.com/appneta/oboe-ruby/pull/72) - thanks @theist!
253
+ * Beta `em-http-request` instrumentation: [#60](https://github.com/appneta/oboe-ruby/pull/60)/[#73](https://github.com/appneta/oboe-ruby/pull/73) - Thanks @diogobenica!
254
+ * Improved loading when on Heroku with oboe-heroku gem
255
+
256
+ Pushed to Rubygems:
257
+
258
+ https://rubygems.org/gems/oboe/versions/2.7.1.7
259
+ https://rubygems.org/gems/oboe/versions/2.7.1.7-java
260
+
261
+ # oboe 2.7.0.3 (08/19/2014)
262
+
263
+ This minor release includes:
264
+
265
+ * [JRuby instrumentation](https://github.com/appneta/oboe-ruby/pull/51) is back and better than ever.
266
+ * [Updated moped instrumentation](https://github.com/appneta/oboe-ruby/pull/63) to support moped v2 changes
267
+ * Simplify start_trace by setting a default param: [#67](https://github.com/appneta/oboe-ruby/pull/67)
268
+
269
+ This release also includes [our first pure java platform Ruby gem](https://rubygems.org/gems/oboe/versions/2.7.0.3-java) (no c-extension for JRuby yay!).
270
+
271
+ Pushed to Rubygems:
272
+
273
+ https://rubygems.org/gems/oboe/versions/2.7.0.3
274
+ https://rubygems.org/gems/oboe/versions/2.7.0.3-java
275
+
276
+ Related: http://www.appneta.com/blog/jruby-whole-java-world/
277
+
278
+ # oboe 2.6.8 (07/31/2014)
279
+
280
+ This patch release includes:
281
+
282
+ * Fix [instrumentation load for Padrino in test environments](https://github.com/appneta/oboe-ruby/pull/65)
283
+ * [Add delay](https://github.com/appneta/oboe-ruby/pull/66) in test suite to allow downloading of sample rate info
284
+
285
+ Pushed to Rubygems: https://rubygems.org/gems/oboe/versions/2.6.8
286
+
287
+ # oboe 2.6.7.1 (07/23/2014)
288
+
289
+ This patch release includes better error handling, API clean-up and RUM template improvements.
290
+
291
+ * [Add RUM helpers](https://github.com/appneta/oboe-ruby/pull/56) for Sinatra and Padrino stacks. Thanks @tlunter!
292
+ * Prefer [StandardError over Exception](https://github.com/appneta/oboe-ruby/pull/59) for rescue blocks that we handle directly
293
+ * [Clean up Oboe logging API](https://github.com/appneta/oboe-ruby/pull/58): Oboe.log, Oboe::Context.log and Oboe::API.log redundancy
294
+
295
+ # oboe 2.6.6.1 (06/16/2014)
296
+
297
+ This patch release adds new instrumentation and a couple fixes:
298
+
299
+ * [Add instrumentation support](https://github.com/appneta/oboe-ruby/pull/37) for [Grape API Micro Framework](http://intridea.github.io/grape/) (thanks @tlunter!)
300
+ * Important [Mongo find operation with block fix](https://github.com/appneta/oboe-ruby/pull/53) (thanks @rafaelfranca!)
301
+ * Better and more [data independent tests](https://github.com/appneta/oboe-ruby/pull/52) for Travis
302
+
303
+ # oboe 2.6.5.5 (06/02/2014)
304
+
305
+ 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).
306
+
307
+ # oboe 2.6.4.1 (04/30/2014)
308
+
309
+ 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.
310
+
311
+ # oboe 2.6.3.0 (04/07/2014)
312
+
313
+ This patch releases fixes a number of smaller issues:
314
+
315
+ * the gem will no longer start traces on static assets (https://github.com/appneta/oboe-ruby/pull/31)
316
+ * fix occasionally broken `profile_name` values when using [custom method tracing](https://github.com/appneta/oboe-ruby#tracing-methods)
317
+ * fix for incorrectly starting traces when in `through` tracing mode under certain circumstances
318
+ * Expand the test suite to validate sample rates and tracing modes (https://github.com/appneta/oboe-ruby/pull/8)
319
+
320
+ # oboe 2.6.2.0 (03/24/2014)
321
+
322
+ * This patch release improves webserver detection on Heroku and adds in some c extension protections. A oboe-heroku gem release will follow this release.
323
+
324
+ # oboe 2.6.1.0 (03/12/2014)
325
+
326
+ 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.
327
+
328
+ * Support delayed Reporter Initialization for Forking Webservers
329
+ * README syntax fixes
330
+
331
+ # oboe 2.5.0.7 (02/2013/2014)
332
+
333
+ * Added new Redis redis-rb gem (>= 3.0.0) instrumentation
334
+ * Fix a SampleSource bitmask high bit issue
335
+ * Expanded __Init reports
336
+ * Fix Ruby standalone returning nil X-Trace headers (1B000000...)
337
+ * Test against Ruby 2.1.0 on TravisCI
338
+ * Fix errant Oboe::Config warning
339
+
340
+ # oboe 2.4.0.1 (01/12/2013)
341
+
342
+ * Report SampleRate & SampleSource per updated SWIG API
343
+ * Change OboeHeroku __Init Key
344
+ * Remove oboe_fu artifacts
345
+ * CodeClimate Initiated improvements
346
+ * Remove SSL connection requirement from Net::HTTP tests
347
+ * oboe.gemspec doesn't specify Ruby 1.8 json dependency
348
+ * add config to blacklist tracing of actions (thanks @nathantsoi!)
349
+ * Report the application server used
350
+ * Support Oboe::Config.merge! and warn on non-existent (thanks @adamjt!)
351
+
352
+ # oboe 2.3.4.1 (11/21/2013)
353
+
354
+ * Stacks that use a caching system like Varnish could see corrupted traces; fixed.
355
+
356
+ # oboe 2.3.3.7 (11/06/2013)
357
+
358
+ * Rename the _Init layer to "rack"
359
+ * Decode URLS when reporting them
360
+ * Resque layer naming split into 1) client queuing of a job: 'resque-client', 2) Resque worker running a job: 'resque-worker'
361
+ * Fix for an extension load error and some refactoring of functionality into a base module (OboeBase)
362
+ * Improved and more resilient method profiling
363
+ * Further refactoring for Ruby 2.0 support
364
+ * Track the version of the instrumentation installed
365
+
366
+ # oboe 2.3.2 (10/22/2013)
367
+
368
+ * Backtrace collection can now be configured to skip certain components if a lighter-weight trace is desired
369
+ * On MRI Ruby the hostname of the Tracelyzer is now configurable via Oboe::Config[:reporter_host] (default is localhost)
370
+ * Fix to MongoDb query identification
371
+ * Event building in the Rack layer optimized
372
+ * Renamed "sampling_rate" to be "sample_rate" for consistency
373
+ * More tests added and documentation in anticipation of our Ruby open-source initiative
374
+
375
+ # oboe 2.2.6 (09/27/2013)
376
+
377
+ * Query Privacy now fully supported; can configure the app to not send SQL parameters if needed
378
+ * Configuring the local sample rate now supports 1e6 notation
379
+ * Improved log messaging if a gem dependency is missing
380
+ * Now reporting HTTPStatus on http client calls
381
+ * Heroku - the start time when a request hits the load balancer now captured
382
+
383
+ # oboe 2.2.0 (09/12/2013)
384
+
385
+ * Initial support for Rails 4
386
+ * Various internal reporting fixes and improvements
387
+ * Fix for auto sampling rate
388
+
389
+ # oboe 2.1.4 (08/01/2013)
390
+
391
+ * Integration support for AppView Web
392
+
393
+ # oboe 2.1.3 (07/16/2013)
394
+
395
+ * Allow _Access Key_ assignment via Environment variable: TRACEVIEW_CUUID
396
+
397
+ # oboe 2.1.1
398
+
399
+ * The gem now logs via a standard Ruby logger: Oboe.logger
400
+ * Add in rspec tests
401
+ * JRuby now supports Smart Tracing
402
+ * Fixed an invalid Profile name in ActionView Partial tracing
403
+
404
+ # oboe 1.4.2.2
405
+
406
+ * Rack - add handling for potential nil result
407
+
408
+ # oboe 1.4.2
409
+
410
+ * Cassandra - ensure all keys are captured when reporting exceptions
411
+ * JRuby detection fix
412
+
413
+ # oboe 1.4.1.2
414
+
415
+ * HTTP keys now captured at Rack level instead of Rails
416
+ * RUM templates are now pre-loaded
417
+ * Improved layer agnostic info event reporting
418
+
419
+ # oboe 1.4.0.2
420
+
421
+ * Resque support
422
+ * Fix Rails 2 bug where SET and SHOW could result in recursive calls
423
+ * Memcache - multi-get calls now report a total for number of keys and number
424
+ of hits
425
+ * Configuration - added ability to identify components to skip from
426
+ instrumentation
427
+ * Configuration - sending Resque parameters can be skipped if privacy an issue.
428
+
429
+ # oboe 1.3.9.1
430
+
431
+ * Add in Rack instrumentation
432
+ * Fix Function profiling of class methods bug
433
+ * Add backtraces to Cassandra and Mongo operations
434
+ * Rename the "render" layer to "actionview"
435
+
436
+ # oboe 1.3.8
437
+
438
+ * More comprehensive JRuby support
439
+
440
+ # oboe 1.3.7
441
+
442
+ * Added Moped driver instrumentation (Mongo/Mongoid)
443
+
444
+ # oboe 1.3.6
445
+
446
+ * Added Rails ActionView partial and collection rendering instrumentation
447
+
448
+ # oboe 1.3.5
449
+
450
+ * Added cassandra instrumentation
451
+
452
+ # oboe 1.3.4
453
+
454
+ * Added mongo-ruby-driver support
455
+
456
+ # oboe 1.3.3
457
+
458
+ * Updated RUM instrumentation templates
459
+
460
+ # oboe 1.3.2
461
+
462
+ * Fix a case when the RUM instrumentation header/footer methods would not
463
+ return JS output, depending on how the way they were called from HAML.
464
+
465
+ # oboe 1.3.1
466
+
467
+ * Support for RUM instrumentation.
468
+ Fix for certain cases where exceptions were not properly propagated up to Rails
469
+ error handlers.
470
+
471
+ # oboe 1.3.0
472
+
473
+ * The oboe and oboe_fu gems have been merged to simplify installation. The
474
+ final oboe_fu gem (1.3.0) simply calls "require 'oboe'" now for backwards
475
+ compatibility.
476
+ * Please note our updated installation instructions for the new location of
477
+ Ruby oboe API methods.
478
+ * Our gem now successfully installs even if your platform does not have our
479
+ base packages (liboboe) installed, so you can deploy to environments with or
480
+ without TraceView support.
481
+
482
+ # oboe_fu 1.2.1
483
+
484
+ * Support for instrumenting the dalli module.
485
+
486
+ # oboe_fu 1.2.0
487
+
488
+ * Support for Rails 2.3, 3.0, 3.1, and 3.2.
489
+
490
+
data/CONFIG.md ADDED
@@ -0,0 +1,16 @@
1
+ # TraceView Gem Configuration
2
+
3
+ ## Environment Variables
4
+
5
+ The following environment variables are detected by the traceview gem:
6
+
7
+ * `IGNORE_TRACEVIEW_WARNING` - tells the traceview gem to __not__ output the _missing TraceView libraries_ message on stack initialization
8
+
9
+ * `TRACEVIEW_GEM_VERBOSE` - sets the verbose flag (`TraceView::Config[:verbose]`) early in the gem loading process which may output valuable information
10
+
11
+ ## TraceView::Config
12
+
13
+ `TraceView::Config` is a nested hash used by the traceview gem to store preferences and switches.
14
+
15
+ See [this Rails generator template file](https://github.com/appneta/oboe-ruby/blob/master/lib/rails/generators/traceview/templates/traceview_initializer.rb) for documentation on all of the supported values.
16
+
data/Gemfile ADDED
@@ -0,0 +1,95 @@
1
+ source 'https://rubygems.org'
2
+
3
+ group :development, :test do
4
+ gem 'minitest', "5.5.1"
5
+ gem 'minitest-reporters'
6
+ gem 'minitest-debugger', :require => false
7
+ gem 'rack-test'
8
+ gem 'puma'
9
+ if RUBY_VERSION < '1.9.3'
10
+ # i18n 0.7.0 dropped support for Ruby 1.9.2 and older. ActiveSupport
11
+ # depends on i18n 0.7.0 since v 4.0.5. For < 1.9.2 Ruby support, lock
12
+ # down to these versions to maintain functionality.
13
+ gem 'i18n', '< 0.7.0'
14
+ gem 'activesupport', '< 4.0.5'
15
+ gem 'appraisal'
16
+ else
17
+ gem 'appraisal'
18
+ end
19
+ end
20
+
21
+ group :development do
22
+ gem 'ruby-debug', :platforms => [ :mri_18, :jruby ]
23
+ gem 'debugger', :platform => :mri_19
24
+ gem 'byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
25
+ # gem 'perftools.rb', :platforms => [ :mri_20, :mri_21 ], :require => 'perftools'
26
+ if RUBY_VERSION > '1.8.7'
27
+ gem 'pry'
28
+ gem 'pry-byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
29
+ else
30
+ gem 'pry', '0.9.12.4'
31
+ end
32
+ end
33
+
34
+ # Instrumented gems
35
+ gem 'dalli'
36
+ gem 'memcache-client'
37
+ gem 'cassandra'
38
+ gem 'mongo'
39
+ gem 'resque'
40
+ gem 'redis'
41
+ gem 'faraday'
42
+ gem 'httpclient'
43
+ gem 'excon'
44
+ gem 'typhoeus'
45
+ gem 'sequel'
46
+ if RUBY_VERSION >= '1.9.3'
47
+ # rest-client depends on mime-types gem which only supports
48
+ # ruby 1.9.3 and up
49
+ gem 'rest-client'
50
+ end
51
+
52
+ # Database adapter gems needed by sequel
53
+ if defined?(JRUBY_VERSION)
54
+ gem 'jdbc-postgresql'
55
+ gem 'jdbc-mysql'
56
+ else
57
+ gem 'mysql'
58
+ gem 'mysql2'
59
+ if RUBY_VERSION < '1.9.3'
60
+ gem 'pg', '0.17.1'
61
+ else
62
+ gem 'pg'
63
+ end
64
+ end
65
+
66
+ if RUBY_VERSION >= '1.9'
67
+ gem 'moped'
68
+ gem 'eventmachine'
69
+ gem 'em-synchrony'
70
+ gem 'em-http-request'
71
+ end
72
+
73
+ unless defined?(JRUBY_VERSION)
74
+ gem 'memcached', '1.7.2' if RUBY_VERSION < '2.0.0'
75
+ gem 'bson_ext' # For Mongo, Yours Truly
76
+ end
77
+
78
+ # Instrumented Frameworks
79
+
80
+ if defined?(JRUBY_VERSION)
81
+ gem 'sinatra', :require => false
82
+ else
83
+ gem 'sinatra'
84
+ end
85
+
86
+ if RUBY_VERSION >= '1.9.3'
87
+ gem 'padrino', '0.12.0'
88
+ gem 'grape'
89
+ gem 'bson'
90
+ else
91
+ gem 'bson', '1.10.2'
92
+ end
93
+
94
+ gemspec
95
+