newrelic_rpm 3.18.1.330 → 4.0.0.332

Sign up to get free protection for your applications and to get access to all the features.
Files changed (229) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -74
  3. data/CHANGELOG.md +77 -0
  4. data/CONTRIBUTING.md +14 -6
  5. data/LICENSE +1 -88
  6. data/lib/new_relic/agent.rb +2 -103
  7. data/lib/new_relic/agent/agent.rb +3 -32
  8. data/lib/new_relic/agent/commands/thread_profiler_session.rb +2 -6
  9. data/lib/new_relic/agent/configuration/default_source.rb +1 -8
  10. data/lib/new_relic/agent/configuration/yaml_source.rb +1 -12
  11. data/lib/new_relic/agent/cross_app_monitor.rb +2 -1
  12. data/lib/new_relic/agent/cross_app_tracing.rb +4 -2
  13. data/lib/new_relic/agent/datastores/mongo.rb +1 -1
  14. data/lib/new_relic/agent/datastores/redis.rb +1 -1
  15. data/lib/new_relic/agent/encoding_normalizer.rb +1 -20
  16. data/lib/new_relic/agent/error_collector.rb +8 -21
  17. data/lib/new_relic/agent/inbound_request_monitor.rb +4 -1
  18. data/lib/new_relic/agent/instrumentation/active_record_helper.rb +14 -30
  19. data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +1 -1
  20. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +4 -5
  21. data/lib/new_relic/agent/instrumentation/curb.rb +2 -2
  22. data/lib/new_relic/agent/instrumentation/excon.rb +3 -3
  23. data/lib/new_relic/agent/instrumentation/grape.rb +3 -3
  24. data/lib/new_relic/agent/instrumentation/httpclient.rb +2 -2
  25. data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +2 -2
  26. data/lib/new_relic/agent/instrumentation/middleware_proxy.rb +2 -2
  27. data/lib/new_relic/agent/instrumentation/middleware_tracing.rb +3 -7
  28. data/lib/new_relic/agent/instrumentation/queue_time.rb +13 -15
  29. data/lib/new_relic/agent/instrumentation/rack.rb +4 -50
  30. data/lib/new_relic/agent/instrumentation/rake.rb +1 -1
  31. data/lib/new_relic/agent/instrumentation/resque.rb +1 -2
  32. data/lib/new_relic/agent/instrumentation/sinatra.rb +0 -1
  33. data/lib/new_relic/agent/instrumentation/typhoeus.rb +2 -2
  34. data/lib/new_relic/agent/javascript_instrumentor.rb +3 -2
  35. data/lib/new_relic/agent/method_tracer.rb +1 -60
  36. data/lib/new_relic/agent/new_relic_service.rb +3 -2
  37. data/lib/new_relic/agent/new_relic_service/encoders.rb +5 -6
  38. data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +7 -16
  39. data/lib/new_relic/agent/pipe_channel_manager.rb +1 -3
  40. data/lib/new_relic/agent/pipe_service.rb +1 -3
  41. data/lib/new_relic/agent/rules_engine.rb +2 -17
  42. data/lib/new_relic/agent/stats_engine.rb +0 -2
  43. data/lib/new_relic/agent/stats_engine/metric_stats.rb +0 -48
  44. data/lib/new_relic/agent/supported_versions.rb +12 -19
  45. data/lib/new_relic/agent/threading/backtrace_service.rb +1 -1
  46. data/lib/new_relic/agent/transaction.rb +0 -3
  47. data/lib/new_relic/agent/transaction/attributes.rb +1 -10
  48. data/lib/new_relic/agent/vm.rb +1 -4
  49. data/lib/new_relic/agent/vm/jruby_vm.rb +1 -3
  50. data/lib/new_relic/agent/vm/mri_vm.rb +2 -10
  51. data/lib/new_relic/control.rb +1 -2
  52. data/lib/new_relic/control/frameworks/rails.rb +1 -1
  53. data/lib/new_relic/control/frameworks/rails3.rb +1 -2
  54. data/lib/new_relic/control/frameworks/rails4.rb +1 -1
  55. data/lib/new_relic/control/frameworks/rails5.rb +1 -1
  56. data/lib/new_relic/control/instance_methods.rb +1 -1
  57. data/{vendor/gems/dependency_detection-0.0.1.build/lib → lib/new_relic}/dependency_detection.rb +0 -1
  58. data/lib/new_relic/helper.rb +6 -13
  59. data/lib/new_relic/language_support.rb +44 -139
  60. data/lib/new_relic/metric_spec.rb +0 -17
  61. data/lib/new_relic/noticed_error.rb +18 -27
  62. data/lib/new_relic/version.rb +3 -48
  63. data/lib/tasks/versions.rake +7 -5
  64. data/newrelic_rpm.gemspec +1 -16
  65. data/test/agent_helper.rb +4 -2
  66. data/test/environments/lib/environments/runner.rb +5 -14
  67. data/test/environments/norails/Gemfile +0 -8
  68. data/test/environments/rails21/Gemfile +0 -8
  69. data/test/environments/rails21/config/database.yml +1 -1
  70. data/test/environments/rails22/Gemfile +0 -8
  71. data/test/environments/rails22/config/database.yml +1 -1
  72. data/test/environments/rails23/Gemfile +1 -7
  73. data/test/environments/rails23/config/database.yml +1 -1
  74. data/test/environments/rails30/Gemfile +0 -1
  75. data/test/environments/rails30/config/database.yml +1 -1
  76. data/test/environments/rails31/Gemfile +0 -3
  77. data/test/environments/rails31/config/database.yml +1 -1
  78. data/test/environments/rails32/Gemfile +0 -3
  79. data/test/environments/rails32/config/database.yml +1 -1
  80. data/test/environments/rails40/Gemfile +0 -26
  81. data/test/environments/rails40/config/database.yml +1 -1
  82. data/test/environments/rails41/Gemfile +0 -18
  83. data/test/environments/rails41/config/database.yml +1 -1
  84. data/test/environments/rails42/Gemfile +0 -22
  85. data/test/environments/rails42/config/database.yml +1 -1
  86. data/test/environments/rails50/Gemfile +0 -13
  87. data/test/environments/rails50/config/database.yml +1 -1
  88. data/test/helpers/logging.rb +37 -0
  89. data/test/helpers/minitest.rb +50 -0
  90. data/test/helpers/misc.rb +87 -0
  91. data/test/helpers/transaction_sample.rb +44 -0
  92. data/test/multiverse/lib/multiverse/suite.rb +6 -91
  93. data/test/multiverse/script/runner +1 -1
  94. data/test/multiverse/suites/active_record/Envfile +1 -28
  95. data/test/multiverse/suites/active_record/active_record_test.rb +6 -6
  96. data/test/multiverse/suites/active_record/config/database.rb +2 -3
  97. data/test/multiverse/suites/active_record/config/database.yml +0 -2
  98. data/test/multiverse/suites/activemerchant/Envfile +4 -18
  99. data/test/multiverse/suites/agent_only/encoding_handling_test.rb +7 -15
  100. data/test/multiverse/suites/agent_only/error_events_test.rb +1 -7
  101. data/test/multiverse/suites/agent_only/harvest_timestamps_test.rb +4 -20
  102. data/test/multiverse/suites/agent_only/labels_test.rb +1 -1
  103. data/test/multiverse/suites/agent_only/marshaling_test.rb +5 -10
  104. data/test/multiverse/suites/agent_only/script/public_api_when_disabled.rb +0 -11
  105. data/test/multiverse/suites/agent_only/start_up_test.rb +3 -3
  106. data/test/multiverse/suites/agent_only/synthetics_test.rb +1 -1
  107. data/test/multiverse/suites/agent_only/thread_profiling_test.rb +0 -3
  108. data/test/multiverse/suites/agent_only/xray_sessions_test.rb +0 -3
  109. data/test/multiverse/suites/capistrano/Envfile +2 -4
  110. data/test/multiverse/suites/capistrano2/Envfile +0 -4
  111. data/test/multiverse/suites/curb/Envfile +3 -7
  112. data/test/multiverse/suites/datamapper/Envfile +2 -2
  113. data/test/multiverse/suites/datamapper/datamapper_test.rb +2 -2
  114. data/test/multiverse/suites/deferred_instrumentation/sinatra_test.rb +0 -1
  115. data/test/multiverse/suites/delayed_job/Envfile +28 -41
  116. data/test/multiverse/suites/excon/Envfile +0 -3
  117. data/test/multiverse/suites/grape/Envfile +0 -4
  118. data/test/multiverse/suites/grape/grape_versioning_test.rb +2 -2
  119. data/test/multiverse/suites/grape/grape_versioning_test_api.rb +2 -2
  120. data/test/multiverse/suites/json/Envfile +1 -9
  121. data/test/multiverse/suites/marshalling/Envfile +0 -9
  122. data/test/multiverse/suites/memcached/Envfile +5 -23
  123. data/test/multiverse/suites/mongo/Envfile +9 -11
  124. data/test/multiverse/suites/padrino/Envfile +0 -6
  125. data/test/multiverse/suites/rack/http_response_code_test.rb +0 -1
  126. data/test/multiverse/suites/rack/rack_auto_instrumentation_test.rb +5 -10
  127. data/test/multiverse/suites/rack/rack_cascade_test.rb +0 -1
  128. data/test/multiverse/suites/rack/rack_env_mutation_test.rb +0 -1
  129. data/test/multiverse/suites/rack/response_content_type_test.rb +0 -1
  130. data/test/multiverse/suites/rails/Envfile +1 -19
  131. data/test/multiverse/suites/rails/activejob_test.rb +1 -2
  132. data/test/multiverse/suites/rails/error_tracing_test.rb +0 -13
  133. data/test/multiverse/suites/rails/gc_instrumentation_test.rb +12 -32
  134. data/test/multiverse/suites/rake/Envfile +15 -22
  135. data/test/multiverse/suites/redis/redis_instrumentation_test.rb +1 -1
  136. data/test/multiverse/suites/sequel/database.rb +1 -4
  137. data/test/multiverse/suites/sidekiq/Envfile +13 -23
  138. data/test/multiverse/suites/sinatra/sinatra_test_cases.rb +3 -3
  139. data/test/multiverse/suites/typhoeus/Envfile +0 -19
  140. data/test/multiverse/suites/typhoeus/typhoeus_test.rb +3 -3
  141. data/test/multiverse/suites/yajl/Envfile +5 -0
  142. data/test/multiverse/suites/yajl/yajl_test.rb +1 -3
  143. data/test/new_relic/agent/agent/start_test.rb +3 -3
  144. data/test/new_relic/agent/agent_logger_test.rb +2 -2
  145. data/test/new_relic/agent/agent_test.rb +2 -2
  146. data/test/new_relic/agent/attribute_processing_test.rb +3 -4
  147. data/test/new_relic/agent/audit_logger_test.rb +4 -6
  148. data/test/new_relic/agent/aws_info_test.rb +17 -1
  149. data/test/new_relic/agent/busy_calculator_test.rb +14 -16
  150. data/test/new_relic/agent/configuration/manager_test.rb +1 -7
  151. data/test/new_relic/agent/cross_app_monitor_test.rb +1 -1
  152. data/test/new_relic/agent/database_test.rb +2 -10
  153. data/test/new_relic/agent/datastores/mongo/event_formatter_test.rb +90 -93
  154. data/test/new_relic/agent/datastores/redis_test.rb +14 -16
  155. data/test/new_relic/agent/encoding_normalizer_test.rb +38 -40
  156. data/test/new_relic/agent/error_collector_test.rb +16 -49
  157. data/test/new_relic/agent/instrumentation/active_record_helper_test.rb +0 -6
  158. data/test/new_relic/agent/instrumentation/active_record_subscriber_test.rb +1 -1
  159. data/test/new_relic/agent/instrumentation/mongodb_command_subscriber_test.rb +101 -103
  160. data/test/new_relic/agent/instrumentation/rack_test.rb +11 -14
  161. data/test/new_relic/agent/instrumentation/task_instrumentation_test.rb +0 -10
  162. data/test/new_relic/agent/javascript_instrumentor_test.rb +2 -2
  163. data/test/new_relic/agent/method_tracer/class_methods/add_method_tracer_test.rb +0 -10
  164. data/test/new_relic/agent/method_tracer_test.rb +35 -76
  165. data/test/new_relic/agent/new_relic_service_test.rb +86 -102
  166. data/test/new_relic/agent/pipe_channel_manager_test.rb +4 -9
  167. data/test/new_relic/agent/pipe_service_test.rb +2 -3
  168. data/test/new_relic/agent/rpm_agent_test.rb +0 -4
  169. data/test/new_relic/agent/sampled_buffer_test.rb +2 -2
  170. data/test/new_relic/agent/samplers/cpu_sampler_test.rb +28 -0
  171. data/test/new_relic/agent/samplers/memory_sampler_test.rb +66 -0
  172. data/test/new_relic/agent/sized_buffer_test.rb +1 -1
  173. data/test/new_relic/agent/stats_engine/gc_profiler_test.rb +2 -14
  174. data/test/new_relic/agent/stats_engine/metric_stats_test.rb +44 -66
  175. data/test/new_relic/agent/stats_test.rb +6 -8
  176. data/test/new_relic/agent/synthetics_event_buffer_test.rb +1 -1
  177. data/test/new_relic/agent/transaction/attributes_test.rb +4 -12
  178. data/test/new_relic/agent/transaction_test.rb +2 -10
  179. data/test/new_relic/agent/utilization_data_test.rb +17 -1
  180. data/test/new_relic/agent/vm/mri_vm_test.rb +5 -7
  181. data/test/new_relic/agent_test.rb +0 -43
  182. data/test/new_relic/coerce_test.rb +1 -3
  183. data/test/new_relic/fake_collector.rb +3 -3
  184. data/test/new_relic/fake_external_server.rb +1 -1
  185. data/test/new_relic/fake_server.rb +1 -1
  186. data/test/new_relic/http_client_test_cases.rb +3 -3
  187. data/test/new_relic/language_support_test.rb +6 -12
  188. data/test/new_relic/latest_changes_test.rb +0 -11
  189. data/test/new_relic/license_test.rb +3 -8
  190. data/test/new_relic/multiverse_helpers.rb +1 -1
  191. data/test/new_relic/noticed_error_test.rb +11 -7
  192. data/test/new_relic/rack/browser_monitoring_test.rb +1 -3
  193. data/test/nullverse/nullverse_helper.rb +1 -1
  194. data/test/performance/lib/performance.rb +1 -1
  195. data/test/performance/lib/performance/instrumentation/gc_stats.rb +4 -6
  196. data/test/performance/lib/performance/instrumentation/perf_tools.rb +1 -1
  197. data/test/performance/lib/performance/instrumentation/stackprof.rb +1 -1
  198. data/test/performance/lib/performance/platform.rb +1 -8
  199. data/test/performance/script/runner +1 -3
  200. data/test/performance/suites/active_record.rb +3 -24
  201. data/test/test_helper.rb +9 -216
  202. metadata +9 -45
  203. data/lib/conditional_vendored_dependency_detection.rb +0 -7
  204. data/lib/new_relic/agent/hash_extensions.rb +0 -41
  205. data/lib/new_relic/agent/instrumentation/metric_frame.rb +0 -39
  206. data/lib/new_relic/agent/instrumentation/rails/errors.rb +0 -51
  207. data/lib/new_relic/agent/instrumentation/rails3/errors.rb +0 -47
  208. data/lib/new_relic/agent/instrumentation/rails4/errors.rb +0 -46
  209. data/lib/new_relic/agent/stats_engine/samplers.rb +0 -22
  210. data/lib/new_relic/agent/vm/rubinius_vm.rb +0 -140
  211. data/lib/new_relic/json_wrapper.rb +0 -78
  212. data/lib/new_relic/okjson.rb +0 -602
  213. data/lib/new_relic/rack/error_collector.rb +0 -27
  214. data/lib/new_relic/timer_lib.rb +0 -31
  215. data/test/helpers/runtime_detection.rb +0 -17
  216. data/test/multiverse/suites/no_json/Envfile +0 -12
  217. data/test/multiverse/suites/no_json/config/newrelic.yml +0 -27
  218. data/test/multiverse/suites/no_json/marshal_config_test.rb +0 -22
  219. data/test/new_relic/agent/hash_extensions_test.rb +0 -59
  220. data/test/new_relic/agent/instrumentation/metric_frame_test.rb +0 -22
  221. data/test/new_relic/agent/stats_engine/samplers_test.rb +0 -98
  222. data/test/new_relic/agent/vm/rubinius_vm_test.rb +0 -69
  223. data/test/new_relic/json_wrapper_test.rb +0 -32
  224. data/test/new_relic/rack/deferred_instrumentation_test.rb +0 -33
  225. data/test/new_relic/rack/error_collector_test.rb +0 -83
  226. data/test/new_relic/version_number_test.rb +0 -101
  227. data/test/script/before_install/revert_rubygems.sh +0 -15
  228. data/test/script/before_install/update_bundler.sh +0 -12
  229. data/vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection/version.rb +0 -7
@@ -9,7 +9,6 @@ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'sinatra', 'sin
9
9
  require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', '..', 'helpers', 'exceptions'))
10
10
 
11
11
  class DeferredSinatraTestApp < Sinatra::Base
12
- include NewRelic::Agent::Instrumentation::Rack
13
12
  include NewRelic::TestHelpers::Exceptions
14
13
 
15
14
  configure do
@@ -1,7 +1,3 @@
1
- suite_condition("Rubinius problems prevent these from running") do
2
- (!defined?(RUBY_ENGINE) || RUBY_ENGINE != "rbx")
3
- end
4
-
5
1
  boilerplate_gems = <<-SQLITE
6
2
  gem 'rack'
7
3
  if RUBY_PLATFORM == 'java'
@@ -12,17 +8,15 @@ boilerplate_gems = <<-SQLITE
12
8
  SQLITE
13
9
 
14
10
  # delayed_job_mongoid is currently unsupported, but check that we behave
15
- # mongoid 3.x is only supported on Ruby 1.9.3, though
16
- if RUBY_VERSION >= '1.9.3'
17
- gemfile <<-RB
18
- gem 'delayed_job', '~> 4.0.4'
19
- gem 'delayed_job_mongoid', '~> 2.1.0'
20
- gem 'i18n', '~> 0.6.11'
21
- #{boilerplate_gems}
22
- RB
23
- end
11
+ gemfile <<-RB
12
+ gem 'delayed_job', '~> 4.0.4'
13
+ gem 'delayed_job_mongoid', '~> 2.1.0'
14
+ gem 'i18n', '~> 0.6.11'
15
+ gem 'activesupport', '~> 3.2.22' if RUBY_VERSION == '2.4.0'
16
+ #{boilerplate_gems}
17
+ RB
24
18
 
25
- if RUBY_VERSION >= '1.9.3' && RUBY_VERSION < '2.4.0'
19
+ if RUBY_VERSION < '2.4.0'
26
20
  gemfile <<-RB
27
21
  gem 'delayed_job', '~> 4.1.0'
28
22
  gem 'delayed_job_active_record', '~> 4.1.0'
@@ -33,7 +27,7 @@ if RUBY_VERSION >= '1.9.3' && RUBY_VERSION < '2.4.0'
33
27
  end
34
28
 
35
29
  # delayed_job_active_record (and older baked into delayed_job) support
36
- if RUBY_VERSION >= '1.9.3' && RUBY_VERSION < '2.4.0'
30
+ if RUBY_VERSION < '2.4.0'
37
31
  dj4_with_active_record = <<-DJ
38
32
  gem 'delayed_job', '~> 4.0.4'
39
33
  gem 'delayed_job_active_record', '~> 4.0.2'
@@ -60,7 +54,7 @@ dj2_with_active_record3 = <<-DJ
60
54
  #{boilerplate_gems}
61
55
  DJ
62
56
 
63
- if RUBY_VERSION >= '1.9.3' && RUBY_VERSION < '2.4.0'
57
+ if RUBY_VERSION < '2.4.0'
64
58
  gemfile <<-RB
65
59
  gem 'activerecord', '~> 4.2.0'
66
60
  gem 'i18n', '~> 0.7.0'
@@ -83,32 +77,25 @@ if RUBY_VERSION >= '1.9.3' && RUBY_VERSION < '2.4.0'
83
77
  end
84
78
 
85
79
  if RUBY_VERSION < '2.3.0'
86
- [dj4_with_active_record, dj3_with_active_record, dj2_with_active_record3].each do |dj|
87
- gemfile <<-RB
88
- gem 'activerecord', '~> 3.2.19'
89
- gem 'i18n', '~> 0.6.11'
90
- #{dj}
91
- RB
80
+ [dj4_with_active_record, dj3_with_active_record, dj2_with_active_record3].each do |dj|
81
+ gemfile <<-RB
82
+ gem 'activerecord', '~> 3.2.19'
83
+ gem 'i18n', '~> 0.6.11'
84
+ #{dj}
85
+ RB
92
86
 
93
- gemfile <<-RB
94
- gem 'activerecord', '~> 3.1.12'
95
- gem 'i18n', '~> 0.6.11'
96
- #{dj}
97
- RB
87
+ gemfile <<-RB
88
+ gem 'activerecord', '~> 3.1.12'
89
+ gem 'i18n', '~> 0.6.11'
90
+ #{dj}
91
+ RB
98
92
 
99
- gemfile <<-RB
100
- gem 'activerecord', '~> 3.0.20'
101
- gem 'i18n', '~> 0.5.4'
102
- #{dj}
103
- RB
104
- end
93
+ gemfile <<-RB
94
+ gem 'activerecord', '~> 3.0.20'
95
+ gem 'i18n', '~> 0.5.4'
96
+ #{dj}
97
+ RB
98
+ end
105
99
  end
106
100
 
107
- if RUBY_VERSION <= '1.9.3'
108
- gemfile <<-RB
109
- gem 'activerecord', '~> 2.3.18'
110
- gem 'delayed_job', '~> 2.0.8'
111
- gem 'i18n', '~> 0.5.4'
112
- #{boilerplate_gems}
113
- RB
114
- end
101
+ # vim: ft=ruby
@@ -9,9 +9,6 @@ else
9
9
  0.10.0)
10
10
  end
11
11
 
12
- # Excon 0.10.0 doesn't seem to work on Rubinius 2.2.10
13
- excon_versions.delete("0.10.0") if defined?(RUBY_ENGINE) && RUBY_ENGINE == "rbx"
14
-
15
12
  excon_versions.each do |excon_version|
16
13
  gemfile <<-RB
17
14
  gem 'excon', '~> #{excon_version}'
@@ -1,7 +1,3 @@
1
- suite_condition("Grape is only supported for versions >= 1.9.3") do
2
- RUBY_VERSION >= '1.9.3'
3
- end
4
-
5
1
  versions = %w(0.16.1 0.15.0 0.14.0 0.13.0 0.12.0 0.11.0 0.10.0 0.9.0 0.8.0 0.7.0 0.6.1 0.5.0 0.4.1 0.3.2 0.2.6 0.2.0 0.1.5)
6
2
 
7
3
  versions.each do |version|
@@ -47,7 +47,7 @@ unless ::Grape::VERSION == '0.1.5'
47
47
  end
48
48
 
49
49
  #version from http accept header is not supported in older versions of grape
50
- if NewRelic::VersionNumber.new(Grape::VERSION) >= NewRelic::VersionNumber.new('0.16.0')
50
+ if Gem::Version.new(Grape::VERSION) >= Gem::Version.new('0.16.0')
51
51
  def test_version_from_accept_version_header_is_recorded_in_transaction_name
52
52
  @app_class = GrapeVersioning::ApiV4
53
53
  get '/fish', {}, 'HTTP_ACCEPT_VERSION' => 'v4'
@@ -106,7 +106,7 @@ unless ::Grape::VERSION == '0.1.5'
106
106
  #
107
107
  # defaulting with header key/empty value does not set rack.env['api.version']
108
108
  #
109
- if NewRelic::VersionNumber.new(Grape::VERSION) >= NewRelic::VersionNumber.new('0.5.0')
109
+ if Gem::Version.new(Grape::VERSION) >= Gem::Version.new('0.5.0')
110
110
  def test_default_accept_version_header_version_in_tranasaction_names
111
111
  @app_class = GrapeVersioning::DefaultAcceptVersionHeaderApi
112
112
  get "/fish", nil, 'HTTP_ACCEPT_VERSION' => ''
@@ -46,7 +46,7 @@ unless ::Grape::VERSION == '0.1.5'
46
46
 
47
47
  class ApiV4 < Grape::API
48
48
  #version from http accept header is not supported in older versions of grape
49
- if NewRelic::VersionNumber.new(Grape::VERSION) >= NewRelic::VersionNumber.new('0.16.0')
49
+ if Gem::Version.new(Grape::VERSION) >= Gem::Version.new('0.16.0')
50
50
  version ['v4', 'v5'], :using => :accept_version_header
51
51
  end
52
52
 
@@ -61,7 +61,7 @@ unless ::Grape::VERSION == '0.1.5'
61
61
 
62
62
  class CascadingAPI < Grape::API
63
63
  #version from http accept header is not supported in older versions of grape
64
- if NewRelic::VersionNumber.new(Grape::VERSION) >= NewRelic::VersionNumber.new('0.16.0')
64
+ if Gem::Version.new(Grape::VERSION) >= Gem::Version.new('0.16.0')
65
65
  version 'v5', :using => :accept_version_header
66
66
  end
67
67
 
@@ -1,21 +1,13 @@
1
1
  after_2_0_0 = [ '~> 2.0.2' ]
2
2
  before_2_4_0 = [ '< 1.8.5' ]
3
3
  before_2_2_0 = [ '~> 1.7.7', '~> 1.6.8', '~> 1.5.5' ]
4
- before_2_0_0 = [ '~> 1.4.6', '~> 1.2.4', '~> 1.1.9' ]
5
- before_1_9_2 = [ '1.1.2' ]
6
4
 
7
5
  json_gems = []
8
6
  json_gems += after_2_0_0 if RUBY_VERSION >= '2.0.0'
9
7
  json_gems += before_2_4_0 if RUBY_VERSION < '2.4.0'
10
8
  json_gems += before_2_2_0 if RUBY_VERSION < '2.2.0'
11
- json_gems += before_2_0_0 if RUBY_VERSION < '2.0.0'
12
- json_gems += before_1_9_2 if RUBY_VERSION < '1.9.2'
13
9
 
14
- if defined?(RUBY_ENGINE) && RUBY_ENGINE == "rbx"
15
- json_gems.delete('~> 1.7.7')
16
- end
17
-
18
- if defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby"
10
+ if RUBY_ENGINE == "jruby"
19
11
  json_gems.delete('~> 1.2.4')
20
12
  json_gems.delete('~> 1.1.9')
21
13
  end
@@ -1,12 +1,3 @@
1
1
  gemfile <<-RB
2
2
  gem 'rack'
3
3
  RB
4
-
5
- # On Ruby 1.8.7 we need to explicitly run with the JSON gem to get JSON
6
- # serialization. Otherwise first env will run with pruby.
7
- if RUBY_VERSION < "1.9"
8
- gemfile <<-RB
9
- gem 'json'
10
- gem 'rack'
11
- RB
12
- end
@@ -1,15 +1,10 @@
1
- dalli_versions = %w(1.0.5)
2
- dalli_versions += %w(2.7.2 2.6.4 2.2.1) if RUBY_VERSION >= "1.9.3"
3
-
4
- dalli_versions.each do |version|
1
+ %w(1.0.5 2.7.2 2.6.4 2.2.1).each do |version|
5
2
  gemfile <<-RB
6
3
  gem 'dalli', '~> #{version}'
7
4
  RB
8
5
  end
9
6
 
10
- memcache_client_versions = %w(1.8.5 1.5.0)
11
-
12
- memcache_client_versions.each do |version|
7
+ %w(1.8.5 1.5.0).each do |version|
13
8
  gemfile <<-RB
14
9
  gem 'memcache-client', '~> #{version}', :require => 'memcache'
15
10
  # version lockdown for ZenTest that cooperates with all Rubies
@@ -18,22 +13,9 @@ memcache_client_versions.each do |version|
18
13
  RB
19
14
  end
20
15
 
21
-
22
- if RUBY_VERSION == "1.8.7"
23
- memcached_client_versions = ['1.4.1']
24
- elsif RUBY_VERSION > "1.9.3"
25
- memcached_client_versions = ['1.8.0']
26
- else
27
- memcached_client_versions = %w(1.8.0 1.4.1)
28
- end
29
-
30
- if RUBY_PLATFORM == 'java'
31
- memcached_client_versions = []
32
- end
33
-
34
- memcached_client_versions.each do |version|
16
+ unless RUBY_PLATFORM == 'java'
35
17
  gemfile <<-RB
36
- gem 'memcached', '~> #{version}'
18
+ gem 'memcached', '~> 1.8.0'
37
19
  RB
38
20
  end
39
21
 
@@ -42,7 +24,7 @@ def memcache_running?
42
24
  require 'socket'
43
25
  TCPSocket.new('localhost', 11211)
44
26
  true
45
- rescue => e
27
+ rescue
46
28
  false
47
29
  end
48
30
  end
@@ -1,14 +1,12 @@
1
- if RUBY_VERSION >= '1.9.3'
2
- gemfile <<-RB
3
- gem 'mongo', '~>2.2.0'
4
- RB
5
- gemfile <<-RB
6
- gem 'mongo', '~>2.1.0'
7
- RB
8
- gemfile <<-RB
9
- gem 'mongo', '~>2.0.1'
10
- RB
11
- end
1
+ gemfile <<-RB
2
+ gem 'mongo', '~>2.2.0'
3
+ RB
4
+ gemfile <<-RB
5
+ gem 'mongo', '~>2.1.0'
6
+ RB
7
+ gemfile <<-RB
8
+ gem 'mongo', '~>2.0.1'
9
+ RB
12
10
 
13
11
  gemfile <<-RB
14
12
  gem 'mongo', '1.10.0'
@@ -1,25 +1,19 @@
1
- if RUBY_VERSION >= '1.9.3' # padrino v0.12.0 dropped support for ruby 1.8.7 and requres ruby 1.9.3 or greater
2
1
  gemfile <<-RB
3
2
  gem 'activesupport', '~> 3'
4
3
  gem 'padrino', '~> 0.13.0'
5
4
  gem 'rack-test', :require => 'rack/test'
6
5
  RB
7
- end
8
6
 
9
- if RUBY_VERSION > '1.8.7' # padrino-core 0.11.0 requires http_router 0.11.0 which has syntax errors in 1.8.7.
10
7
  gemfile <<-RB
11
8
  gem 'activesupport', '~> 3'
12
9
  gem 'padrino', '~> 0.11.0'
13
10
  gem 'rack-test', :require => 'rack/test'
14
- gem 'i18n', '< 0.7' if RUBY_VERSION < '1.9.3' # i18n >= 0.7.0 only works on Ruby 1.9.3 and newer
15
11
  RB
16
- end
17
12
 
18
13
  gemfile <<-RB
19
14
  gem 'activesupport', '~> 3'
20
15
  gem 'padrino', '~> 0.10.0'
21
16
  gem 'rack-test', :require => 'rack/test'
22
- gem 'i18n', '< 0.7' if RUBY_VERSION < '1.9.3' # i18n >= 0.7.0 only works on Ruby 1.9.3 and newer
23
17
  RB
24
18
 
25
19
  # vim: ft=ruby
@@ -7,7 +7,6 @@ if NewRelic::Agent::Instrumentation::RackHelpers.rack_version_supported?
7
7
  require File.join(File.dirname(__FILE__), 'example_app')
8
8
  require 'new_relic/rack/browser_monitoring'
9
9
  require 'new_relic/rack/agent_hooks'
10
- require 'new_relic/rack/error_collector'
11
10
 
12
11
  class HttpResponseCodeTest < Minitest::Test
13
12
  include MultiverseHelpers
@@ -7,7 +7,6 @@ if NewRelic::Agent::Instrumentation::RackHelpers.version_supported? && defined?
7
7
  require File.join(File.dirname(__FILE__), 'example_app')
8
8
  require 'new_relic/rack/browser_monitoring'
9
9
  require 'new_relic/rack/agent_hooks'
10
- require 'new_relic/rack/error_collector'
11
10
 
12
11
  class RackAutoInstrumentationTest < Minitest::Test
13
12
  include MultiverseHelpers
@@ -32,7 +31,6 @@ class RackAutoInstrumentationTest < Minitest::Test
32
31
  end
33
32
  use NewRelic::Rack::BrowserMonitoring
34
33
  use NewRelic::Rack::AgentHooks
35
- use NewRelic::Rack::ErrorCollector
36
34
  run ExampleApp.new
37
35
  end
38
36
  end
@@ -62,20 +60,19 @@ class RackAutoInstrumentationTest < Minitest::Test
62
60
  with_config(:disable_middleware_instrumentation => true) do
63
61
  get '/'
64
62
  end
63
+
65
64
  assert_metrics_recorded_exclusive(
66
65
  [
67
66
  "Apdex",
68
67
  "ApdexAll",
69
68
  "HttpDispatcher",
70
69
  "Middleware/all",
71
- "Apdex/Middleware/Rack/NewRelic::Rack::ErrorCollector/call",
72
- "Controller/Middleware/Rack/NewRelic::Rack::ErrorCollector/call",
73
- "Middleware/Rack/NewRelic::Rack::ErrorCollector/call",
70
+ "Apdex/Middleware/Rack/NewRelic::Rack::AgentHooks/call",
71
+ "Controller/Middleware/Rack/NewRelic::Rack::AgentHooks/call",
74
72
  "Middleware/Rack/NewRelic::Rack::BrowserMonitoring/call",
75
73
  "Middleware/Rack/NewRelic::Rack::AgentHooks/call",
76
- ["Middleware/Rack/NewRelic::Rack::ErrorCollector/call", "Controller/Middleware/Rack/NewRelic::Rack::ErrorCollector/call"],
77
- ["Middleware/Rack/NewRelic::Rack::BrowserMonitoring/call", "Controller/Middleware/Rack/NewRelic::Rack::ErrorCollector/call"],
78
- ["Middleware/Rack/NewRelic::Rack::AgentHooks/call", "Controller/Middleware/Rack/NewRelic::Rack::ErrorCollector/call"],
74
+ ["Middleware/Rack/NewRelic::Rack::AgentHooks/call", "Controller/Middleware/Rack/NewRelic::Rack::AgentHooks/call"],
75
+ ["Middleware/Rack/NewRelic::Rack::BrowserMonitoring/call", "Controller/Middleware/Rack/NewRelic::Rack::AgentHooks/call"]
79
76
  ],
80
77
  :ignore_filter => /^Supportability/
81
78
  )
@@ -94,11 +91,9 @@ class RackAutoInstrumentationTest < Minitest::Test
94
91
  "Controller/Rack/ExampleApp/call",
95
92
  "Middleware/Rack/MiddlewareOne/call",
96
93
  "Middleware/Rack/MiddlewareTwo/call",
97
- "Middleware/Rack/NewRelic::Rack::ErrorCollector/call",
98
94
  "Middleware/Rack/NewRelic::Rack::BrowserMonitoring/call",
99
95
  "Middleware/Rack/NewRelic::Rack::AgentHooks/call",
100
96
  "Nested/Controller/Rack/ExampleApp/call",
101
- ["Middleware/Rack/NewRelic::Rack::ErrorCollector/call", "Controller/Rack/ExampleApp/call"],
102
97
  ["Middleware/Rack/NewRelic::Rack::BrowserMonitoring/call", "Controller/Rack/ExampleApp/call"],
103
98
  ["Middleware/Rack/NewRelic::Rack::AgentHooks/call", "Controller/Rack/ExampleApp/call"],
104
99
  ["Middleware/Rack/MiddlewareOne/call", "Controller/Rack/ExampleApp/call"],
@@ -7,7 +7,6 @@ if NewRelic::Agent::Instrumentation::RackHelpers.rack_version_supported?
7
7
  require File.join(File.dirname(__FILE__), 'example_app')
8
8
  require 'new_relic/rack/browser_monitoring'
9
9
  require 'new_relic/rack/agent_hooks'
10
- require 'new_relic/rack/error_collector'
11
10
 
12
11
  class RackCascadeTest < Minitest::Test
13
12
  include MultiverseHelpers
@@ -6,7 +6,6 @@ if NewRelic::Agent::Instrumentation::RackHelpers.rack_version_supported?
6
6
 
7
7
  require 'new_relic/rack/browser_monitoring'
8
8
  require 'new_relic/rack/agent_hooks'
9
- require 'new_relic/rack/error_collector'
10
9
 
11
10
  class RackEnvMutationTest < Minitest::Test
12
11
  attr_accessor :inner_app
@@ -7,7 +7,6 @@ if NewRelic::Agent::Instrumentation::RackHelpers.rack_version_supported?
7
7
  require File.join(File.dirname(__FILE__), 'example_app')
8
8
  require 'new_relic/rack/browser_monitoring'
9
9
  require 'new_relic/rack/agent_hooks'
10
- require 'new_relic/rack/error_collector'
11
10
 
12
11
  class HttpResponseContentTypeTest < Minitest::Test
13
12
  include MultiverseHelpers
@@ -6,7 +6,7 @@ if RUBY_VERSION >= '2.2.2' && RUBY_PLATFORM != 'java'
6
6
  RB
7
7
  end
8
8
 
9
- if RUBY_VERSION >= '1.9.3' && RUBY_VERSION < '2.4.0'
9
+ if RUBY_VERSION < '2.4.0'
10
10
  gemfile <<-RB
11
11
  gem 'rails', '~>4.2.1'
12
12
  gem 'haml', :require => false
@@ -28,15 +28,12 @@ if RUBY_VERSION >= '1.9.3' && RUBY_VERSION < '2.4.0'
28
28
  gem 'rails', '~>4.0.13'
29
29
  gem 'haml', '4.0.2' # Getting load issues with haml 4.0.3
30
30
  RB
31
- end
32
31
 
33
- if RUBY_VERSION < '2.4.0'
34
32
  gemfile <<-RB
35
33
  gem 'rails', '~>3.2.22.2'
36
34
  gem 'i18n', '~>0.6.11'
37
35
  gem 'haml', '4.0.2' # Getting load issues with haml 4.0.3
38
36
  gem 'minitest_tu_shim', :require => false
39
- gem 'rack-cache', '< 1.3' if RUBY_VERSION < '1.9.3' # rack-cache 1.3.0 only supports >= 1.9.3
40
37
  RB
41
38
 
42
39
  gemfile <<-RB
@@ -45,7 +42,6 @@ if RUBY_VERSION < '2.4.0'
45
42
  gem 'sinatra', '~> 1.4.5'
46
43
  gem 'haml', '4.0.2' # Getting load issues with haml 4.0.3
47
44
  gem 'minitest_tu_shim', :require => false
48
- gem 'rack-cache', '< 1.3' if RUBY_VERSION < '1.9.3' # rack-cache 1.3.0 only supports >= 1.9.3
49
45
  RB
50
46
 
51
47
  gemfile <<-RB
@@ -53,26 +49,12 @@ if RUBY_VERSION < '2.4.0'
53
49
  gem 'i18n', '~>0.6.11'
54
50
  gem 'haml', '4.0.2' # Getting load issues with haml 4.0.3
55
51
  gem 'minitest_tu_shim', :require => false
56
- gem 'rack-cache', '< 1.3' if RUBY_VERSION < '1.9.3' # rack-cache 1.3.0 only supports >= 1.9.3
57
52
  RB
58
53
 
59
54
  gemfile <<-RB
60
55
  gem 'rails', '~>3.0.20'
61
56
  gem 'haml', '4.0.2' # Getting load issues with haml 4.0.3
62
57
  gem 'minitest_tu_shim', :require => false
63
- gem 'rack-cache', '< 1.3' if RUBY_VERSION < '1.9.3' # rack-cache 1.3.0 only supports >= 1.9.3
64
- RB
65
- end
66
-
67
- if RUBY_VERSION <= '1.9.3' && (!defined?(RUBY_ENGINE) || RUBY_ENGINE != 'jruby')
68
- gemfile <<-RB
69
- gem 'newrelic_rpm', :require => false, :path => File.expand_path('../../../../')
70
- gem 'rails', '~> 2.3.18'
71
- gem 'haml', '~> 3.1.0' # last haml version that supports Rails 2
72
- gem 'minitest_tu_shim', :require => false
73
- gem 'sqlite3'
74
- gem 'i18n', '0.6.11'
75
- gem 'rack-cache', '< 1.3' if RUBY_VERSION < '1.9.3' # rack-cache 1.3.0 only supports >= 1.9.3
76
58
  RB
77
59
  end
78
60