ghazel-newrelic_rpm 3.4.0.2 → 3.5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (231) hide show
  1. data/.gitignore +21 -0
  2. data/.project +23 -0
  3. data/.travis.yml +9 -0
  4. data/CHANGELOG +180 -1
  5. data/GUIDELINES_FOR_CONTRIBUTING.md +73 -0
  6. data/Gemfile +16 -0
  7. data/InstallationNotes.md +15 -0
  8. data/LICENSE +1 -1
  9. data/{README.rdoc → README.md} +71 -55
  10. data/Rakefile +54 -0
  11. data/config.dot +290 -0
  12. data/config/database.yml +5 -0
  13. data/init.rb +38 -0
  14. data/lib/new_relic/agent.rb +9 -4
  15. data/lib/new_relic/agent/agent.rb +189 -230
  16. data/lib/new_relic/agent/beacon_configuration.rb +34 -48
  17. data/lib/new_relic/agent/browser_monitoring.rb +108 -61
  18. data/lib/new_relic/agent/busy_calculator.rb +12 -4
  19. data/lib/new_relic/agent/configuration.rb +49 -0
  20. data/lib/new_relic/agent/configuration/defaults.rb +89 -0
  21. data/lib/new_relic/agent/configuration/environment_source.rb +56 -0
  22. data/lib/new_relic/agent/configuration/manager.rb +116 -0
  23. data/lib/new_relic/agent/configuration/server_source.rb +27 -0
  24. data/lib/new_relic/agent/configuration/yaml_source.rb +61 -0
  25. data/lib/new_relic/agent/database.rb +37 -22
  26. data/lib/new_relic/agent/error_collector.rb +47 -43
  27. data/lib/new_relic/agent/instrumentation/active_record.rb +1 -5
  28. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +27 -6
  29. data/lib/new_relic/agent/instrumentation/data_mapper.rb +2 -10
  30. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +1 -1
  31. data/lib/new_relic/agent/instrumentation/memcache.rb +2 -2
  32. data/lib/new_relic/agent/instrumentation/metric_frame.rb +4 -14
  33. data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +4 -18
  34. data/lib/new_relic/agent/instrumentation/rack.rb +1 -1
  35. data/lib/new_relic/agent/instrumentation/rails/action_controller.rb +3 -3
  36. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +2 -2
  37. data/lib/new_relic/agent/instrumentation/rails3/errors.rb +5 -1
  38. data/lib/new_relic/agent/instrumentation/resque.rb +1 -1
  39. data/lib/new_relic/agent/instrumentation/sinatra.rb +14 -10
  40. data/lib/new_relic/agent/instrumentation/unicorn_instrumentation.rb +4 -3
  41. data/lib/new_relic/agent/method_tracer.rb +5 -1
  42. data/lib/new_relic/agent/new_relic_service.rb +231 -61
  43. data/lib/new_relic/agent/pipe_channel_manager.rb +37 -23
  44. data/lib/new_relic/agent/pipe_service.rb +5 -1
  45. data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +2 -5
  46. data/lib/new_relic/agent/samplers/memory_sampler.rb +2 -2
  47. data/lib/new_relic/agent/sql_sampler.rb +44 -68
  48. data/lib/new_relic/agent/stats_engine/gc_profiler.rb +40 -24
  49. data/lib/new_relic/agent/stats_engine/metric_stats.rb +89 -14
  50. data/lib/new_relic/agent/stats_engine/samplers.rb +7 -3
  51. data/lib/new_relic/agent/stats_engine/transactions.rb +19 -11
  52. data/lib/new_relic/agent/thread.rb +27 -0
  53. data/lib/new_relic/agent/thread_profiler.rb +295 -0
  54. data/lib/new_relic/agent/transaction_info.rb +24 -4
  55. data/lib/new_relic/agent/transaction_sample_builder.rb +11 -11
  56. data/lib/new_relic/agent/transaction_sampler.rb +51 -61
  57. data/lib/new_relic/agent/worker_loop.rb +29 -15
  58. data/lib/new_relic/collection_helper.rb +1 -1
  59. data/lib/new_relic/commands/deployments.rb +19 -10
  60. data/lib/new_relic/control.rb +0 -1
  61. data/lib/new_relic/control/class_methods.rb +2 -3
  62. data/lib/new_relic/control/frameworks/rails.rb +24 -18
  63. data/lib/new_relic/control/frameworks/rails3.rb +18 -1
  64. data/lib/new_relic/control/frameworks/ruby.rb +2 -2
  65. data/lib/new_relic/control/instance_methods.rb +36 -53
  66. data/lib/new_relic/control/logging_methods.rb +5 -23
  67. data/lib/new_relic/control/server_methods.rb +11 -13
  68. data/lib/new_relic/delayed_job_injection.rb +1 -1
  69. data/lib/new_relic/helper.rb +13 -0
  70. data/lib/new_relic/language_support.rb +19 -22
  71. data/lib/new_relic/local_environment.rb +2 -3
  72. data/lib/new_relic/metric_data.rb +10 -2
  73. data/lib/new_relic/metric_spec.rb +6 -2
  74. data/lib/new_relic/noticed_error.rb +24 -9
  75. data/lib/new_relic/rack.rb +4 -0
  76. data/lib/new_relic/rack/browser_monitoring.rb +28 -10
  77. data/lib/new_relic/rack/developer_mode.rb +3 -0
  78. data/lib/new_relic/rack/error_collector.rb +56 -0
  79. data/lib/new_relic/transaction_sample.rb +23 -13
  80. data/lib/new_relic/transaction_sample/segment.rb +13 -15
  81. data/lib/new_relic/version.rb +3 -3
  82. data/lib/tasks/tests.rake +8 -8
  83. data/newrelic.yml +15 -32
  84. data/newrelic_rpm.gemspec +158 -38
  85. data/newrelic_rpm.gemspec.erb +55 -0
  86. data/test/config/newrelic.yml +3 -2
  87. data/test/intentional_fail.rb +10 -0
  88. data/test/multiverse/.gitignore +10 -0
  89. data/test/multiverse/README.md +90 -0
  90. data/test/multiverse/Rakefile +17 -0
  91. data/test/multiverse/lib/multiverse/color.rb +13 -0
  92. data/test/multiverse/lib/multiverse/envfile.rb +66 -0
  93. data/test/multiverse/lib/multiverse/environment.rb +16 -0
  94. data/test/multiverse/lib/multiverse/output_collector.rb +29 -0
  95. data/test/multiverse/lib/multiverse/runner.rb +44 -0
  96. data/test/multiverse/lib/multiverse/suite.rb +162 -0
  97. data/test/multiverse/script/run_one +3 -0
  98. data/test/multiverse/script/runner +9 -0
  99. data/test/multiverse/suites/active_record/Envfile +13 -0
  100. data/test/multiverse/suites/active_record/ar_method_aliasing.rb +94 -0
  101. data/test/multiverse/suites/active_record/config/newrelic.yml +22 -0
  102. data/test/multiverse/suites/active_record/encoding_test.rb +26 -0
  103. data/test/multiverse/suites/agent_only/Envfile +3 -0
  104. data/test/multiverse/suites/agent_only/config/newrelic.yml +22 -0
  105. data/test/multiverse/suites/agent_only/http_response_code_test.rb +53 -0
  106. data/test/multiverse/suites/agent_only/marshaling_test.rb +109 -0
  107. data/test/multiverse/suites/agent_only/method_visibility_test.rb +98 -0
  108. data/test/multiverse/suites/agent_only/pipe_manager_test.rb +33 -0
  109. data/test/multiverse/suites/agent_only/service_timeout_test.rb +29 -0
  110. data/test/multiverse/suites/agent_only/test_trace_method_with_punctuation.rb +30 -0
  111. data/test/multiverse/suites/agent_only/test_trace_transaction_with_punctuation.rb +32 -0
  112. data/test/multiverse/suites/agent_only/thread_profiling_test.rb +80 -0
  113. data/test/multiverse/suites/datamapper/Envfile +8 -0
  114. data/test/multiverse/suites/datamapper/config/newrelic.yml +22 -0
  115. data/test/multiverse/suites/datamapper/encoding_test.rb +36 -0
  116. data/test/multiverse/suites/monitor_mode_false/Envfile +2 -0
  117. data/test/multiverse/suites/monitor_mode_false/config/newrelic.yml +25 -0
  118. data/test/multiverse/suites/monitor_mode_false/no_dns_resolv.rb +29 -0
  119. data/test/multiverse/suites/no_load/Envfile +2 -0
  120. data/test/multiverse/suites/no_load/config/newrelic.yml +23 -0
  121. data/test/multiverse/suites/no_load/start_up_test.rb +14 -0
  122. data/test/multiverse/suites/rails_3_error_tracing/Envfile +15 -0
  123. data/test/multiverse/suites/rails_3_error_tracing/config/newrelic.yml +165 -0
  124. data/test/multiverse/suites/rails_3_error_tracing/error_tracing_test.rb +236 -0
  125. data/test/multiverse/suites/rails_3_gc/Envfile +8 -0
  126. data/test/multiverse/suites/rails_3_gc/config/newrelic.yml +167 -0
  127. data/test/multiverse/suites/rails_3_gc/instrumentation_test.rb +92 -0
  128. data/test/multiverse/suites/rails_3_queue_time/Envfile +15 -0
  129. data/test/multiverse/suites/rails_3_queue_time/config/newrelic.yml +165 -0
  130. data/test/multiverse/suites/rails_3_queue_time/queue_time_test.rb +75 -0
  131. data/test/multiverse/suites/rails_3_views/.gitignore +3 -0
  132. data/test/multiverse/suites/rails_3_views/Envfile +16 -0
  133. data/test/multiverse/suites/rails_3_views/app/views/foos/_foo.html.haml +1 -0
  134. data/test/multiverse/suites/rails_3_views/app/views/test/_a_partial.html.erb +1 -0
  135. data/test/multiverse/suites/rails_3_views/app/views/test/_mid_partial.html.erb +1 -0
  136. data/test/multiverse/suites/rails_3_views/app/views/test/_top_partial.html.erb +3 -0
  137. data/test/multiverse/suites/rails_3_views/app/views/test/deep_partial.html.erb +3 -0
  138. data/test/multiverse/suites/rails_3_views/app/views/test/haml_view.html.haml +6 -0
  139. data/test/multiverse/suites/rails_3_views/app/views/test/index.html.erb +4 -0
  140. data/test/multiverse/suites/rails_3_views/config/newrelic.yml +164 -0
  141. data/test/multiverse/suites/rails_3_views/view_instrumentation_test.rb +245 -0
  142. data/test/multiverse/suites/resque/Envfile +21 -0
  143. data/test/multiverse/suites/resque/config/newrelic.yml +22 -0
  144. data/test/multiverse/suites/resque/dump.rdb +0 -0
  145. data/test/multiverse/suites/resque/instrumentation_test.rb +73 -0
  146. data/test/multiverse/suites/rum_auto_instrumentation/Envfile +4 -0
  147. data/test/multiverse/suites/rum_auto_instrumentation/config/newrelic.yml +24 -0
  148. data/test/multiverse/suites/rum_auto_instrumentation/problem_response.html +422 -0
  149. data/test/multiverse/suites/rum_auto_instrumentation/responses/worst_case_small.html +5000 -0
  150. data/test/multiverse/suites/rum_auto_instrumentation/sanity_test.rb +115 -0
  151. data/test/multiverse/suites/sinatra/Envfile +13 -0
  152. data/test/multiverse/suites/sinatra/config/newrelic.yml +24 -0
  153. data/test/multiverse/suites/sinatra/sinatra_metric_explosion_test.rb +76 -0
  154. data/test/multiverse/suites/sinatra/sinatra_routes_test.rb +46 -0
  155. data/test/multiverse/test/multiverse_test.rb +55 -0
  156. data/test/multiverse/test/suite_examples/one/a/Envfile +3 -0
  157. data/test/multiverse/test/suite_examples/one/a/a_test.rb +11 -0
  158. data/test/multiverse/test/suite_examples/one/a/config/newrelic.yml +24 -0
  159. data/test/multiverse/test/suite_examples/one/b/Envfile +3 -0
  160. data/test/multiverse/test/suite_examples/one/b/b_test.rb +11 -0
  161. data/test/multiverse/test/suite_examples/one/b/config/newrelic.yml +24 -0
  162. data/test/multiverse/test/suite_examples/three/a/Envfile +2 -0
  163. data/test/multiverse/test/suite_examples/three/a/fail_test.rb +6 -0
  164. data/test/multiverse/test/suite_examples/three/b/Envfile +2 -0
  165. data/test/multiverse/test/suite_examples/three/b/win_test.rb +6 -0
  166. data/test/multiverse/test/suite_examples/two/a/Envfile +1 -0
  167. data/test/multiverse/test/suite_examples/two/a/fail_test.rb +6 -0
  168. data/test/new_relic/agent/agent/connect_test.rb +134 -164
  169. data/test/new_relic/agent/agent/start_test.rb +111 -81
  170. data/test/new_relic/agent/agent/start_worker_thread_test.rb +6 -33
  171. data/test/new_relic/agent/agent_test.rb +88 -9
  172. data/test/new_relic/agent/agent_test_controller.rb +1 -1
  173. data/test/new_relic/agent/agent_test_controller_test.rb +42 -10
  174. data/test/new_relic/agent/beacon_configuration_test.rb +63 -67
  175. data/test/new_relic/agent/browser_monitoring_test.rb +150 -79
  176. data/test/new_relic/agent/configuration/environment_source_test.rb +74 -0
  177. data/test/new_relic/agent/configuration/manager_test.rb +149 -0
  178. data/test/new_relic/agent/configuration/server_source_test.rb +45 -0
  179. data/test/new_relic/agent/configuration/yaml_source_test.rb +56 -0
  180. data/test/new_relic/agent/error_collector/notice_error_test.rb +63 -50
  181. data/test/new_relic/agent/error_collector_test.rb +22 -12
  182. data/test/new_relic/agent/instrumentation/active_record_instrumentation_test.rb +21 -11
  183. data/test/new_relic/agent/instrumentation/metric_frame_test.rb +6 -0
  184. data/test/new_relic/agent/instrumentation/task_instrumentation_test.rb +2 -2
  185. data/test/new_relic/agent/method_tracer/class_methods/add_method_tracer_test.rb +5 -5
  186. data/test/new_relic/agent/method_tracer_test.rb +6 -6
  187. data/test/new_relic/agent/mock_scope_listener.rb +3 -0
  188. data/test/new_relic/agent/new_relic_service_test.rb +208 -23
  189. data/test/new_relic/agent/pipe_channel_manager_test.rb +34 -17
  190. data/test/new_relic/agent/rpm_agent_test.rb +27 -23
  191. data/test/new_relic/agent/sql_sampler_test.rb +81 -56
  192. data/test/new_relic/agent/stats_engine/metric_stats/harvest_test.rb +3 -20
  193. data/test/new_relic/agent/stats_engine/metric_stats_test.rb +12 -1
  194. data/test/new_relic/agent/stats_engine_test.rb +17 -8
  195. data/test/new_relic/agent/thread_profiler_test.rb +536 -0
  196. data/test/new_relic/agent/thread_test.rb +76 -0
  197. data/test/new_relic/agent/threaded_test.rb +65 -0
  198. data/test/new_relic/agent/transaction_info_test.rb +45 -4
  199. data/test/new_relic/agent/transaction_sample_builder_test.rb +8 -6
  200. data/test/new_relic/agent/transaction_sampler_test.rb +193 -204
  201. data/test/new_relic/agent/worker_loop_test.rb +20 -0
  202. data/test/new_relic/agent_test.rb +69 -41
  203. data/test/new_relic/collection_helper_test.rb +7 -8
  204. data/test/new_relic/command/deployments_test.rb +18 -2
  205. data/test/new_relic/control/frameworks/rails_test.rb +26 -0
  206. data/test/new_relic/control/logging_methods_test.rb +78 -52
  207. data/test/new_relic/control_test.rb +91 -129
  208. data/test/new_relic/fake_collector.rb +103 -31
  209. data/test/new_relic/fake_service.rb +8 -2
  210. data/test/new_relic/load_test.rb +13 -0
  211. data/test/new_relic/local_environment_test.rb +7 -10
  212. data/test/new_relic/metric_data_test.rb +45 -16
  213. data/test/new_relic/noticed_error_test.rb +14 -0
  214. data/test/new_relic/rack/browser_monitoring_test.rb +15 -9
  215. data/test/new_relic/rack/developer_mode_test.rb +13 -7
  216. data/test/new_relic/rack/error_collector_test.rb +74 -0
  217. data/test/new_relic/transaction_sample/segment_test.rb +23 -4
  218. data/test/new_relic/transaction_sample_test.rb +47 -2
  219. data/test/script/build_test_gem.sh +9 -3
  220. data/test/script/ci.sh +48 -21
  221. data/test/script/ci_multiverse_runner.sh +11 -11
  222. data/test/test_helper.rb +37 -18
  223. data/ui/helpers/developer_mode_helper.rb +21 -11
  224. data/ui/views/layouts/newrelic_default.rhtml +1 -0
  225. data/ui/views/newrelic/show_sample.rhtml +1 -1
  226. data/ui/views/newrelic/threads.rhtml +2 -10
  227. data/vendor/gems/metric_parser-0.1.0.pre1/.specification +116 -0
  228. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_init.rb +7 -0
  229. metadata +132 -58
  230. data/lib/new_relic/control/configuration.rb +0 -206
  231. data/test/new_relic/control/configuration_test.rb +0 -77
@@ -1,4 +1,5 @@
1
1
  require 'new_relic/transaction_sample'
2
+
2
3
  module NewRelic
3
4
  class TransactionSample
4
5
  class Segment
@@ -15,13 +16,13 @@ module NewRelic
15
16
  @metric_name = metric_name || '<unknown>'
16
17
  @segment_id = segment_id || object_id
17
18
  end
18
-
19
+
19
20
  # sets the final timestamp on a segment to indicate the exit
20
21
  # point of the segment
21
22
  def end_trace(timestamp)
22
23
  @exit_timestamp = timestamp
23
24
  end
24
-
25
+
25
26
  def add_called_segment(s)
26
27
  @called_segments ||= []
27
28
  @called_segments << s
@@ -32,18 +33,15 @@ module NewRelic
32
33
  to_debug_str(0)
33
34
  end
34
35
 
35
- def to_json(options={})
36
- hash = {
37
- :entry_timestamp => @entry_timestamp,
38
- :exit_timestamp => @exit_timestamp,
39
- :metric_name => @metric_name,
40
- :segment_id => @segment_id,
41
- }
42
-
43
- hash[:called_segments] = called_segments if !called_segments.empty?
44
- hash[:params] = @params if @params && !@params.empty?
36
+ def to_array
37
+ [ (@entry_timestamp.to_f * 1000).round,
38
+ (@exit_timestamp.to_f * 1000).round,
39
+ @metric_name, (@params || {}) ] +
40
+ [ (@called_segments ? @called_segments.map{|s| s.to_array} : []) ]
41
+ end
45
42
 
46
- hash.to_json
43
+ def to_json
44
+ JSON.dump(self.to_array)
47
45
  end
48
46
 
49
47
  def path_string
@@ -97,13 +95,13 @@ module NewRelic
97
95
  end
98
96
  d
99
97
  end
100
-
98
+
101
99
  def count_segments
102
100
  count = 1
103
101
  called_segments.each { | seg | count += seg.count_segments }
104
102
  count
105
103
  end
106
-
104
+
107
105
  # Walk through the tree and truncate the segments in a
108
106
  # depth-first manner
109
107
  def truncate(max)
@@ -2,9 +2,9 @@
2
2
  module NewRelic
3
3
  module VERSION #:nodoc:
4
4
  MAJOR = 3
5
- MINOR = 4
6
- TINY = 0
7
- BUILD = 1 # Set to nil for a release, 'beta1', 'alpha', etc for prerelease builds
5
+ MINOR = 5
6
+ TINY = 4
7
+ BUILD = nil
8
8
  STRING = [MAJOR, MINOR, TINY, BUILD].compact.join('.')
9
9
  end
10
10
 
@@ -1,19 +1,19 @@
1
- # run unit tests for the NewRelic Agent
2
1
  begin
3
- require 'rake/test_task'
2
+ require 'rake/testtask'
4
3
  rescue LoadError => e
5
4
  end
6
5
 
7
6
  if defined? Rake::TestTask
7
+ task :test => 'test:newrelic'
8
+ task :default => :test
8
9
  namespace :test do
9
- AGENT_HOME = File.expand_path(File.join(File.dirname(__FILE__), "..",".."))
10
+ agent_home = File.expand_path(File.join(File.dirname(__FILE__),'..','..'))
11
+
10
12
  Rake::TestTask.new(:newrelic) do |t|
11
- t.libs << "#{AGENT_HOME}/test"
12
- t.libs << "#{AGENT_HOME}/lib"
13
- t.pattern = "#{AGENT_HOME}/test/**/*_test.rb"
13
+ t.libs << "#{agent_home}/test"
14
+ t.libs << "#{agent_home}/lib"
15
+ t.pattern = "#{agent_home}/test/new_relic/**/*_test.rb"
14
16
  t.verbose = true
15
17
  end
16
- Rake::Task['test:newrelic'].comment = "Run the unit tests for the Agent"
17
- task :newrelic => :environment
18
18
  end
19
19
  end
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # This file configures the New Relic Ruby Agent, New Relic monitors
3
- # Rails applications with deep visibility and low overhead. For more
4
- # information, visit www.newrelic.com
3
+ # Rails applications with deep visibility and low overhead. For more
4
+ # information, visit www.newrelic.com.
5
5
  #
6
6
  # Generated <%= Time.now.strftime('%B %d, %Y') %>, for version <%= NewRelic::VERSION::STRING %>
7
7
  #
@@ -21,7 +21,7 @@ common: &default_settings
21
21
  # Use this setting to force the agent to run or not run.
22
22
  # Default is 'auto' which means the agent will install and run only
23
23
  # if a valid dispatcher such as Mongrel is running. This prevents
24
- # it from running with Rake or the console. Set to false to
24
+ # it from running with Rake or the console. Set to false to
25
25
  # completely turn the agent off regardless of the other settings.
26
26
  # Valid values are true, false and auto.
27
27
  #
@@ -47,7 +47,7 @@ common: &default_settings
47
47
  # When "true", the agent collects performance data about your
48
48
  # application and reports this data to the New Relic service at
49
49
  # newrelic.com. This global switch is normally overridden for each
50
- # environment below. (formerly called 'enabled')
50
+ # environment below (formerly called 'enabled').
51
51
  monitor_mode: true
52
52
 
53
53
  # Developer mode should be off in every environment but
@@ -55,7 +55,7 @@ common: &default_settings
55
55
  developer_mode: false
56
56
 
57
57
  # The newrelic agent generates its own log file to keep its logging
58
- # information separate from that of your application. Specify its
58
+ # information separate from that of your application. Specify its
59
59
  # log level here.
60
60
  log_level: info
61
61
 
@@ -87,19 +87,7 @@ common: &default_settings
87
87
  # use a non-blocking lookup, so in a worst case, if you have DNS
88
88
  # problems, your app may block indefinitely.
89
89
  # verify_certificate: true
90
-
91
- # Set your application's Apdex threshold value with the 'apdex_t'
92
- # setting, in seconds. The apdex_t value determines the buckets used
93
- # to compute your overall Apdex score.
94
- # Requests that take less than apdex_t seconds to process will be
95
- # classified as Satisfying transactions; more than apdex_t seconds
96
- # as Tolerating transactions; and more than four times the apdex_t
97
- # value as Frustrating transactions.
98
- # For more about the Apdex standard, see
99
- # http://newrelic.com/docs/general/apdex
100
90
 
101
- apdex_t: 0.5
102
-
103
91
  #============================== Browser Monitoring ===============================
104
92
  # New Relic Real User Monitoring gives you insight into the performance real users are
105
93
  # experiencing with your website. This is accomplished by measuring the time it takes for
@@ -113,7 +101,7 @@ common: &default_settings
113
101
  # Proxy settings for connecting to the service.
114
102
  #
115
103
  # If a proxy is used, the host setting is required. Other settings
116
- # are optional. Default port is 8080.
104
+ # are optional. Default port is 8080.
117
105
  #
118
106
  # proxy_host: hostname
119
107
  # proxy_port: 8080
@@ -153,13 +141,13 @@ common: &default_settings
153
141
  # When transaction tracer is on, SQL statements can optionally be
154
142
  # recorded. The recorder has three modes, "off" which sends no
155
143
  # SQL, "raw" which sends the SQL statement in its original form,
156
- # and "obfuscated", which strips out numeric and string literals
144
+ # and "obfuscated", which strips out numeric and string literals.
157
145
  record_sql: obfuscated
158
146
 
159
147
  # Threshold in seconds for when to collect stack trace for a SQL
160
148
  # call. In other words, when SQL statements exceed this threshold,
161
149
  # then capture and send the current stack trace. This is
162
- # helpful for pinpointing where long SQL calls originate from
150
+ # helpful for pinpointing where long SQL calls originate from.
163
151
  stack_trace_threshold: 0.500
164
152
 
165
153
  # Determines whether the agent will capture query plans for slow
@@ -172,12 +160,12 @@ common: &default_settings
172
160
  # explain_threshold: 0.5
173
161
 
174
162
  # Error collector captures information about uncaught exceptions and
175
- # sends them to the service for viewing
163
+ # sends them to the service for viewing.
176
164
  error_collector:
177
165
 
178
166
  # Error collector is enabled by default. Set this to false to turn
179
167
  # it off. This feature is only available at the Professional and above
180
- # product levels
168
+ # product levels.
181
169
  enabled: true
182
170
 
183
171
  # Rails Only - tells error collector whether or not to capture a
@@ -188,12 +176,11 @@ common: &default_settings
188
176
  # To stop specific errors from reporting to New Relic, set this property
189
177
  # to comma separated values. Default is to ignore routing errors
190
178
  # which are how 404's get triggered.
191
- #
192
179
  ignore_errors: ActionController::RoutingError
193
180
 
194
181
  # (Advanced) Uncomment this to ensure the cpu and memory samplers
195
- # won't run. Useful when you are using the agent to monitor an
196
- # external resource
182
+ # won't run. Useful when you are using the agent to monitor an
183
+ # external resource.
197
184
  # disable_samplers: true
198
185
 
199
186
  # If you aren't interested in visibility in these areas, you can
@@ -209,10 +196,6 @@ common: &default_settings
209
196
  # overhead slightly on every memcached call, and can have security
210
197
  # implications if your memcached keys are sensitive
211
198
  # capture_memcache_keys: true
212
-
213
- # Certain types of instrumentation such as GC stats will not work if
214
- # you are running multi-threaded. Please let us know.
215
- # multi_threaded = false
216
199
 
217
200
  # Application Environments
218
201
  # ------------------------------------------
@@ -248,16 +231,16 @@ test:
248
231
  # unit, functional or integration tests or the like.
249
232
  monitor_mode: false
250
233
 
251
- # Turn on the agent in production for 24x7 monitoring. NewRelic
234
+ # Turn on the agent in production for 24x7 monitoring. NewRelic
252
235
  # testing shows an average performance impact of < 5 ms per
253
- # transaction, you you can leave this on all the time without
236
+ # transaction, you can leave this on all the time without
254
237
  # incurring any user-visible performance degradation.
255
238
  production:
256
239
  <<: *default_settings
257
240
  monitor_mode: true
258
241
 
259
242
  # Many applications have a staging environment which behaves
260
- # identically to production. Support for that environment is provided
243
+ # identically to production. Support for that environment is provided
261
244
  # here. By default, the staging environment has the agent turned on.
262
245
  staging:
263
246
  <<: *default_settings
@@ -1,34 +1,49 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
- # -*- encoding: utf-8 -*-
1
+ #-*- coding: utf-8 -*-
2
+ # GITSHA: 789bc22f9280603ed8507f4b1f5c49b51f586821
5
3
 
6
4
  Gem::Specification.new do |s|
7
5
  s.name = "ghazel-newrelic_rpm"
8
- s.version = "3.4.0.2"
9
-
6
+ s.version = "3.5.4"
10
7
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Bill Kayser", "Jon Guymon", "Justin George", "Darin Swanson"]
12
- s.date = "2012-06-25"
13
- s.description = "New Relic is a performance management system, developed by New Relic,\nInc (http://www.newrelic.com). New Relic provides you with deep\ninformation about the performance of your web application as it runs\nin production. The New Relic Ruby Agent is dual-purposed as a either a\nGem or plugin, hosted on\nhttp://github.com/newrelic/rpm/\n"
8
+ s.authors = [ "Jason Clark", "Sam Goldstein", "Jon Guymon" ]
9
+ s.date = "2012-12-06"
10
+ s.description = <<-EOS
11
+ New Relic is a performance management system, developed by New Relic,
12
+ Inc (http://www.newrelic.com). New Relic provides you with deep
13
+ information about the performance of your web application as it runs
14
+ in production. The New Relic Ruby Agent is dual-purposed as a either a
15
+ Gem or plugin, hosted on
16
+ http://github.com/newrelic/rpm/
17
+ EOS
14
18
  s.email = "support@newrelic.com"
15
- s.executables = ["mongrel_rpm", "newrelic", "newrelic_cmd"]
19
+ s.executables = [ "mongrel_rpm", "newrelic_cmd", "newrelic" ]
16
20
  s.extra_rdoc_files = [
17
21
  "CHANGELOG",
18
22
  "LICENSE",
19
- "README.rdoc",
23
+ "README.md",
24
+ "GUIDELINES_FOR_CONTRIBUTING.md",
20
25
  "newrelic.yml"
21
26
  ]
22
27
  s.files = [
28
+ ".gitignore",
29
+ ".project",
30
+ ".travis.yml",
23
31
  "CHANGELOG",
32
+ "GUIDELINES_FOR_CONTRIBUTING.md",
33
+ "Gemfile",
34
+ "InstallationNotes.md",
24
35
  "LICENSE",
25
- "README.rdoc",
36
+ "README.md",
37
+ "Rakefile",
26
38
  "bin/mongrel_rpm",
27
39
  "bin/newrelic",
28
40
  "bin/newrelic_cmd",
29
41
  "cert/cacert.pem",
30
42
  "cert/oldsite.pem",
31
43
  "cert/site.pem",
44
+ "config.dot",
45
+ "config/database.yml",
46
+ "init.rb",
32
47
  "install.rb",
33
48
  "lib/conditional_vendored_dependency_detection.rb",
34
49
  "lib/conditional_vendored_metric_parser.rb",
@@ -38,6 +53,12 @@ Gem::Specification.new do |s|
38
53
  "lib/new_relic/agent/browser_monitoring.rb",
39
54
  "lib/new_relic/agent/busy_calculator.rb",
40
55
  "lib/new_relic/agent/chained_call.rb",
56
+ "lib/new_relic/agent/configuration.rb",
57
+ "lib/new_relic/agent/configuration/defaults.rb",
58
+ "lib/new_relic/agent/configuration/environment_source.rb",
59
+ "lib/new_relic/agent/configuration/manager.rb",
60
+ "lib/new_relic/agent/configuration/server_source.rb",
61
+ "lib/new_relic/agent/configuration/yaml_source.rb",
41
62
  "lib/new_relic/agent/database.rb",
42
63
  "lib/new_relic/agent/error_collector.rb",
43
64
  "lib/new_relic/agent/instrumentation.rb",
@@ -62,11 +83,11 @@ Gem::Specification.new do |s|
62
83
  "lib/new_relic/agent/instrumentation/rails/errors.rb",
63
84
  "lib/new_relic/agent/instrumentation/rails3/action_controller.rb",
64
85
  "lib/new_relic/agent/instrumentation/rails3/errors.rb",
86
+ "lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb",
65
87
  "lib/new_relic/agent/instrumentation/resque.rb",
66
88
  "lib/new_relic/agent/instrumentation/sinatra.rb",
67
89
  "lib/new_relic/agent/instrumentation/sunspot.rb",
68
90
  "lib/new_relic/agent/instrumentation/unicorn_instrumentation.rb",
69
- "lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb",
70
91
  "lib/new_relic/agent/method_tracer.rb",
71
92
  "lib/new_relic/agent/new_relic_service.rb",
72
93
  "lib/new_relic/agent/pipe_channel_manager.rb",
@@ -83,6 +104,8 @@ Gem::Specification.new do |s|
83
104
  "lib/new_relic/agent/stats_engine/metric_stats.rb",
84
105
  "lib/new_relic/agent/stats_engine/samplers.rb",
85
106
  "lib/new_relic/agent/stats_engine/transactions.rb",
107
+ "lib/new_relic/agent/thread.rb",
108
+ "lib/new_relic/agent/thread_profiler.rb",
86
109
  "lib/new_relic/agent/transaction_info.rb",
87
110
  "lib/new_relic/agent/transaction_sample_builder.rb",
88
111
  "lib/new_relic/agent/transaction_sampler.rb",
@@ -93,7 +116,6 @@ Gem::Specification.new do |s|
93
116
  "lib/new_relic/commands/install.rb",
94
117
  "lib/new_relic/control.rb",
95
118
  "lib/new_relic/control/class_methods.rb",
96
- "lib/new_relic/control/configuration.rb",
97
119
  "lib/new_relic/control/frameworks.rb",
98
120
  "lib/new_relic/control/frameworks/external.rb",
99
121
  "lib/new_relic/control/frameworks/merb.rb",
@@ -115,8 +137,10 @@ Gem::Specification.new do |s|
115
137
  "lib/new_relic/metric_spec.rb",
116
138
  "lib/new_relic/metrics.rb",
117
139
  "lib/new_relic/noticed_error.rb",
140
+ "lib/new_relic/rack.rb",
118
141
  "lib/new_relic/rack/browser_monitoring.rb",
119
142
  "lib/new_relic/rack/developer_mode.rb",
143
+ "lib/new_relic/rack/error_collector.rb",
120
144
  "lib/new_relic/recipes.rb",
121
145
  "lib/new_relic/stats.rb",
122
146
  "lib/new_relic/timer_lib.rb",
@@ -134,12 +158,93 @@ Gem::Specification.new do |s|
134
158
  "lib/tasks/install.rake",
135
159
  "lib/tasks/tests.rake",
136
160
  "newrelic.yml",
137
- "newrelic_rpm.gemspec",
161
+ "newrelic_rpm.gemspec.erb",
138
162
  "recipes/newrelic.rb",
139
163
  "test/active_record_fixtures.rb",
140
164
  "test/config/newrelic.yml",
141
165
  "test/config/test_control.rb",
142
166
  "test/fixtures/proc_cpuinfo.txt",
167
+ "test/intentional_fail.rb",
168
+ "test/multiverse/.gitignore",
169
+ "test/multiverse/README.md",
170
+ "test/multiverse/Rakefile",
171
+ "test/multiverse/lib/multiverse/color.rb",
172
+ "test/multiverse/lib/multiverse/envfile.rb",
173
+ "test/multiverse/lib/multiverse/environment.rb",
174
+ "test/multiverse/lib/multiverse/output_collector.rb",
175
+ "test/multiverse/lib/multiverse/runner.rb",
176
+ "test/multiverse/lib/multiverse/suite.rb",
177
+ "test/multiverse/script/run_one",
178
+ "test/multiverse/script/runner",
179
+ "test/multiverse/suites/active_record/Envfile",
180
+ "test/multiverse/suites/active_record/ar_method_aliasing.rb",
181
+ "test/multiverse/suites/active_record/config/newrelic.yml",
182
+ "test/multiverse/suites/active_record/encoding_test.rb",
183
+ "test/multiverse/suites/agent_only/Envfile",
184
+ "test/multiverse/suites/agent_only/config/newrelic.yml",
185
+ "test/multiverse/suites/agent_only/http_response_code_test.rb",
186
+ "test/multiverse/suites/agent_only/marshaling_test.rb",
187
+ "test/multiverse/suites/agent_only/method_visibility_test.rb",
188
+ "test/multiverse/suites/agent_only/pipe_manager_test.rb",
189
+ "test/multiverse/suites/agent_only/service_timeout_test.rb",
190
+ "test/multiverse/suites/agent_only/test_trace_method_with_punctuation.rb",
191
+ "test/multiverse/suites/agent_only/test_trace_transaction_with_punctuation.rb",
192
+ "test/multiverse/suites/agent_only/thread_profiling_test.rb",
193
+ "test/multiverse/suites/datamapper/Envfile",
194
+ "test/multiverse/suites/datamapper/config/newrelic.yml",
195
+ "test/multiverse/suites/datamapper/encoding_test.rb",
196
+ "test/multiverse/suites/monitor_mode_false/Envfile",
197
+ "test/multiverse/suites/monitor_mode_false/config/newrelic.yml",
198
+ "test/multiverse/suites/monitor_mode_false/no_dns_resolv.rb",
199
+ "test/multiverse/suites/no_load/Envfile",
200
+ "test/multiverse/suites/no_load/config/newrelic.yml",
201
+ "test/multiverse/suites/no_load/start_up_test.rb",
202
+ "test/multiverse/suites/rails_3_error_tracing/Envfile",
203
+ "test/multiverse/suites/rails_3_error_tracing/config/newrelic.yml",
204
+ "test/multiverse/suites/rails_3_error_tracing/error_tracing_test.rb",
205
+ "test/multiverse/suites/rails_3_gc/Envfile",
206
+ "test/multiverse/suites/rails_3_gc/config/newrelic.yml",
207
+ "test/multiverse/suites/rails_3_gc/instrumentation_test.rb",
208
+ "test/multiverse/suites/rails_3_queue_time/Envfile",
209
+ "test/multiverse/suites/rails_3_queue_time/config/newrelic.yml",
210
+ "test/multiverse/suites/rails_3_queue_time/queue_time_test.rb",
211
+ "test/multiverse/suites/rails_3_views/.gitignore",
212
+ "test/multiverse/suites/rails_3_views/Envfile",
213
+ "test/multiverse/suites/rails_3_views/app/views/foos/_foo.html.haml",
214
+ "test/multiverse/suites/rails_3_views/app/views/test/_a_partial.html.erb",
215
+ "test/multiverse/suites/rails_3_views/app/views/test/_mid_partial.html.erb",
216
+ "test/multiverse/suites/rails_3_views/app/views/test/_top_partial.html.erb",
217
+ "test/multiverse/suites/rails_3_views/app/views/test/deep_partial.html.erb",
218
+ "test/multiverse/suites/rails_3_views/app/views/test/haml_view.html.haml",
219
+ "test/multiverse/suites/rails_3_views/app/views/test/index.html.erb",
220
+ "test/multiverse/suites/rails_3_views/config/newrelic.yml",
221
+ "test/multiverse/suites/rails_3_views/view_instrumentation_test.rb",
222
+ "test/multiverse/suites/resque/Envfile",
223
+ "test/multiverse/suites/resque/config/newrelic.yml",
224
+ "test/multiverse/suites/resque/dump.rdb",
225
+ "test/multiverse/suites/resque/instrumentation_test.rb",
226
+ "test/multiverse/suites/rum_auto_instrumentation/Envfile",
227
+ "test/multiverse/suites/rum_auto_instrumentation/config/newrelic.yml",
228
+ "test/multiverse/suites/rum_auto_instrumentation/problem_response.html",
229
+ "test/multiverse/suites/rum_auto_instrumentation/responses/worst_case_small.html",
230
+ "test/multiverse/suites/rum_auto_instrumentation/sanity_test.rb",
231
+ "test/multiverse/suites/sinatra/Envfile",
232
+ "test/multiverse/suites/sinatra/config/newrelic.yml",
233
+ "test/multiverse/suites/sinatra/sinatra_metric_explosion_test.rb",
234
+ "test/multiverse/suites/sinatra/sinatra_routes_test.rb",
235
+ "test/multiverse/test/multiverse_test.rb",
236
+ "test/multiverse/test/suite_examples/one/a/Envfile",
237
+ "test/multiverse/test/suite_examples/one/a/a_test.rb",
238
+ "test/multiverse/test/suite_examples/one/a/config/newrelic.yml",
239
+ "test/multiverse/test/suite_examples/one/b/Envfile",
240
+ "test/multiverse/test/suite_examples/one/b/b_test.rb",
241
+ "test/multiverse/test/suite_examples/one/b/config/newrelic.yml",
242
+ "test/multiverse/test/suite_examples/three/a/Envfile",
243
+ "test/multiverse/test/suite_examples/three/a/fail_test.rb",
244
+ "test/multiverse/test/suite_examples/three/b/Envfile",
245
+ "test/multiverse/test/suite_examples/three/b/win_test.rb",
246
+ "test/multiverse/test/suite_examples/two/a/Envfile",
247
+ "test/multiverse/test/suite_examples/two/a/fail_test.rb",
143
248
  "test/new_relic/agent/agent/connect_test.rb",
144
249
  "test/new_relic/agent/agent/start_test.rb",
145
250
  "test/new_relic/agent/agent/start_worker_thread_test.rb",
@@ -150,6 +255,10 @@ Gem::Specification.new do |s|
150
255
  "test/new_relic/agent/beacon_configuration_test.rb",
151
256
  "test/new_relic/agent/browser_monitoring_test.rb",
152
257
  "test/new_relic/agent/busy_calculator_test.rb",
258
+ "test/new_relic/agent/configuration/environment_source_test.rb",
259
+ "test/new_relic/agent/configuration/manager_test.rb",
260
+ "test/new_relic/agent/configuration/server_source_test.rb",
261
+ "test/new_relic/agent/configuration/yaml_source_test.rb",
153
262
  "test/new_relic/agent/database_test.rb",
154
263
  "test/new_relic/agent/error_collector/notice_error_test.rb",
155
264
  "test/new_relic/agent/error_collector_test.rb",
@@ -178,6 +287,9 @@ Gem::Specification.new do |s|
178
287
  "test/new_relic/agent/stats_engine/metric_stats_test.rb",
179
288
  "test/new_relic/agent/stats_engine/samplers_test.rb",
180
289
  "test/new_relic/agent/stats_engine_test.rb",
290
+ "test/new_relic/agent/thread_profiler_test.rb",
291
+ "test/new_relic/agent/thread_test.rb",
292
+ "test/new_relic/agent/threaded_test.rb",
181
293
  "test/new_relic/agent/transaction_info_test.rb",
182
294
  "test/new_relic/agent/transaction_sample_builder_test.rb",
183
295
  "test/new_relic/agent/transaction_sampler_test.rb",
@@ -186,20 +298,23 @@ Gem::Specification.new do |s|
186
298
  "test/new_relic/collection_helper_test.rb",
187
299
  "test/new_relic/command/deployments_test.rb",
188
300
  "test/new_relic/control/class_methods_test.rb",
189
- "test/new_relic/control/configuration_test.rb",
301
+ "test/new_relic/control/frameworks/rails_test.rb",
190
302
  "test/new_relic/control/logging_methods_test.rb",
191
303
  "test/new_relic/control_test.rb",
192
304
  "test/new_relic/delayed_job_injection_test.rb",
193
305
  "test/new_relic/fake_collector.rb",
194
306
  "test/new_relic/fake_service.rb",
307
+ "test/new_relic/load_test.rb",
195
308
  "test/new_relic/local_environment_test.rb",
196
309
  "test/new_relic/metric_data_test.rb",
197
310
  "test/new_relic/metric_parser/metric_parser_test.rb",
198
311
  "test/new_relic/metric_spec_test.rb",
312
+ "test/new_relic/noticed_error_test.rb",
199
313
  "test/new_relic/rack/all_test.rb",
200
314
  "test/new_relic/rack/browser_monitoring_test.rb",
201
315
  "test/new_relic/rack/developer_mode_helper_test.rb",
202
316
  "test/new_relic/rack/developer_mode_test.rb",
317
+ "test/new_relic/rack/error_collector_test.rb",
203
318
  "test/new_relic/stats_test.rb",
204
319
  "test/new_relic/transaction_analysis/segment_summary_test.rb",
205
320
  "test/new_relic/transaction_analysis_test.rb",
@@ -251,6 +366,7 @@ Gem::Specification.new do |s|
251
366
  "vendor/gems/dependency_detection-0.0.1.build/LICENSE",
252
367
  "vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection.rb",
253
368
  "vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection/version.rb",
369
+ "vendor/gems/metric_parser-0.1.0.pre1/.specification",
254
370
  "vendor/gems/metric_parser-0.1.0.pre1/lib/metric_parser.rb",
255
371
  "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser.rb",
256
372
  "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/action_mailer.rb",
@@ -282,6 +398,7 @@ Gem::Specification.new do |s|
282
398
  "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet.rb",
283
399
  "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_context_listener.rb",
284
400
  "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_filter.rb",
401
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_init.rb",
285
402
  "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/solr.rb",
286
403
  "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/solr_request_handler.rb",
287
404
  "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring.rb",
@@ -293,30 +410,33 @@ Gem::Specification.new do |s|
293
410
  "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/view.rb",
294
411
  "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_frontend.rb",
295
412
  "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_service.rb",
296
- "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_transaction.rb"
413
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_transaction.rb",
414
+ "newrelic_rpm.gemspec",
297
415
  ]
298
416
  s.homepage = "http://www.github.com/newrelic/rpm"
299
- s.post_install_message = "\nPLEASE NOTE:\n\nDeveloper Mode is now a Rack middleware.\n\nDeveloper Mode is no longer available in Rails 2.1 and earlier.\nHowever, starting in version 2.12 you can use Developer Mode in any\nRack based framework, in addition to Rails. To install developer mode\nin a non-Rails application, just add NewRelic::Rack::DeveloperMode to\nyour middleware stack.\n\nIf you are using JRuby, we recommend using at least version 1.4 or \nlater because of issues with the implementation of the timeout library.\n\nRefer to the README.md file for more information.\n\nPlease see http://github.com/newrelic/rpm/blob/master/CHANGELOG\nfor a complete description of the features and enhancements available\nin version 3.4 of the Ruby Agent.\n \n"
300
- s.rdoc_options = ["--charset=UTF-8", "--line-numbers", "--inline-source", "--title", "New Relic Ruby Agent"]
301
- s.require_paths = ["lib"]
302
- s.summary = "New Relic Ruby Agent"
417
+ s.post_install_message = <<-EOS
418
+ PLEASE NOTE:
303
419
 
304
- if s.respond_to? :specification_version then
305
- s.specification_version = 3
420
+ Developer Mode is now a Rack middleware.
306
421
 
307
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
308
- s.add_development_dependency(%q<jeweler>, [">= 0"])
309
- s.add_development_dependency(%q<mocha>, [">= 0"])
310
- s.add_development_dependency(%q<shoulda>, [">= 0"])
311
- else
312
- s.add_dependency(%q<jeweler>, [">= 0"])
313
- s.add_dependency(%q<mocha>, [">= 0"])
314
- s.add_dependency(%q<shoulda>, [">= 0"])
315
- end
316
- else
317
- s.add_dependency(%q<jeweler>, [">= 0"])
318
- s.add_dependency(%q<mocha>, [">= 0"])
319
- s.add_dependency(%q<shoulda>, [">= 0"])
320
- end
321
- end
422
+ Developer Mode is no longer available in Rails 2.1 and earlier.
423
+ However, starting in version 2.12 you can use Developer Mode in any
424
+ Rack based framework, in addition to Rails. To install developer mode
425
+ in a non-Rails application, just add NewRelic::Rack::DeveloperMode to
426
+ your middleware stack.
427
+
428
+ If you are using JRuby, we recommend using at least version 1.4 or
429
+ later because of issues with the implementation of the timeout library.
430
+
431
+ Refer to the README.md file for more information.
432
+
433
+ Please see http://github.com/newrelic/rpm/blob/master/CHANGELOG
434
+ for a complete description of the features and enhancements available
435
+ in this version of the Ruby Agent.
322
436
 
437
+ EOS
438
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "New Relic Ruby Agent"]
439
+ s.require_paths = ["lib"]
440
+ s.rubygems_version = "1.3.6"
441
+ s.summary = "New Relic Ruby Agent"
442
+ end