appoptics_apm 4.0.2

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 (226) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +43 -0
  3. data/.dockerignore +5 -0
  4. data/.gitignore +23 -0
  5. data/.rubocop.yml +5 -0
  6. data/.travis.yml +82 -0
  7. data/CHANGELOG.md +769 -0
  8. data/CONFIG.md +33 -0
  9. data/Dockerfile +41 -0
  10. data/Dockerfile_test +66 -0
  11. data/Gemfile +41 -0
  12. data/LICENSE +193 -0
  13. data/README.md +351 -0
  14. data/Rakefile +202 -0
  15. data/Vagrantfile +67 -0
  16. data/appoptics_apm.gemspec +55 -0
  17. data/build_gems.sh +15 -0
  18. data/docker-compose.yml +73 -0
  19. data/examples/DNT.md +35 -0
  20. data/examples/carrying_context.rb +220 -0
  21. data/examples/instrumenting_metal_controller.rb +8 -0
  22. data/examples/puma_on_heroku_config.rb +17 -0
  23. data/examples/tracing_async_threads.rb +124 -0
  24. data/examples/tracing_background_jobs.rb +53 -0
  25. data/examples/tracing_forked_processes.rb +99 -0
  26. data/examples/unicorn_on_heroku_config.rb +28 -0
  27. data/ext/oboe_metal/extconf.rb +54 -0
  28. data/ext/oboe_metal/lib/.keep +0 -0
  29. data/ext/oboe_metal/lib/liboboe-1.0.so.0.0.0 +0 -0
  30. data/ext/oboe_metal/noop/noop.c +7 -0
  31. data/ext/oboe_metal/src/VERSION +1 -0
  32. data/ext/oboe_metal/src/bson/bson.h +221 -0
  33. data/ext/oboe_metal/src/bson/platform_hacks.h +91 -0
  34. data/ext/oboe_metal/src/oboe.h +883 -0
  35. data/ext/oboe_metal/src/oboe.hpp +793 -0
  36. data/ext/oboe_metal/src/oboe_debug.h +50 -0
  37. data/ext/oboe_metal/src/oboe_wrap.cxx +6088 -0
  38. data/ext/oboe_metal/tests/test.rb +11 -0
  39. data/gemfiles/delayed_job.gemfile +36 -0
  40. data/gemfiles/frameworks.gemfile +44 -0
  41. data/gemfiles/instrumentation_mocked.gemfile +29 -0
  42. data/gemfiles/libraries.gemfile +85 -0
  43. data/gemfiles/rails23.gemfile +39 -0
  44. data/gemfiles/rails30.gemfile +42 -0
  45. data/gemfiles/rails31.gemfile +44 -0
  46. data/gemfiles/rails32.gemfile +54 -0
  47. data/gemfiles/rails40.gemfile +27 -0
  48. data/gemfiles/rails41.gemfile +27 -0
  49. data/gemfiles/rails42.gemfile +35 -0
  50. data/gemfiles/rails50.gemfile +44 -0
  51. data/gemfiles/rails51.gemfile +44 -0
  52. data/get_version.rb +5 -0
  53. data/init.rb +4 -0
  54. data/lib/appoptics_apm/api/layerinit.rb +39 -0
  55. data/lib/appoptics_apm/api/logging.rb +359 -0
  56. data/lib/appoptics_apm/api/memcache.rb +34 -0
  57. data/lib/appoptics_apm/api/profiling.rb +201 -0
  58. data/lib/appoptics_apm/api/tracing.rb +152 -0
  59. data/lib/appoptics_apm/api/util.rb +128 -0
  60. data/lib/appoptics_apm/api.rb +18 -0
  61. data/lib/appoptics_apm/base.rb +252 -0
  62. data/lib/appoptics_apm/config.rb +281 -0
  63. data/lib/appoptics_apm/frameworks/grape.rb +93 -0
  64. data/lib/appoptics_apm/frameworks/padrino/templates.rb +58 -0
  65. data/lib/appoptics_apm/frameworks/padrino.rb +52 -0
  66. data/lib/appoptics_apm/frameworks/rails/inst/action_controller.rb +106 -0
  67. data/lib/appoptics_apm/frameworks/rails/inst/action_controller2.rb +61 -0
  68. data/lib/appoptics_apm/frameworks/rails/inst/action_controller3.rb +58 -0
  69. data/lib/appoptics_apm/frameworks/rails/inst/action_controller4.rb +48 -0
  70. data/lib/appoptics_apm/frameworks/rails/inst/action_controller5.rb +50 -0
  71. data/lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb +50 -0
  72. data/lib/appoptics_apm/frameworks/rails/inst/action_view.rb +58 -0
  73. data/lib/appoptics_apm/frameworks/rails/inst/action_view_2x.rb +56 -0
  74. data/lib/appoptics_apm/frameworks/rails/inst/action_view_30.rb +50 -0
  75. data/lib/appoptics_apm/frameworks/rails/inst/active_record.rb +27 -0
  76. data/lib/appoptics_apm/frameworks/rails/inst/connection_adapters/mysql.rb +43 -0
  77. data/lib/appoptics_apm/frameworks/rails/inst/connection_adapters/mysql2.rb +28 -0
  78. data/lib/appoptics_apm/frameworks/rails/inst/connection_adapters/postgresql.rb +30 -0
  79. data/lib/appoptics_apm/frameworks/rails/inst/connection_adapters/utils.rb +120 -0
  80. data/lib/appoptics_apm/frameworks/rails/inst/connection_adapters/utils5x.rb +101 -0
  81. data/lib/appoptics_apm/frameworks/rails.rb +116 -0
  82. data/lib/appoptics_apm/frameworks/sinatra/templates.rb +56 -0
  83. data/lib/appoptics_apm/frameworks/sinatra.rb +71 -0
  84. data/lib/appoptics_apm/inst/bunny-client.rb +148 -0
  85. data/lib/appoptics_apm/inst/bunny-consumer.rb +92 -0
  86. data/lib/appoptics_apm/inst/curb.rb +329 -0
  87. data/lib/appoptics_apm/inst/dalli.rb +85 -0
  88. data/lib/appoptics_apm/inst/delayed_job.rb +92 -0
  89. data/lib/appoptics_apm/inst/em-http-request.rb +105 -0
  90. data/lib/appoptics_apm/inst/excon.rb +130 -0
  91. data/lib/appoptics_apm/inst/faraday.rb +77 -0
  92. data/lib/appoptics_apm/inst/http.rb +83 -0
  93. data/lib/appoptics_apm/inst/httpclient.rb +176 -0
  94. data/lib/appoptics_apm/inst/memcache.rb +102 -0
  95. data/lib/appoptics_apm/inst/memcached.rb +94 -0
  96. data/lib/appoptics_apm/inst/mongo.rb +242 -0
  97. data/lib/appoptics_apm/inst/mongo2.rb +225 -0
  98. data/lib/appoptics_apm/inst/moped.rb +466 -0
  99. data/lib/appoptics_apm/inst/rack.rb +146 -0
  100. data/lib/appoptics_apm/inst/redis.rb +275 -0
  101. data/lib/appoptics_apm/inst/resque.rb +151 -0
  102. data/lib/appoptics_apm/inst/rest-client.rb +50 -0
  103. data/lib/appoptics_apm/inst/sequel.rb +178 -0
  104. data/lib/appoptics_apm/inst/sidekiq-client.rb +53 -0
  105. data/lib/appoptics_apm/inst/sidekiq-worker.rb +67 -0
  106. data/lib/appoptics_apm/inst/twitter-cassandra.rb +294 -0
  107. data/lib/appoptics_apm/inst/typhoeus.rb +113 -0
  108. data/lib/appoptics_apm/instrumentation.rb +22 -0
  109. data/lib/appoptics_apm/legacy_method_profiling.rb +97 -0
  110. data/lib/appoptics_apm/loading.rb +66 -0
  111. data/lib/appoptics_apm/logger.rb +41 -0
  112. data/lib/appoptics_apm/method_profiling.rb +33 -0
  113. data/lib/appoptics_apm/ruby.rb +35 -0
  114. data/lib/appoptics_apm/support.rb +135 -0
  115. data/lib/appoptics_apm/test.rb +94 -0
  116. data/lib/appoptics_apm/thread_local.rb +26 -0
  117. data/lib/appoptics_apm/util.rb +312 -0
  118. data/lib/appoptics_apm/version.rb +15 -0
  119. data/lib/appoptics_apm/xtrace.rb +103 -0
  120. data/lib/appoptics_apm.rb +72 -0
  121. data/lib/joboe_metal.rb +214 -0
  122. data/lib/oboe/README +2 -0
  123. data/lib/oboe/backward_compatibility.rb +80 -0
  124. data/lib/oboe/inst/rack.rb +11 -0
  125. data/lib/oboe.rb +7 -0
  126. data/lib/oboe_metal.rb +187 -0
  127. data/lib/rails/generators/appoptics_apm/install_generator.rb +45 -0
  128. data/lib/rails/generators/appoptics_apm/templates/appoptics_apm_initializer.rb +222 -0
  129. data/ruby_setup.sh +47 -0
  130. data/run_docker_build_gem_upload_to_packagecloud.sh +20 -0
  131. data/run_tests_docker.rb +32 -0
  132. data/test/benchmark/README.md +65 -0
  133. data/test/benchmark/logging_bench.rb +54 -0
  134. data/test/benchmark/with_libraries_gemfile/bunny_bench.rb +69 -0
  135. data/test/benchmark/with_rails5x_gemfile/action_controller5x_bench.rb +43 -0
  136. data/test/frameworks/apps/grape_nested.rb +33 -0
  137. data/test/frameworks/apps/grape_simple.rb +80 -0
  138. data/test/frameworks/apps/padrino_simple.rb +80 -0
  139. data/test/frameworks/apps/sinatra_simple.rb +55 -0
  140. data/test/frameworks/grape_test.rb +286 -0
  141. data/test/frameworks/padrino_test.rb +222 -0
  142. data/test/frameworks/rails3x_test.rb +554 -0
  143. data/test/frameworks/rails4x_test.rb +570 -0
  144. data/test/frameworks/rails5x_api_test.rb +210 -0
  145. data/test/frameworks/rails5x_test.rb +376 -0
  146. data/test/frameworks/rails_shared_tests.rb +172 -0
  147. data/test/frameworks/sinatra_test.rb +140 -0
  148. data/test/instrumentation/bunny_client_test.rb +276 -0
  149. data/test/instrumentation/bunny_consumer_test.rb +204 -0
  150. data/test/instrumentation/curb_test.rb +398 -0
  151. data/test/instrumentation/dalli_test.rb +177 -0
  152. data/test/instrumentation/em_http_request_test.rb +89 -0
  153. data/test/instrumentation/excon_test.rb +231 -0
  154. data/test/instrumentation/faraday_test.rb +228 -0
  155. data/test/instrumentation/http_test.rb +143 -0
  156. data/test/instrumentation/httpclient_test.rb +320 -0
  157. data/test/instrumentation/memcache_test.rb +260 -0
  158. data/test/instrumentation/memcached_test.rb +229 -0
  159. data/test/instrumentation/mongo_v1_test.rb +479 -0
  160. data/test/instrumentation/mongo_v2_index_test.rb +124 -0
  161. data/test/instrumentation/mongo_v2_test.rb +584 -0
  162. data/test/instrumentation/mongo_v2_view_test.rb +435 -0
  163. data/test/instrumentation/moped_test.rb +517 -0
  164. data/test/instrumentation/rack_test.rb +165 -0
  165. data/test/instrumentation/redis_hashes_test.rb +268 -0
  166. data/test/instrumentation/redis_keys_test.rb +321 -0
  167. data/test/instrumentation/redis_lists_test.rb +310 -0
  168. data/test/instrumentation/redis_misc_test.rb +163 -0
  169. data/test/instrumentation/redis_sets_test.rb +296 -0
  170. data/test/instrumentation/redis_sortedsets_test.rb +328 -0
  171. data/test/instrumentation/redis_strings_test.rb +349 -0
  172. data/test/instrumentation/resque_test.rb +185 -0
  173. data/test/instrumentation/rest-client_test.rb +288 -0
  174. data/test/instrumentation/sequel_mysql2_test.rb +353 -0
  175. data/test/instrumentation/sequel_mysql_test.rb +334 -0
  176. data/test/instrumentation/sequel_pg_test.rb +336 -0
  177. data/test/instrumentation/sidekiq-client_test.rb +159 -0
  178. data/test/instrumentation/sidekiq-worker_test.rb +180 -0
  179. data/test/instrumentation/twitter-cassandra_test.rb +424 -0
  180. data/test/instrumentation/typhoeus_test.rb +284 -0
  181. data/test/jobs/delayed_job/db_worker_job.rb +29 -0
  182. data/test/jobs/delayed_job/error_worker_job.rb +10 -0
  183. data/test/jobs/delayed_job/remote_call_worker_job.rb +20 -0
  184. data/test/jobs/resque/db_worker_job.rb +29 -0
  185. data/test/jobs/resque/error_worker_job.rb +10 -0
  186. data/test/jobs/resque/remote_call_worker_job.rb +20 -0
  187. data/test/jobs/sidekiq/db_worker_job.rb +29 -0
  188. data/test/jobs/sidekiq/error_worker_job.rb +10 -0
  189. data/test/jobs/sidekiq/remote_call_worker_job.rb +20 -0
  190. data/test/minitest_helper.rb +276 -0
  191. data/test/mocked/curb_mocked_test.rb +311 -0
  192. data/test/mocked/excon_mocked_test.rb +166 -0
  193. data/test/mocked/faraday_mocked_test.rb +93 -0
  194. data/test/mocked/http_mocked_test.rb +129 -0
  195. data/test/mocked/httpclient_mocked_test.rb +245 -0
  196. data/test/mocked/rest_client_mocked_test.rb +103 -0
  197. data/test/mocked/typhoeus_mocked_test.rb +192 -0
  198. data/test/models/widget.rb +36 -0
  199. data/test/profiling/legacy_method_profiling_test.rb +201 -0
  200. data/test/profiling/method_profiling_test.rb +631 -0
  201. data/test/queues/delayed_job-client_test.rb +95 -0
  202. data/test/queues/delayed_job-worker_test.rb +91 -0
  203. data/test/reporter/reporter_test.rb +14 -0
  204. data/test/servers/delayed_job.rb +107 -0
  205. data/test/servers/rackapp_8101.rb +29 -0
  206. data/test/servers/rails3x_8140.rb +96 -0
  207. data/test/servers/rails4x_8140.rb +96 -0
  208. data/test/servers/rails5x_8140.rb +95 -0
  209. data/test/servers/rails5x_api_8150.rb +78 -0
  210. data/test/servers/sidekiq.rb +29 -0
  211. data/test/servers/sidekiq.yml +7 -0
  212. data/test/servers/sidekiq_initializer.rb +25 -0
  213. data/test/settings +0 -0
  214. data/test/support/auto_tracing_test.rb +50 -0
  215. data/test/support/backcompat_test.rb +276 -0
  216. data/test/support/config_test.rb +149 -0
  217. data/test/support/dnt_test.rb +98 -0
  218. data/test/support/init_report_test.rb +25 -0
  219. data/test/support/liboboe_settings_test.rb +110 -0
  220. data/test/support/logging_test.rb +130 -0
  221. data/test/support/noop_test.rb +88 -0
  222. data/test/support/sql_sanitize_test.rb +55 -0
  223. data/test/support/tracing_mode_test.rb +33 -0
  224. data/test/support/tvalias_test.rb +15 -0
  225. data/test/support/xtrace_test.rb +41 -0
  226. metadata +475 -0
@@ -0,0 +1,11 @@
1
+ # Copyright (c) 2016 SolarWinds, LLC.
2
+ # All rights reserved.
3
+
4
+ require 'oboe'
5
+
6
+ r = Oboe::UdpReporter.new('127.0.0.1')
7
+ Oboe::Context.init()
8
+ e = Oboe::Context.createEvent()
9
+ e.addInfo("TestKey", "TestValue")
10
+ r.sendReport(e)
11
+
@@ -0,0 +1,36 @@
1
+ source "https://rubygems.org"
2
+
3
+ group :development, :test do
4
+ gem 'rake'
5
+ gem 'minitest'
6
+ gem 'minitest-reporters', '< 1.0.18'
7
+ gem 'minitest-debugger', :require => false
8
+ gem 'rack-test'
9
+ gem 'puma', '< 3.1.0'
10
+ gem 'bson', '< 4.0'
11
+ end
12
+
13
+ # New mime-types/mime-types-data requires ruby 2.0
14
+ if RUBY_VERSION < '2.0'
15
+ gem 'mime-types', '< 3.0'
16
+ end
17
+
18
+ if defined?(JRUBY_VERSION)
19
+ gem 'sinatra', :require => false
20
+ gem 'activerecord-jdbc-adapter'
21
+ gem 'jdbc-postgresql'
22
+ else
23
+ gem 'sinatra'
24
+ # pg 0.19 and above require ruby 2.0
25
+ if RUBY_VERSION < '2.0'
26
+ gem 'pg', '< 0.19'
27
+ else
28
+ gem 'pg', '< 1.0.0' # rails is not ready for pg 1.0
29
+ end
30
+ gem "delayed_job_active_record"
31
+ end
32
+
33
+ gem "rails", "~> 4.2.5"
34
+
35
+ gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
36
+ # vim:syntax=ruby
@@ -0,0 +1,44 @@
1
+ source "https://rubygems.org"
2
+
3
+ group :development, :test do
4
+ gem 'rake'
5
+ gem 'minitest'
6
+ gem 'minitest-reporters', '< 1.0.18'
7
+ gem 'minitest-debugger', :require => false
8
+ gem 'mocha'
9
+ gem 'rack-test'
10
+ gem 'puma' #, '< 3.1.0'
11
+ if RUBY_VERSION < '1.9.3'
12
+ gem 'bson', '<= 1.12.3'
13
+ else
14
+ gem 'bson', '< 4.0'
15
+ end
16
+ end
17
+
18
+ # New mime-types/mime-types-data requires ruby 2.0
19
+ if RUBY_VERSION < '2.0'
20
+ # these gems dropped suport for < ruby version 2.0
21
+ gem 'json', '< 2.0.0'
22
+ end
23
+
24
+ if defined?(JRUBY_VERSION)
25
+ gem 'sinatra', :require => false
26
+ else
27
+ gem 'sinatra'
28
+ end
29
+
30
+ if RUBY_VERSION > '1.9.3'
31
+ gem "grape"
32
+
33
+ if defined?(JRUBY_VERSION)
34
+ # Limit padrino gem under JRuby as version 0.13.0 throws
35
+ # a bundler load error
36
+ gem "padrino", '< 0.13.0'
37
+ else
38
+ gem 'padrino'
39
+ end
40
+ end
41
+
42
+
43
+ gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
44
+ # vim:syntax=ruby
@@ -0,0 +1,29 @@
1
+ source "https://rubygems.org"
2
+
3
+ if RUBY_VERSION >= '2.0.0'
4
+ # rest-client depends on mime-types gem which only supports
5
+ # ruby 1.9.3 and up. Latest rest-client only
6
+ # supports Ruby 2.0+
7
+ gem 'rest-client'
8
+ end
9
+
10
+ group :development, :test do
11
+ gem 'minitest'
12
+ gem 'minitest-reporters', '< 1.0.18'
13
+ gem 'minitest-debugger', :require => false
14
+ gem 'rack-test'
15
+
16
+ gem 'rake'
17
+ gem 'puma', '< 3.1.0'
18
+ gem 'webmock'
19
+ gem 'mocha'
20
+ end
21
+
22
+ gem 'curb', '<= 0.9.3' unless defined?(JRUBY_VERSION)
23
+ gem 'excon'
24
+ gem 'faraday'
25
+ gem 'httpclient'
26
+ gem 'typhoeus'
27
+
28
+ gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
29
+ # vim:syntax=ruby
@@ -0,0 +1,85 @@
1
+ source "https://rubygems.org"
2
+
3
+
4
+ gem 'moped'
5
+ gem 'eventmachine', '< 1.2.0'
6
+ gem 'em-synchrony'
7
+ gem 'em-http-request'
8
+
9
+ if RUBY_VERSION >= '2.0.0'
10
+ # rest-client depends on mime-types gem which only supports
11
+ # ruby 1.9.3 and up. Latest rest-client only
12
+ # supports Ruby 2.0+
13
+ gem 'rest-client'
14
+ end
15
+
16
+
17
+ group :development, :test do
18
+ gem 'minitest'
19
+ gem 'minitest-reporters', '< 1.0.18'
20
+ gem 'minitest-debugger', :require => false
21
+ gem 'mocha'
22
+ gem 'rack-test'
23
+ gem 'rake'
24
+ gem 'bson', '~> 4.0'
25
+ gem 'puma', '< 3.1.0'
26
+ if RUBY_VERSION >= '2.0.0'
27
+ gem 'webmock'
28
+ end
29
+ end
30
+
31
+ if defined?(JRUBY_VERSION)
32
+ gem 'sinatra', :require => false
33
+ else
34
+ gem 'sinatra'
35
+ end
36
+
37
+ if RUBY_VERSION == '1.9.3'
38
+ gem 'mime-types', '< 3.0'
39
+ end
40
+
41
+ if RUBY_VERSION < '2.0.0'
42
+ gem 'bunny', '< 2.0.0'
43
+ # these gems dropped suport for < ruby version 2.0
44
+ gem 'json', '< 2.0.0'
45
+ else
46
+ gem 'bunny', '< 2.6.5'
47
+ end
48
+
49
+ gem 'mongo'
50
+
51
+ gem 'cassandra'
52
+ gem 'curb', '<= 0.9.3' unless defined?(JRUBY_VERSION)
53
+ gem 'dalli'
54
+ gem 'excon'
55
+ gem 'faraday'
56
+ gem 'httpclient'
57
+ gem 'memcache-client'
58
+ gem 'redis'
59
+ gem 'resque' unless defined?(JRUBY_VERSION) && RUBY_VERSION > '1.9.3'
60
+ gem 'sequel'
61
+ gem "sidekiq" if RUBY_VERSION >= '2.0'
62
+ gem 'typhoeus'
63
+
64
+ # Database adapter gems needed by sequel
65
+ if defined?(JRUBY_VERSION)
66
+ gem 'jdbc-postgresql'
67
+ gem 'jdbc-mysql'
68
+ else
69
+ if RUBY_VERSION < '2.4'
70
+ gem 'mysql'
71
+ end
72
+ gem 'mysql2'
73
+ if RUBY_VERSION < '2.0'
74
+ gem 'pg', '0.18.4'
75
+ else
76
+ gem 'pg'
77
+ end
78
+ end
79
+
80
+ unless defined?(JRUBY_VERSION)
81
+ gem 'memcached', '1.7.2' if RUBY_VERSION < '2.0.0'
82
+ end
83
+
84
+ gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
85
+ # vim:syntax=ruby
@@ -0,0 +1,39 @@
1
+ source "https://rubygems.org"
2
+
3
+ if RUBY_VERSION < '1.9.3'
4
+ # i18n 0.7.0 dropped support for Ruby 1.9.2 and older. ActiveSupport
5
+ # depends on i18n 0.7.0 since v 4.0.5. For < 1.9.2 Ruby support, lock
6
+ # down to these versions to maintain functionality.
7
+ gem 'i18n', '< 0.7.0'
8
+ gem 'activesupport', '< 4.0'
9
+ end
10
+
11
+ if RUBY_VERSION < '2.0.0'
12
+ # rack-cache dropped support for Ruby 1.9
13
+ gem 'rack-cache', '1.2'
14
+ end
15
+
16
+ group :development, :test do
17
+ gem 'rake'
18
+ gem 'minitest'
19
+ gem 'minitest-reporters', '< 1.0.18'
20
+ gem 'minitest-debugger', :require => false
21
+ gem 'rack-test'
22
+ gem 'puma'
23
+ if RUBY_VERSION < '1.9.3'
24
+ gem 'bson', '<= 1.12.3'
25
+ else
26
+ gem 'bson'
27
+ end
28
+ end
29
+
30
+ if defined?(JRUBY_VERSION)
31
+ gem 'sinatra', :require => false
32
+ else
33
+ gem 'sinatra'
34
+ end
35
+
36
+ gem "rails", "~> 2.3.18"
37
+
38
+ gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
39
+ # vim:syntax=ruby
@@ -0,0 +1,42 @@
1
+ source "https://rubygems.org"
2
+
3
+ if RUBY_VERSION < '1.9.3'
4
+ # i18n 0.7.0 dropped support for Ruby 1.9.2 and older. ActiveSupport
5
+ # depends on i18n 0.7.0 since v 4.0.5. For < 1.9.2 Ruby support, lock
6
+ # down to these versions to maintain functionality.
7
+ gem 'i18n', '< 0.7.0'
8
+ gem 'activesupport', '< 4.0'
9
+ end
10
+
11
+ if RUBY_VERSION < '2.0.0'
12
+ # rack-cache dropped support for Ruby 1.9
13
+ gem 'rack-cache', '1.2'
14
+ end
15
+
16
+ group :development, :test do
17
+ gem 'rake'
18
+ gem 'minitest'
19
+ gem 'minitest-reporters', '< 1.0.18'
20
+ gem 'minitest-debugger', :require => false
21
+ gem 'rack-test'
22
+ gem 'puma'
23
+ if RUBY_VERSION < '1.9.3'
24
+ gem 'bson', '<= 1.12.3'
25
+ else
26
+ gem 'bson'
27
+ end
28
+ end
29
+
30
+ if defined?(JRUBY_VERSION)
31
+ gem 'sinatra', :require => false
32
+ gem 'activerecord-jdbc-adapter'
33
+ gem 'jdbc-postgresql'
34
+ else
35
+ gem 'sinatra'
36
+ gem 'pg', '< 0.17'
37
+ end
38
+
39
+ gem "rails", "~> 3.0.20"
40
+
41
+ gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
42
+ # vim:syntax=ruby
@@ -0,0 +1,44 @@
1
+ source "https://rubygems.org"
2
+
3
+ if RUBY_VERSION < '1.9.3'
4
+ # i18n 0.7.0 dropped support for Ruby 1.9.2 and older. ActiveSupport
5
+ # depends on i18n 0.7.0 since v 4.0.5. For < 1.9.2 Ruby support, lock
6
+ # down to these versions to maintain functionality.
7
+ gem 'i18n', '< 0.7.0'
8
+ gem 'activesupport', '< 4.0'
9
+ end
10
+
11
+ if RUBY_VERSION < '2.0.0'
12
+ # rack-cache dropped support for Ruby 1.9
13
+ gem 'rack-cache', '1.2'
14
+ end
15
+
16
+ group :development, :test do
17
+ gem 'rake'
18
+ gem 'minitest'
19
+ gem 'minitest-reporters', '< 1.0.18'
20
+ gem 'minitest-debugger', :require => false
21
+ gem 'rack-test'
22
+ gem 'puma'
23
+ if RUBY_VERSION < '1.9.3'
24
+ gem 'bson', '<= 1.12.3'
25
+ else
26
+ gem 'bson'
27
+ end
28
+ end
29
+
30
+ if defined?(JRUBY_VERSION)
31
+ gem 'sinatra', :require => false
32
+ gem 'activerecord-jdbc-adapter'
33
+ gem 'jdbc-postgresql'
34
+ else
35
+ gem 'sinatra'
36
+ gem 'pg', '< 0.17'
37
+ gem 'mysql'
38
+ gem 'mysql2', '< 0.4.0'
39
+ end
40
+
41
+ gem "rails", "~> 3.1.12"
42
+
43
+ gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
44
+ # vim:syntax=ruby
@@ -0,0 +1,54 @@
1
+ source "https://rubygems.org"
2
+
3
+ if RUBY_VERSION < '1.9.3'
4
+ # i18n 0.7.0 dropped support for Ruby 1.9.2 and older. ActiveSupport
5
+ # depends on i18n 0.7.0 since v 4.0.5. For < 1.9.2 Ruby support, lock
6
+ # down to these versions to maintain functionality.
7
+ gem 'i18n', '< 0.7.0'
8
+ gem 'activesupport', '< 4.0'
9
+ end
10
+
11
+ if RUBY_VERSION < '2.0.0'
12
+ # rack-cache dropped support for Ruby 1.9
13
+ gem 'rack-cache', '1.2'
14
+ end
15
+
16
+ group :development, :test do
17
+ gem 'minitest'
18
+ gem 'minitest-reporters', '< 1.0.18'
19
+ gem 'minitest-debugger', :require => false
20
+ gem 'mocha'
21
+ gem 'rack-test'
22
+ if RUBY_VERSION < '1.9.3'
23
+ gem 'rake', '< 11.0'
24
+ gem 'bson', '<= 1.12.5'
25
+ gem 'puma', '< 3.0'
26
+ else
27
+ gem 'rake'
28
+ gem 'bson', '< 4.0'
29
+ gem 'puma', '< 3.1.0'
30
+ end
31
+ end
32
+
33
+ if defined?(JRUBY_VERSION)
34
+ gem 'sinatra', :require => false
35
+ gem 'activerecord-jdbc-adapter'
36
+ gem 'jdbc-postgresql'
37
+ else
38
+ gem 'sinatra'
39
+ gem 'pg', '< 1.0'
40
+ if RUBY_VERSION < '2.4'
41
+ gem 'mysql'
42
+ end
43
+ gem 'mysql2', '~> 0.3.10'
44
+ end
45
+
46
+ if RUBY_VERSION < '1.9'
47
+ # Newer Rails is incompatible with Ruby 1.8.7
48
+ gem "rails", "3.2.19"
49
+ else
50
+ gem "rails", "~> 3.2.22"
51
+ end
52
+
53
+ gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
54
+ # vim:syntax=ruby
@@ -0,0 +1,27 @@
1
+ source "https://rubygems.org"
2
+
3
+ group :development, :test do
4
+ gem 'rake'
5
+ gem 'minitest'
6
+ gem 'minitest-reporters', '< 1.0.18'
7
+ gem 'minitest-debugger', :require => false
8
+ gem 'rack-test'
9
+ gem 'puma', '< 3.1.0'
10
+ gem 'bson', '< 4.0'
11
+ end
12
+
13
+ if defined?(JRUBY_VERSION)
14
+ gem 'sinatra', :require => false
15
+ gem 'activerecord-jdbc-adapter'
16
+ gem 'jdbc-postgresql'
17
+ else
18
+ gem 'sinatra'
19
+ gem 'pg', '< 0.19'
20
+ gem 'mysql'
21
+ gem 'mysql2', '< 0.4.0'
22
+ end
23
+
24
+ gem "rails", "~> 4.0.13"
25
+
26
+ gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
27
+ # vim:syntax=ruby
@@ -0,0 +1,27 @@
1
+ source "https://rubygems.org"
2
+
3
+ group :development, :test do
4
+ gem 'rake'
5
+ gem 'minitest'
6
+ gem 'minitest-reporters', '< 1.0.18'
7
+ gem 'minitest-debugger', :require => false
8
+ gem 'rack-test'
9
+ gem 'puma', '< 3.1.0'
10
+ gem 'bson', '< 4.0'
11
+ end
12
+
13
+ if defined?(JRUBY_VERSION)
14
+ gem 'sinatra', :require => false
15
+ gem 'activerecord-jdbc-adapter'
16
+ gem 'jdbc-postgresql'
17
+ else
18
+ gem 'sinatra'
19
+ gem 'pg', '< 0.19'
20
+ gem 'mysql'
21
+ gem 'mysql2'
22
+ end
23
+
24
+ gem "rails", "~> 4.1.15"
25
+
26
+ gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
27
+ # vim:syntax=ruby
@@ -0,0 +1,35 @@
1
+ source "https://rubygems.org"
2
+
3
+ group :development, :test do
4
+ gem 'rake'
5
+ gem 'minitest'
6
+ gem 'minitest-reporters', '< 1.0.18'
7
+ gem 'minitest-debugger', :require => false
8
+ gem 'mocha'
9
+ gem 'rack-test'
10
+ gem 'puma', '< 3.1.0'
11
+ gem 'bson', '< 4.0'
12
+ end
13
+
14
+ # New mime-types/mime-types-data requires ruby 2.0
15
+ if RUBY_VERSION < '2.0'
16
+ gem 'mime-types', '< 3.0'
17
+ end
18
+
19
+ if defined?(JRUBY_VERSION)
20
+ gem 'sinatra', :require => false
21
+ gem 'activerecord-jdbc-adapter'
22
+ gem 'jdbc-postgresql'
23
+ else
24
+ gem 'sinatra'
25
+ gem 'pg', '< 0.19'
26
+ if RUBY_VERSION < '2.4'
27
+ gem 'mysql'
28
+ end
29
+ gem 'mysql2'
30
+ end
31
+
32
+ gem "rails", "~> 4.2.5"
33
+
34
+ gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
35
+ # vim:syntax=ruby
@@ -0,0 +1,44 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem 'rails', '>= 5.0.0.rc1', '< 5.1'
4
+ gem 'sass-rails', '~> 5.0'
5
+ gem 'uglifier', '>= 1.3.0'
6
+ gem 'coffee-rails', '~> 4.1.0'
7
+ gem 'therubyracer', platforms: :ruby
8
+ gem 'jquery-rails'
9
+ gem 'turbolinks', '~> 5.x'
10
+ gem 'jbuilder', '~> 2.0'
11
+
12
+ group :development do
13
+ # Access an IRB console on exception pages or by using <%= console %> in views
14
+ gem 'web-console', '~> 3.0'
15
+ gem 'listen', '~> 3.0.5'
16
+ # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
17
+ gem 'spring'
18
+ gem 'spring-watcher-listen', '~> 2.0.0'
19
+ end
20
+
21
+ # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
22
+ gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
23
+
24
+ group :development, :test do
25
+ gem 'rake'
26
+ gem 'minitest'
27
+ gem 'minitest-reporters', '< 1.0.18'
28
+ gem 'minitest-debugger', :require => false
29
+ gem 'mocha'
30
+ gem 'rack-test'
31
+ gem 'puma', '< 3.1.0'
32
+ gem 'bson', '< 4.0'
33
+ end
34
+
35
+ if defined?(JRUBY_VERSION)
36
+ gem 'activerecord-jdbc-adapter'
37
+ gem 'jdbc-postgresql'
38
+ else
39
+ gem 'pg', '< 1.0.0' # rails is not ready for pg 1.0
40
+ gem 'mysql2'
41
+ end
42
+
43
+ gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
44
+ # vim:syntax=ruby
@@ -0,0 +1,44 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem 'rails', '~> 5.1'
4
+ gem 'sass-rails'
5
+ gem 'uglifier'
6
+ gem 'coffee-rails'
7
+ gem 'therubyracer', platforms: :ruby
8
+ gem 'jquery-rails'
9
+ gem 'turbolinks'
10
+ gem 'jbuilder'
11
+
12
+ group :development do
13
+ # Access an IRB console on exception pages or by using <%= console %> in views
14
+ gem 'web-console'
15
+ gem 'listen'
16
+ # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
17
+ gem 'spring'
18
+ gem 'spring-watcher-listen'
19
+ end
20
+
21
+ # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
22
+ gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
23
+
24
+ group :development, :test do
25
+ gem 'rake'
26
+ gem 'minitest'
27
+ gem 'minitest-reporters'
28
+ gem 'minitest-debugger', :require => false
29
+ gem 'mocha'
30
+ gem 'rack-test'
31
+ gem 'puma'
32
+ gem 'bson'
33
+ end
34
+
35
+ if defined?(JRUBY_VERSION)
36
+ gem 'activerecord-jdbc-adapter'
37
+ gem 'jdbc-postgresql'
38
+ else
39
+ gem 'pg', '< 1.0.0' # rails is not ready for pg 1.0
40
+ gem 'mysql2'
41
+ end
42
+
43
+ gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
44
+ # vim:syntax=ruby
data/get_version.rb ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/lib/oboe/version.rb'
4
+
5
+ puts Oboe::Version::STRING
data/init.rb ADDED
@@ -0,0 +1,4 @@
1
+ # Copyright (c) 2016 SolarWinds, LLC.
2
+ # All rights reserved.
3
+
4
+ require 'appoptics_apm'
@@ -0,0 +1,39 @@
1
+ #--
2
+ # Copyright (c) 2016 SolarWinds, LLC.
3
+ # All rights reserved.
4
+ #++
5
+
6
+ module AppOpticsAPM
7
+ module API
8
+ ##
9
+ # Provides methods related to layer initialization and reporting
10
+ module LayerInit
11
+ # Internal: Report that instrumentation for the given layer has been
12
+ # installed, as well as the version of instrumentation and version of
13
+ # layer.
14
+ #
15
+ def report_init(layer = :rack) #:nodoc:
16
+ # Don't send __Init in test or if AppOpticsAPM
17
+ # isn't fully loaded (e.g. missing c-extension)
18
+ return if ENV.key?('APPOPTICS_GEM_TEST') || !AppOpticsAPM.loaded
19
+
20
+ platform_info = AppOpticsAPM::Util.build_init_report
21
+ log_init(layer, platform_info)
22
+ end
23
+
24
+ ##
25
+ # force_trace has been deprecated and will be removed in a subsequent version.
26
+ #
27
+ def force_trace
28
+ AppOpticsAPM.logger.warn 'AppOpticsAPM::API::LayerInit.force_trace has been deprecated and will be ' \
29
+ 'removed in a subsequent version.'
30
+
31
+ saved_mode = AppOpticsAPM::Config[:tracing_mode]
32
+ AppOpticsAPM::Config[:tracing_mode] = :always
33
+ yield
34
+ ensure
35
+ AppOpticsAPM::Config[:tracing_mode] = saved_mode
36
+ end
37
+ end
38
+ end
39
+ end