wd_newrelic_rpm 3.3.4.1 → 3.5.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (290) hide show
  1. data/.gitignore +20 -0
  2. data/.project +23 -0
  3. data/.travis.yml +9 -0
  4. data/CHANGELOG +317 -39
  5. data/GUIDELINES_FOR_CONTRIBUTING.md +76 -0
  6. data/Gemfile +16 -0
  7. data/LICENSE +1 -1
  8. data/{README.rdoc → README.md} +71 -55
  9. data/Rakefile +62 -0
  10. data/bin/mongrel_rpm +1 -1
  11. data/config.dot +290 -0
  12. data/config/database.yml +5 -0
  13. data/init.rb +31 -0
  14. data/lib/new_relic/agent.rb +31 -60
  15. data/lib/new_relic/agent/agent.rb +277 -502
  16. data/lib/new_relic/agent/agent_logger.rb +165 -0
  17. data/lib/new_relic/agent/audit_logger.rb +72 -0
  18. data/lib/new_relic/agent/beacon_configuration.rb +36 -50
  19. data/lib/new_relic/agent/browser_monitoring.rb +114 -61
  20. data/lib/new_relic/agent/busy_calculator.rb +14 -6
  21. data/lib/new_relic/agent/configuration.rb +74 -0
  22. data/lib/new_relic/agent/configuration/defaults.rb +126 -0
  23. data/lib/new_relic/agent/configuration/environment_source.rb +49 -0
  24. data/lib/new_relic/agent/configuration/manager.rb +136 -0
  25. data/lib/new_relic/agent/configuration/mask_defaults.rb +10 -0
  26. data/lib/new_relic/agent/configuration/server_source.rb +27 -0
  27. data/lib/new_relic/agent/configuration/yaml_source.rb +63 -0
  28. data/lib/new_relic/agent/cross_process_monitoring.rb +43 -0
  29. data/lib/new_relic/agent/database.rb +39 -26
  30. data/lib/new_relic/agent/error_collector.rb +48 -49
  31. data/lib/new_relic/agent/instrumentation/active_merchant.rb +1 -1
  32. data/lib/new_relic/agent/instrumentation/active_record.rb +4 -7
  33. data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +1 -1
  34. data/lib/new_relic/agent/instrumentation/authlogic.rb +1 -1
  35. data/lib/new_relic/agent/instrumentation/browser_monitoring_timings.rb +41 -0
  36. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +35 -12
  37. data/lib/new_relic/agent/instrumentation/data_mapper.rb +4 -12
  38. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +2 -2
  39. data/lib/new_relic/agent/instrumentation/memcache.rb +6 -6
  40. data/lib/new_relic/agent/instrumentation/merb/controller.rb +1 -1
  41. data/lib/new_relic/agent/instrumentation/merb/errors.rb +1 -1
  42. data/lib/new_relic/agent/instrumentation/metric_frame.rb +4 -14
  43. data/lib/new_relic/agent/instrumentation/metric_frame/pop.rb +1 -1
  44. data/lib/new_relic/agent/instrumentation/net.rb +1 -1
  45. data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +6 -20
  46. data/lib/new_relic/agent/instrumentation/queue_time.rb +2 -2
  47. data/lib/new_relic/agent/instrumentation/rack.rb +1 -1
  48. data/lib/new_relic/agent/instrumentation/rails/action_controller.rb +7 -7
  49. data/lib/new_relic/agent/instrumentation/rails/action_web_service.rb +1 -1
  50. data/lib/new_relic/agent/instrumentation/rails/errors.rb +1 -1
  51. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +5 -5
  52. data/lib/new_relic/agent/instrumentation/rails3/errors.rb +6 -2
  53. data/lib/new_relic/agent/instrumentation/resque.rb +81 -0
  54. data/lib/new_relic/agent/instrumentation/sinatra.rb +21 -10
  55. data/lib/new_relic/agent/instrumentation/sunspot.rb +1 -1
  56. data/lib/new_relic/agent/instrumentation/unicorn_instrumentation.rb +5 -4
  57. data/lib/new_relic/agent/method_tracer.rb +11 -9
  58. data/lib/new_relic/agent/new_relic_service.rb +379 -0
  59. data/lib/new_relic/agent/pipe_channel_manager.rb +175 -0
  60. data/lib/new_relic/agent/pipe_service.rb +58 -0
  61. data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +86 -0
  62. data/lib/new_relic/agent/samplers/memory_sampler.rb +6 -8
  63. data/lib/new_relic/agent/sql_sampler.rb +31 -74
  64. data/lib/new_relic/agent/stats_engine.rb +0 -5
  65. data/lib/new_relic/agent/stats_engine/gc_profiler.rb +40 -24
  66. data/lib/new_relic/agent/stats_engine/metric_stats.rb +89 -14
  67. data/lib/new_relic/agent/stats_engine/samplers.rb +9 -7
  68. data/lib/new_relic/agent/stats_engine/transactions.rb +20 -12
  69. data/lib/new_relic/agent/thread.rb +32 -0
  70. data/lib/new_relic/agent/thread_profiler.rb +306 -0
  71. data/lib/new_relic/agent/transaction_info.rb +24 -4
  72. data/lib/new_relic/agent/transaction_sample_builder.rb +12 -13
  73. data/lib/new_relic/agent/transaction_sampler.rb +49 -65
  74. data/lib/new_relic/agent/worker_loop.rb +31 -25
  75. data/lib/new_relic/collection_helper.rb +1 -1
  76. data/lib/new_relic/commands/deployments.rb +19 -10
  77. data/lib/new_relic/control.rb +1 -3
  78. data/lib/new_relic/control/class_methods.rb +10 -5
  79. data/lib/new_relic/control/frameworks/merb.rb +0 -6
  80. data/lib/new_relic/control/frameworks/rails.rb +30 -45
  81. data/lib/new_relic/control/frameworks/rails3.rb +23 -18
  82. data/lib/new_relic/control/frameworks/rails4.rb +23 -0
  83. data/lib/new_relic/control/frameworks/ruby.rb +2 -23
  84. data/lib/new_relic/control/instance_methods.rb +35 -73
  85. data/lib/new_relic/control/instrumentation.rb +7 -12
  86. data/lib/new_relic/control/server_methods.rb +17 -19
  87. data/lib/new_relic/delayed_job_injection.rb +2 -2
  88. data/lib/new_relic/helper.rb +34 -0
  89. data/lib/new_relic/language_support.rb +56 -37
  90. data/lib/new_relic/local_environment.rb +32 -67
  91. data/lib/new_relic/metric_data.rb +10 -2
  92. data/lib/new_relic/metric_spec.rb +7 -3
  93. data/lib/new_relic/noticed_error.rb +32 -9
  94. data/lib/new_relic/rack.rb +4 -0
  95. data/lib/new_relic/rack/browser_monitoring.rb +34 -25
  96. data/lib/new_relic/rack/developer_mode.rb +3 -0
  97. data/lib/new_relic/rack/error_collector.rb +56 -0
  98. data/lib/new_relic/stats.rb +9 -7
  99. data/lib/new_relic/transaction_sample.rb +19 -18
  100. data/lib/new_relic/transaction_sample/segment.rb +13 -15
  101. data/lib/new_relic/version.rb +19 -3
  102. data/lib/newrelic_rpm.rb +1 -1
  103. data/lib/tasks/tests.rake +6 -8
  104. data/newrelic.yml +15 -32
  105. data/newrelic_rpm.gemspec +224 -43
  106. data/newrelic_rpm.gemspec.erb +54 -0
  107. data/test/config/newrelic.yml +4 -3
  108. data/test/config/test_control.rb +18 -18
  109. data/test/fixtures/gemspec_no_build.rb +442 -0
  110. data/test/fixtures/gemspec_with_build.rb +442 -0
  111. data/test/fixtures/gemspec_with_build_and_stage.rb +442 -0
  112. data/test/intentional_fail.rb +10 -0
  113. data/test/multiverse/.gitignore +10 -0
  114. data/test/multiverse/README.md +85 -0
  115. data/test/multiverse/lib/multiverse/color.rb +13 -0
  116. data/test/multiverse/lib/multiverse/envfile.rb +66 -0
  117. data/test/multiverse/lib/multiverse/environment.rb +16 -0
  118. data/test/multiverse/lib/multiverse/output_collector.rb +29 -0
  119. data/test/multiverse/lib/multiverse/runner.rb +44 -0
  120. data/test/multiverse/lib/multiverse/suite.rb +162 -0
  121. data/test/multiverse/script/run_one +3 -0
  122. data/test/multiverse/script/runner +9 -0
  123. data/test/multiverse/suites/active_record/Envfile +13 -0
  124. data/test/multiverse/suites/active_record/ar_method_aliasing.rb +94 -0
  125. data/test/multiverse/suites/active_record/config/newrelic.yml +22 -0
  126. data/test/multiverse/suites/active_record/encoding_test.rb +26 -0
  127. data/test/multiverse/suites/agent_only/Envfile +4 -0
  128. data/test/multiverse/suites/agent_only/audit_log_test.rb +99 -0
  129. data/test/multiverse/suites/agent_only/config/newrelic.yml +22 -0
  130. data/test/multiverse/suites/agent_only/http_response_code_test.rb +53 -0
  131. data/test/multiverse/suites/agent_only/marshaling_test.rb +109 -0
  132. data/test/multiverse/suites/agent_only/method_visibility_test.rb +98 -0
  133. data/test/multiverse/suites/agent_only/pipe_manager_test.rb +33 -0
  134. data/test/multiverse/suites/agent_only/service_timeout_test.rb +29 -0
  135. data/test/multiverse/suites/agent_only/test_trace_method_with_punctuation.rb +30 -0
  136. data/test/multiverse/suites/agent_only/test_trace_transaction_with_punctuation.rb +32 -0
  137. data/test/multiverse/suites/agent_only/thread_profiling_test.rb +80 -0
  138. data/test/multiverse/suites/config_file_loading/Envfile +7 -0
  139. data/test/multiverse/suites/config_file_loading/config_file_loading_test.rb +106 -0
  140. data/test/multiverse/suites/datamapper/Envfile +8 -0
  141. data/test/multiverse/suites/datamapper/config/newrelic.yml +22 -0
  142. data/test/multiverse/suites/datamapper/encoding_test.rb +36 -0
  143. data/test/multiverse/suites/logging/Envfile +4 -0
  144. data/test/multiverse/suites/logging/config/newrelic.yml +22 -0
  145. data/test/multiverse/suites/logging/logging_test.rb +143 -0
  146. data/test/multiverse/suites/monitor_mode_false/Envfile +2 -0
  147. data/test/multiverse/suites/monitor_mode_false/config/newrelic.yml +25 -0
  148. data/test/multiverse/suites/monitor_mode_false/no_dns_resolv.rb +29 -0
  149. data/test/multiverse/suites/no_load/Envfile +2 -0
  150. data/test/multiverse/suites/no_load/config/newrelic.yml +22 -0
  151. data/test/multiverse/suites/no_load/start_up_test.rb +14 -0
  152. data/test/multiverse/suites/rails_3_error_tracing/Envfile +15 -0
  153. data/test/multiverse/suites/rails_3_error_tracing/config/newrelic.yml +165 -0
  154. data/test/multiverse/suites/rails_3_error_tracing/error_tracing_test.rb +236 -0
  155. data/test/multiverse/suites/rails_3_gc/Envfile +8 -0
  156. data/test/multiverse/suites/rails_3_gc/config/newrelic.yml +167 -0
  157. data/test/multiverse/suites/rails_3_gc/instrumentation_test.rb +92 -0
  158. data/test/multiverse/suites/rails_3_queue_time/Envfile +15 -0
  159. data/test/multiverse/suites/rails_3_queue_time/config/newrelic.yml +165 -0
  160. data/test/multiverse/suites/rails_3_queue_time/queue_time_test.rb +75 -0
  161. data/test/multiverse/suites/rails_3_views/.gitignore +3 -0
  162. data/test/multiverse/suites/rails_3_views/Envfile +16 -0
  163. data/test/multiverse/suites/rails_3_views/app/views/foos/_foo.html.haml +1 -0
  164. data/test/multiverse/suites/rails_3_views/app/views/test/_a_partial.html.erb +1 -0
  165. data/test/multiverse/suites/rails_3_views/app/views/test/_mid_partial.html.erb +1 -0
  166. data/test/multiverse/suites/rails_3_views/app/views/test/_top_partial.html.erb +3 -0
  167. data/test/multiverse/suites/rails_3_views/app/views/test/deep_partial.html.erb +3 -0
  168. data/test/multiverse/suites/rails_3_views/app/views/test/haml_view.html.haml +6 -0
  169. data/test/multiverse/suites/rails_3_views/app/views/test/index.html.erb +4 -0
  170. data/test/multiverse/suites/rails_3_views/config/newrelic.yml +164 -0
  171. data/test/multiverse/suites/rails_3_views/view_instrumentation_test.rb +245 -0
  172. data/test/multiverse/suites/resque/Envfile +21 -0
  173. data/test/multiverse/suites/resque/config/newrelic.yml +22 -0
  174. data/test/multiverse/suites/resque/dump.rdb +0 -0
  175. data/test/multiverse/suites/resque/instrumentation_test.rb +73 -0
  176. data/test/multiverse/suites/rum_auto_instrumentation/Envfile +4 -0
  177. data/test/multiverse/suites/rum_auto_instrumentation/config/newrelic.yml +24 -0
  178. data/test/multiverse/suites/rum_auto_instrumentation/responses/worst_case_small.html +5000 -0
  179. data/test/multiverse/suites/rum_auto_instrumentation/sanity_test.rb +102 -0
  180. data/test/multiverse/suites/sinatra/Envfile +13 -0
  181. data/test/multiverse/suites/sinatra/config/newrelic.yml +24 -0
  182. data/test/multiverse/suites/sinatra/sinatra_metric_explosion_test.rb +77 -0
  183. data/test/multiverse/suites/sinatra/sinatra_routes_test.rb +46 -0
  184. data/test/multiverse/suites/sinatra/sinatra_test.rb +55 -0
  185. data/test/multiverse/test/multiverse_test.rb +55 -0
  186. data/test/multiverse/test/suite_examples/one/a/Envfile +3 -0
  187. data/test/multiverse/test/suite_examples/one/a/a_test.rb +11 -0
  188. data/test/multiverse/test/suite_examples/one/a/config/newrelic.yml +24 -0
  189. data/test/multiverse/test/suite_examples/one/b/Envfile +3 -0
  190. data/test/multiverse/test/suite_examples/one/b/b_test.rb +11 -0
  191. data/test/multiverse/test/suite_examples/one/b/config/newrelic.yml +24 -0
  192. data/test/multiverse/test/suite_examples/three/a/Envfile +2 -0
  193. data/test/multiverse/test/suite_examples/three/a/fail_test.rb +6 -0
  194. data/test/multiverse/test/suite_examples/three/b/Envfile +2 -0
  195. data/test/multiverse/test/suite_examples/three/b/win_test.rb +6 -0
  196. data/test/multiverse/test/suite_examples/two/a/Envfile +1 -0
  197. data/test/multiverse/test/suite_examples/two/a/fail_test.rb +6 -0
  198. data/test/new_relic/agent/agent/connect_test.rb +151 -227
  199. data/test/new_relic/agent/agent/start_test.rb +68 -118
  200. data/test/new_relic/agent/agent/start_worker_thread_test.rb +12 -74
  201. data/test/new_relic/agent/agent_logger_test.rb +153 -0
  202. data/test/new_relic/agent/agent_test.rb +116 -30
  203. data/test/new_relic/agent/agent_test_controller.rb +1 -1
  204. data/test/new_relic/agent/agent_test_controller_test.rb +42 -10
  205. data/test/new_relic/agent/audit_logger_test.rb +105 -0
  206. data/test/new_relic/agent/beacon_configuration_test.rb +63 -67
  207. data/test/new_relic/agent/browser_monitoring_test.rb +151 -79
  208. data/test/new_relic/agent/busy_calculator_test.rb +7 -0
  209. data/test/new_relic/agent/configuration/environment_source_test.rb +79 -0
  210. data/test/new_relic/agent/configuration/manager_test.rb +204 -0
  211. data/test/new_relic/agent/configuration/server_source_test.rb +45 -0
  212. data/test/new_relic/agent/configuration/yaml_source_test.rb +75 -0
  213. data/test/new_relic/agent/cross_process_monitoring_test.rb +77 -0
  214. data/test/new_relic/agent/database_test.rb +12 -11
  215. data/test/new_relic/agent/error_collector/notice_error_test.rb +64 -53
  216. data/test/new_relic/agent/error_collector_test.rb +33 -19
  217. data/test/new_relic/agent/instrumentation/active_record_instrumentation_test.rb +60 -30
  218. data/test/new_relic/agent/instrumentation/browser_monitoring_timings_test.rb +39 -0
  219. data/test/new_relic/agent/instrumentation/metric_frame/pop_test.rb +1 -1
  220. data/test/new_relic/agent/instrumentation/metric_frame_test.rb +6 -0
  221. data/test/new_relic/agent/instrumentation/queue_time_test.rb +14 -0
  222. data/test/new_relic/agent/instrumentation/sinatra_test.rb +25 -0
  223. data/test/new_relic/agent/instrumentation/task_instrumentation_test.rb +2 -2
  224. data/test/new_relic/agent/method_tracer/class_methods/add_method_tracer_test.rb +4 -10
  225. data/test/new_relic/agent/method_tracer/instance_methods/trace_execution_scoped_test.rb +3 -15
  226. data/test/new_relic/agent/method_tracer_test.rb +7 -6
  227. data/test/new_relic/agent/mock_scope_listener.rb +3 -0
  228. data/test/new_relic/agent/new_relic_service_test.rb +376 -0
  229. data/test/new_relic/agent/pipe_channel_manager_test.rb +131 -0
  230. data/test/new_relic/agent/pipe_service_test.rb +113 -0
  231. data/test/new_relic/agent/rpm_agent_test.rb +27 -50
  232. data/test/new_relic/agent/sql_sampler_test.rb +81 -56
  233. data/test/new_relic/agent/stats_engine/metric_stats/harvest_test.rb +3 -20
  234. data/test/new_relic/agent/stats_engine/metric_stats_test.rb +12 -1
  235. data/test/new_relic/agent/stats_engine_test.rb +17 -8
  236. data/test/new_relic/agent/thread_profiler_test.rb +537 -0
  237. data/test/new_relic/agent/thread_test.rb +89 -0
  238. data/test/new_relic/agent/threaded_test.rb +65 -0
  239. data/test/new_relic/agent/transaction_info_test.rb +45 -4
  240. data/test/new_relic/agent/transaction_sample_builder_test.rb +8 -7
  241. data/test/new_relic/agent/transaction_sampler_test.rb +193 -204
  242. data/test/new_relic/agent/worker_loop_test.rb +26 -11
  243. data/test/new_relic/agent_test.rb +113 -33
  244. data/test/new_relic/collection_helper_test.rb +7 -8
  245. data/test/new_relic/command/deployments_test.rb +18 -2
  246. data/test/new_relic/control/class_methods_test.rb +0 -18
  247. data/test/new_relic/control/frameworks/rails_test.rb +26 -0
  248. data/test/new_relic/control_test.rb +96 -137
  249. data/test/new_relic/delayed_job_injection_test.rb +6 -1
  250. data/test/new_relic/dispatcher_test.rb +54 -0
  251. data/test/new_relic/fake_collector.rb +283 -0
  252. data/test/new_relic/fake_service.rb +53 -0
  253. data/test/new_relic/fakes_sending_data.rb +30 -0
  254. data/test/new_relic/framework_test.rb +53 -0
  255. data/test/new_relic/load_test.rb +13 -0
  256. data/test/new_relic/local_environment_test.rb +11 -11
  257. data/test/new_relic/metric_data_test.rb +45 -16
  258. data/test/new_relic/noticed_error_test.rb +24 -0
  259. data/test/new_relic/rack/browser_monitoring_test.rb +20 -10
  260. data/test/new_relic/rack/developer_mode_test.rb +13 -7
  261. data/test/new_relic/rack/error_collector_test.rb +74 -0
  262. data/test/new_relic/stats_test.rb +10 -0
  263. data/test/new_relic/transaction_sample/segment_test.rb +23 -4
  264. data/test/new_relic/transaction_sample_test.rb +47 -2
  265. data/test/new_relic/version_number_test.rb +32 -0
  266. data/test/script/build_test_gem.sh +9 -3
  267. data/test/script/ci.sh +108 -35
  268. data/test/script/ci_agent-tests_runner.sh +82 -0
  269. data/test/script/ci_multiverse_runner.sh +63 -0
  270. data/test/test_contexts.rb +1 -0
  271. data/test/test_helper.rb +68 -18
  272. data/ui/helpers/developer_mode_helper.rb +21 -11
  273. data/ui/views/layouts/newrelic_default.rhtml +1 -0
  274. data/ui/views/newrelic/file/images/arrow-close.png +0 -0
  275. data/ui/views/newrelic/file/images/arrow-open.png +0 -0
  276. data/ui/views/newrelic/file/images/blue_bar.gif +0 -0
  277. data/ui/views/newrelic/file/images/file_icon.png +0 -0
  278. data/ui/views/newrelic/file/images/gray_bar.gif +0 -0
  279. data/ui/views/newrelic/show_sample.rhtml +1 -1
  280. data/ui/views/newrelic/threads.rhtml +2 -10
  281. data/vendor/gems/metric_parser-0.1.0.pre1/.specification +116 -0
  282. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_init.rb +7 -0
  283. metadata +191 -65
  284. data/lib/new_relic/agent/samplers/delayed_job_lock_sampler.rb +0 -40
  285. data/lib/new_relic/control/configuration.rb +0 -206
  286. data/lib/new_relic/control/logging_methods.rb +0 -143
  287. data/lib/new_relic/data_serialization.rb +0 -151
  288. data/test/new_relic/control/configuration_test.rb +0 -84
  289. data/test/new_relic/control/logging_methods_test.rb +0 -185
  290. data/test/new_relic/data_serialization_test.rb +0 -208
data/.gitignore ADDED
@@ -0,0 +1,20 @@
1
+ Gemfile.lock
2
+ .DS\_Store
3
+ .svn/
4
+ *~
5
+ *.rbc
6
+ pkg/
7
+ *.gem
8
+ !rails
9
+ Manifest*
10
+ .idea/
11
+ tmp/
12
+ TAGS
13
+ tags
14
+ *.swp
15
+ *.swo
16
+
17
+ /log/
18
+ /lerg/
19
+ gems/newrelic_rpm.gemspec
20
+ gems/newrelic_rpm*.tar.gz
data/.project ADDED
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projectDescription>
3
+ <name>New Relic Agent</name>
4
+ <comment></comment>
5
+ <projects>
6
+ </projects>
7
+ <buildSpec>
8
+ <buildCommand>
9
+ <name>com.aptana.ide.core.unifiedBuilder</name>
10
+ <arguments>
11
+ </arguments>
12
+ </buildCommand>
13
+ <buildCommand>
14
+ <name>org.rubypeople.rdt.core.rubybuilder</name>
15
+ <arguments>
16
+ </arguments>
17
+ </buildCommand>
18
+ </buildSpec>
19
+ <natures>
20
+ <nature>com.aptana.ruby.core.rubynature</nature>
21
+ <nature>org.rubypeople.rdt.core.rubynature</nature>
22
+ </natures>
23
+ </projectDescription>
data/.travis.yml ADDED
@@ -0,0 +1,9 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.8.7
4
+ - ree
5
+ - 1.9.2
6
+ - 1.9.3
7
+ - jruby-19mode
8
+ - jruby-18mode
9
+
data/CHANGELOG CHANGED
@@ -1,3 +1,281 @@
1
+
2
+ # New Relic Ruby Agent Release Notes #
3
+
4
+ ## v3.5.5 ##
5
+
6
+ * Add thread profiling support
7
+
8
+ Thread profiling performs statistical sampling of backtraces of all threads
9
+ within your Ruby processes. This feature requires MRI >= 1.9.2, and is
10
+ controlled via the New Relic web UI. JRuby support (in 1.9.x compat mode) is
11
+ considered experimental, due to issues with JRuby's Thread#backtrace.
12
+
13
+ * Add audit logging capability
14
+
15
+ The agent can now log all of the data it sends to the New Relic servers to
16
+ a special log file for human inspection. This feature is off by default, and
17
+ can be enabled by setting the audit_log.enabled configuration key to true.
18
+ You may also control the location of the audit log with the audit_log.path key.
19
+
20
+ * Use config system for dispatcher, framework, and config file detection
21
+
22
+ Several aspects of the agent's configuration were not being handled by the
23
+ configuration system. Detection/configuration of the dispatcher (e.g. passenger,
24
+ unicorn, resque), framework (e.g. rails3, sinatra), and newrelic.yml
25
+ location are now handled via the Agent environment, manual, and default
26
+ configuration sources.
27
+
28
+ * Updates to logging across the agent
29
+
30
+ We've carefully reviewed the logging messages that the agent outputs, adding
31
+ details in some cases, and removing unnecessary clutter. We've also altered
32
+ the startup sequence to ensure that we don't spam STDOUT with messages
33
+ during initialization.
34
+
35
+ * Fix passing environment to manual_start()
36
+
37
+ Thanks to Justin Hannus. The :env key, when passed to Agent.manual_start,
38
+ can again be used to specify which section of newrelic.yml is loaded.
39
+
40
+ * Rails 4 support
41
+
42
+ This release includes preliminary support for Rails 4 as of 4.0.0.beta.
43
+ Rails 4 is still in development, but the agent should work as expected for
44
+ people who are experimenting with the beta.
45
+
46
+ ## v3.5.4 ##
47
+
48
+ * Add queue time support for sinatra apps
49
+
50
+ Sinatra applications can now take advantage of front end queue time
51
+ reporting. Thanks to Winfield Peterson for this contribution.
52
+
53
+ * Simplify queue time configuration for nginx 1.2.6+
54
+
55
+ Beginning in version 1.2.6, recently released as a development version, the
56
+ $msec variable can be used to set an http header. This change allows front
57
+ end queue time to be tracked in New Relic simply by adding this line to the
58
+ nginx config:
59
+
60
+ proxy_set_header X-Queue-Start "t=${msec}000"
61
+
62
+ It will no longer be necessary to compile a patched version of nginx or
63
+ compile in the perl or lua module to enable this functionality.
64
+
65
+ Thanks to Lawrence Pit for the contribution.
66
+
67
+ * Report back build number and stage along with version info
68
+
69
+ In the 3.5.3 series the agent would fail to report its full version number
70
+ to NewRelic's environment report. For example it would report its version
71
+ as 3.5.3 instead of 3.5.3.25 or 3.5.3.25.beta. The agent will now report
72
+ its complete version number as defined in newrelic_rpm.gemspec.
73
+
74
+ * The host and the port that the agent reports to can now be set from environment vars
75
+
76
+ The host can be set with NEW_RELIC_HOST and the port with NEW_RELIC_PORT. These setting
77
+ will overrride any other settings in your newrelic.yml.
78
+
79
+ * Fix RUM reporting to multiple applications
80
+
81
+ When the agent is configured to report to multiple "roll up" applications
82
+ RUM did not work correctly.
83
+
84
+ ## v3.5.3 ##
85
+
86
+ * Update the collector protocol to use JSON and Ruby primitives
87
+
88
+ The communication between the agent and the NewRelic will not longer be
89
+ marshalled Ruby objects, but rather JSON in the case of Ruby 1.9 and marshalled
90
+ Ruby primitives in the case of 1.8. This results in greater harvest efficiency
91
+ as well as feature parity with other New Relic agents.
92
+
93
+ * Fix incorrect application of conditions in sinatra instrumentation
94
+
95
+ The agent's sinatra instrumentation was causing sinatra's condidtions to
96
+ be incorrectly applied in some obscure cases. The bug was triggered
97
+ when a condition was present on a lower priority route that would match
98
+ the current request, except for the precense of a higher priority route.
99
+
100
+ ## v3.5.2 ##
101
+
102
+ * Simplified process of running agent test suite and documented code
103
+ contribution process in GUIDELINES_FOR_CONTRIBUTING.
104
+
105
+ ## v3.5.1 ##
106
+
107
+ * Enabling Memory Profiling on Lion and Mountain Lion
108
+
109
+ The agent's list of supported platforms for memory profiling wasn't correctly checking
110
+ for more recent versions of OS X.
111
+
112
+ * Fixed an arity issue encountered when calling newrelic_notice_error from Rails applications.
113
+
114
+ * End user queue time was not being properly reported, works properly now.
115
+
116
+ * Server-side configuration for ignoring errors was not being heeded by agent.
117
+
118
+ * Better handling of a thread safety issue.
119
+
120
+ Some issues may remain, which we are working to address, but they should be gracefully handled
121
+ now, rather than crashing the running app.
122
+
123
+ * Use "java_import" rather than "include_class" when require Java Jars into a JRuby app.
124
+
125
+ Thanks to Jan Habermann for the pull request
126
+
127
+ * Replaced alias_method mechanism with super call in DataMapper instrumentation.
128
+
129
+ Thanks to Michael Rykov for the pull request
130
+
131
+ * Fixed the Rubinius GC profiler.
132
+
133
+ Thanks to Dirkjan Bussink
134
+
135
+ * Use ActiveSupport.on_load to load controller instrumentation Rails 3.
136
+
137
+ Thanks to Jonathan del Strother
138
+
139
+ * Reduce the number of thread local reference in a particular high traffic method
140
+
141
+ Thanks to Jeremy Kemper
142
+
143
+ ## v3.5.0.1 ##
144
+
145
+ * (Fix) Due to a serious resource leak we have ended support for versions of Phusion Passenger
146
+ older than 2.1.1. Users of older versions are encouraged upgrade to a more recent version.
147
+
148
+ ## v3.5.0 ##
149
+
150
+ * (Fix) RUM Stops Working After 3.4.2.1 Agent Upgrade
151
+
152
+ v3.4.2.1 introduced a bug that caused the browser monitor auto instrumentation
153
+ (for RUM) default to be false. The correct value of true is now used
154
+
155
+ * When the Ruby Agent detects Unicorn as the dispatcher it creates an INFO level log message
156
+ with additional information
157
+
158
+ To help customers using Unicorn, if the agent detects it (Unicorn) is being used as the
159
+ dispatcher an INFO level log message it created that includes a link to New Relic
160
+ online doc that has additional steps that may be required to get performance data reporting.
161
+
162
+ * (Fix) In version 3.4.2 of the Ruby Agent the server side value for Apdex T was disgregarded
163
+
164
+ With version 3.4.2 of the agent, the value set in the newrelic.yml file took precedence over the
165
+ value set in the New Relic UI. As of version 3.5.0 only the value for Apdex T set in the
166
+ New Relic UI will be used. Any setting in the yaml file will be ignored.
167
+
168
+ * Improved Error Detection/Reporting capabilities for Rails 3 apps
169
+
170
+ Some errors are missed by the agent's exception reporting handlers because they are
171
+ generated in the rails stack, outside of the instrumented controller action. A Rack
172
+ middleware is now included that can detect these errors as they bubble out of the middleware stack.
173
+ Note that this does not include Routing Errors.
174
+
175
+ * The Ruby Agent now logs certain information it receives from the New Relic servers
176
+
177
+ After connecting to the New Relic servers the agent logs the New Relic URL
178
+ of the app it is reporting to.
179
+
180
+ * GC profiling overhead for Ruby 1.9 reduced
181
+
182
+ For Ruby 1.9 the amount of time spent in GC profiling has been reduced.
183
+
184
+ * Know issue with Ruby 1.8.7-p334, sqlite3-ruby 1.3.0 or older, and resque 1.23.0
185
+
186
+ The Ruby Agent will not work in conjunction with Ruby 1.8.7-p334, sqlite3-ruby 1.3.3
187
+ or earlier, and resque 1.23.0. Your app will likely stop functioning. This is a known problem
188
+ with Ruby versions up to 1.8.7-p334. Upgrading to the last release of Ruby 1.8.7
189
+ is recommended. This issue has been present in every version of the agent we've tested
190
+ going back for a year.
191
+
192
+
193
+ ### previous versions ###
194
+ ## v3.4.2.1 ##
195
+
196
+ * Fix issue when app_name is nil
197
+
198
+ If the app_name setting ends up being nil an exception got generated and the application
199
+ wouldn't run. This would notably occur when running a Heroku app locally without the
200
+ NEW_RELIC_APP_NAME environment variable set. A nil app_name is now detected and an
201
+ error logged specifying remediation.
202
+
203
+ ## v3.4.2 ##
204
+
205
+ * The RUM NRAGENT tk value gets more robustly sanitized to prevent potential XSS vulnerabilities
206
+
207
+ The code that scrubes the token used in Real User Monitoring has been enhanced to be
208
+ more robust.
209
+
210
+ * Support for Apdex T in server side configuration
211
+
212
+ For those using server side configuration the Ruby Agent now supports setting
213
+ the Apdex T value via the New Relic UI.
214
+
215
+ * Refactoring of agent config code
216
+
217
+ The code that reads the configuration information and confirgures the agent
218
+ got substantially reorganized, consolidated, simplified, and made more robust.
219
+
220
+ ## v3.4.1 ##
221
+ #### Bug Fixes ####
222
+ * Fix edge case in RUM auto instrumentation where X-UA-Compatible meta tag is
223
+ present but </head> tag is missing.
224
+
225
+ There is a somewhat obscure edge case where RUM auto instrumentation will
226
+ crash a request. The issue seems to be triggered when the X-UA-Compatible
227
+ meta tag is present and the </head> tag is missing.
228
+
229
+ * Fixed reference to @service.request_timeout to @request_timeout in
230
+ new_relic_service.rb. (Thanks to Matthew Savage)
231
+
232
+ When a timeout occurred during connection to the collector an "undefined
233
+ method `request_timeout' for nil:NilClass'" would get raised.
234
+
235
+ * preserve visibility on traced methods.
236
+
237
+ Aliased methods now have the same visibility as the original traced method.
238
+ A couple of the esoteric methods created in the process weren't getting the
239
+ visibility set properly.
240
+
241
+ * Agent service does not connect to directed shard collector after connecting
242
+ to proxy
243
+
244
+ After connecting to collector proxy name of real collector was updated, but
245
+ ip address was not being updated causing connections to go to the proxy.
246
+ Agent now looks up ip address for real collector.
247
+
248
+ * corrupt marshal data from pipe children crashing agent
249
+
250
+ If the agent receieved corrupted data from the Reqsue worker child agent
251
+ it could crash the agent itself. fixed.
252
+
253
+ * should reset RubyBench GC counter between polls
254
+
255
+ On Ruby REE, the GC profiler does not reset the counter between polls. This
256
+ is only a problem if GC could happen *between* transactions, as in, for
257
+ example, out-of-band GC in Unicorn. fixed.
258
+
259
+ v3.4.0.1
260
+ * Prevent the agent from resolving the collector address when disabled.
261
+ * Fix for error collector configuration that was introduced during beta.
262
+ * Preserve method visibility when methods are traced with #add_method_tracer and #add_transaction_tracer
263
+
264
+ v3.4.0
265
+ * Major refactor of data transmission mechanism. This enabled child processes to send data to parent processes, which then send the data to the New Relic service. This should only affect Resque users, dramatically improving their experience.
266
+ * Moved Resque instrumentation from rpm_contrib to main agent. Resque users should discontinue use of rpm_contrib or upgrade to 2.1.11.
267
+ * Resolve issue with configuring the Error Collector when using server-side configuration.
268
+
269
+ v3.3.5
270
+ * [FIX] Allow tracing of methods ending in ! and ?
271
+ * [PERF] Give up after scanning first 50k of the response in RUM
272
+ auto-instrumentation.
273
+ * [FIX] Don't raise when extracting metrics from SQL queries with non UTF-8 bytes.
274
+ * Replaced "Custom/DJ Locked Jobs" metric with new metrics for
275
+ monitoring DelayedJob: queue_length, failed_jobs, and locked_jobs, all under
276
+ Workers/DelayedJob. queue_length is also broken out by queue name or priority
277
+ depending on the version of DelayedJob deployed.
278
+
1
279
  v3.3.4.1
2
280
  * Bug fix when rendering empty collection in Rails 3.1+
3
281
 
@@ -17,7 +295,7 @@ v3.3.2
17
295
  * Fix for lost database connections when using a forking framework
18
296
  * Workaround for RedHat kernel bug which prevented blocking reads of /proc fs
19
297
  * Do not trap signals when handling exceptions
20
-
298
+
21
299
  v3.3.1
22
300
  * improved Ruby 1.8.6 support
23
301
  * fix for issues with RAILS_ROOT deprecation warnings
@@ -46,11 +324,11 @@ v3.2.0
46
324
  * Fix to mutex lib load issue
47
325
  * Performance enhancements (thanks to Jeremy Kemper)
48
326
  * Fix overly verbose STDOUT message (thanks to Anselm Helbig)
49
-
327
+
50
328
  v3.1.2
51
329
  * Fixed some thread safety issues
52
330
  * Work around for Ruby 1.8.7 Marshal crash bug
53
- * Numerous community patches (Gabriel Horner, Bradley Harris, Diego Garcia,
331
+ * Numerous community patches (Gabriel Horner, Bradley Harris, Diego Garcia,
54
332
  Tommy Sullivan, Greg Hazel, John Thomas Marino, Paul Elliott, Pan Thomakos)
55
333
  * Fixed RUM instrumentation bug
56
334
 
@@ -64,13 +342,13 @@ v3.1.1
64
342
  * Support for logging to STDOUT
65
343
  * Support for Spymemcached client on jruby
66
344
 
67
- v3.1.0
345
+ v3.1.0
68
346
  * Support for aggregating data from short-running
69
347
  processes to reduce reporting overhead
70
348
  * Numerous bug fixes
71
349
  * Increased unit test coverage
72
350
 
73
- v3.0.1
351
+ v3.0.1
74
352
  * Updated Real User Monitoring to reduce javascript size and improve
75
353
  compatibility, fix a few known bugs
76
354
 
@@ -113,7 +391,7 @@ v2.13.3
113
391
  * Dalli instrumentation from Mike Perham (thanks Mike)
114
392
  * Datamapper instrumentation from Jordan Ritter (thanks Jordan)
115
393
  * Apdex now defaults to 0.5
116
- !!! Please be aware that if you are not setting an apdex,
394
+ !!! Please be aware that if you are not setting an apdex,
117
395
  !!! this will cause a change in the apparent performance of your app.
118
396
  * Make metric hashes threadsafe (fixes problems sending metrics in Jruby
119
397
  threaded code)
@@ -152,7 +430,7 @@ v2.13.0
152
430
  details from web and background transactions occurring outside RPM
153
431
  * fixed a bug related to enabling a gold trial / upgrade not sending
154
432
  trasaction traces correctly
155
-
433
+
156
434
  v2.12.3
157
435
  * fix regression in startup sequence
158
436
 
@@ -177,7 +455,7 @@ v2.11.2
177
455
  * fix for unicorn not reporting when the proc line had 'master' in it
178
456
  * fix regression for passenger 2.0 and earlier
179
457
  * fix after_fork in the shim
180
-
458
+
181
459
  v2.11.1
182
460
  * republished gem without generated rdocs
183
461
 
@@ -185,18 +463,18 @@ v2.11.0
185
463
  * rails3 instrumentation (no developer mode support yet)
186
464
  * removed the ensure_worker_thread started and instead defined an after_fork
187
465
  handler that will set up the agent properly in forked processes.
188
- * change at_exit handler so the shutdown always goes after other shutdown
466
+ * change at_exit handler so the shutdown always goes after other shutdown
189
467
  handlers
190
468
  * add visibility to active record db transactions in the rpm transaction
191
469
  traces (thanks to jeremy kemper)
192
470
  * fix regression in merb support which caused merb apps not to start
193
- * added NewRelic::Agent.logger to the public api to write to the agent
471
+ * added NewRelic::Agent.logger to the public api to write to the agent
194
472
  log file.
195
473
  * optimizations to background thread, controller instrumentation, memory
196
474
  usage
197
475
  * add logger method to public_api
198
476
  * support list notation for ignored exceptions in the newrelic.yml
199
-
477
+
200
478
  v2.10.8
201
479
  * fix bug in delayed_job instrumentation that caused the job queue sampler
202
480
  to run in the wrong place
@@ -206,30 +484,30 @@ v2.10.8
206
484
  * fix problem with the Authlogic metric names which caused errors in
207
485
  developer mode. Authlogic metrics now adhere to the convention of
208
486
  prefixing the name with 'Custom'
209
- * allow more correct overriding of transaction trace settings in the
487
+ * allow more correct overriding of transaction trace settings in the
210
488
  call to #manual_start
211
489
  * simplify WorkerLoop and add better protection for concurrency
212
490
  * preliminary support for rails3
213
-
491
+
214
492
  v2.10.6
215
493
  * fix missing URL and referer on some traced errors and transactions
216
494
  * gather traced errors *after* executing the rescue chain in ActionController
217
495
  * always load controller instrumentation
218
496
  * pick up token validation from newrelic.yml
219
-
497
+
220
498
  v2.10.5
221
499
  * fix bug in delayed_job instrumentation occurring when there was no DJ log
222
-
500
+
223
501
  v2.10.4
224
502
  * fix incompatibility with Capistrano 2.5.16
225
503
  * strip down URLs reported in transactions and errors to path only
226
-
504
+
227
505
  v2.10.3
228
506
  * optimization to reduce overhead: move background samplers into foreground thread
229
507
  * change default config file to ignore RoutingErrors
230
508
  * moved the background task instrumentation into a separate tab in the RPM UI
231
509
  * allow override of the RPM application name via NEWRELIC_APP_NAME environment variable
232
- * revised Delayed::Job instrumentation so no manual_start is required
510
+ * revised Delayed::Job instrumentation so no manual_start is required
233
511
  * send buffered data on shutdown
234
512
  * expanded support for queue length and queue time
235
513
  * remove calls to starts_with to fix Sinatra and non-rails deployments
@@ -241,9 +519,9 @@ v2.10.3
241
519
 
242
520
  v2.10.2.
243
521
  * beta release of 2.10
244
- * fix bugs with Sinatra app instrumentation
522
+ * fix bugs with Sinatra app instrumentation
245
523
  * minor doc updates
246
-
524
+
247
525
  v2.10.1.
248
526
  * alpha release of 2.10
249
527
  * rack support, including metal; ignores 404s; requires a module inclusion (see docs)
@@ -251,19 +529,19 @@ v2.10.1.
251
529
  * add API method to abort transaction recording for in-flight transactions
252
530
  * remove account management calls from newrelic_api.rb
253
531
  * truncating extremely large transaction traces for efficiency
254
- * fix error reporting in recipes; add newrelic_rails_env option to recipes to
532
+ * fix error reporting in recipes; add newrelic_rails_env option to recipes to
255
533
  override the rails env used to pull the app_name out of newrelic.yml
256
534
  * added TorqueBox recognition (thanks Bob McWhirter)
257
535
  * renamed config settings: enabled => monitor_mode; developer => developer_mode;
258
536
  old names will still work in newrelic.yml
259
537
  * instrumentation for DelayedJob (thanks Travis Tilley)
260
- * added config switches to turn off certain instrumentation when you aren't
261
- interested in the metrics, to save on overhead--see newrelic.yml for details.
538
+ * added config switches to turn off certain instrumentation when you aren't
539
+ interested in the metrics, to save on overhead--see newrelic.yml for details.
262
540
  * add profiling support to dev mode; very experimental!
263
541
  * add 'multi_threaded' config option to indicate when the app is running
264
542
  multi-threaded, so we can disable some instrumentation
265
543
  * fix test failures in JRuby, REE
266
- * improve Net::HTTP instrumentation so its more efficient and distinguishes calls
544
+ * improve Net::HTTP instrumentation so it's more efficient and distinguishes calls
267
545
  between web and non-web transactions.
268
546
  * database instrumentation notices all database commands in addition to the core commands
269
547
  * add support for textmate to dev mode
@@ -279,13 +557,13 @@ v2.10.1.
279
557
  * renamed the dispatcher metric
280
558
  * refactored stats_engine code for readability
281
559
  * optimization: reduce wakeup times for harvest thread
282
-
560
+
283
561
  v2.10.0.
284
562
  * alpha release of 2.10
285
563
  * support unicorn
286
564
  * instrumentation of GC for REE and MRE with GC patch
287
565
  * support agent restarting when changes are made to the account
288
- * removed #newrelic_notice_error from Object class, replaced by NewRelic::Agent#notic_error
566
+ * removed #newrelic_notice_error from Object class, replaced by NewRelic::Agent#notic_error
289
567
  * collect histogram statistics
290
568
  * add custom parameters to newrelic_notice_error call to display
291
569
  extra info for errors
@@ -321,13 +599,13 @@ v2.9.4.
321
599
  v2.9.3.
322
600
  * fix startup failure in Windows due to memory sampler
323
601
  * add JRuby environment information
324
-
602
+
325
603
  v2.9.2.
326
- * change default apdex_t to 0.5 seconds
604
+ * change default apdex_t to 0.5 seconds
327
605
  * fix bug in deployments introduced by multi_homed setting
328
606
  * support overriding the log in the agent api
329
607
  * fix JRuby problem using objectspace
330
- * display custom parameters when looking at transactions in dev mode
608
+ * display custom parameters when looking at transactions in dev mode
331
609
  * display count of sql statements on the list of transactions in dev mode
332
610
  * fixes for merb--thanks to Carl Lerche
333
611
 
@@ -335,14 +613,14 @@ v2.9.1.
335
613
  * add newrelic_ignore_apdex method to controller classes to allow
336
614
  you to omit some actions from apdex statistics
337
615
  * Add hook for Passenger shutdown events to get more timely shutdown
338
- notices; this will help in more accurate memory readings in
616
+ notices; this will help in more accurate memory readings in
339
617
  Passenger
340
618
  * add newrelic_notice_error to Object class
341
- * optional ability to verify SSL certificates, note that this has some
619
+ * optional ability to verify SSL certificates, note that this has some
342
620
  performance and reliability implications
343
621
  * support multi-homed host with multiple apps running on duplicate
344
622
  ports
345
-
623
+
346
624
  v2.9.0.
347
625
  Noteworthy Enhancements
348
626
  * give visibility to templates and partials in Rails 2.1 and later, in
@@ -357,7 +635,7 @@ v2.9.0.
357
635
  * add API for system monitoring daemons (refer to KB articles); changed
358
636
  API for manual starting of the agent; refer to
359
637
  NewRelic::Agent.manual_start for details
360
- * do certificate verification on ssl connections to
638
+ * do certificate verification on ssl connections to
361
639
  collector.newrelic.com
362
640
  * support instances appearing in more than one application by allowing a
363
641
  semicolon separated list of names for the newrelic.yml app_name
@@ -371,17 +649,17 @@ v2.9.0.
371
649
  * added number of queries to transactions in the transaction list
372
650
  * added some sorting options for the transaction list
373
651
  * added a page showing the list of active threads
374
-
652
+
375
653
  Compatibility Enhancements
376
654
  * ruby 1.9.1 compatibility
377
655
  * support concurrency when determining busy times, for 2.2 compatibility
378
656
  * in jruby, use Java used heap for memory sampling if the system memory
379
657
  is not accessible from an unsupported platform
380
- * jruby will no longer start the agent now when running the console or
658
+ * jruby will no longer start the agent now when running the console or
381
659
  rake tasks
382
660
  * API support for RPM as a footnote add-in
383
661
  * webrick support restored
384
-
662
+
385
663
  Noteworthy bugfixes
386
664
  * sample memory on linux by reading /proc/#{$$}/status file
387
665
  * fixed ambiguous 'View' metrics showing up in controller breakdown
@@ -392,7 +670,7 @@ v2.9.0.
392
670
  * moved CPU sampler off background thread and onto the harvest thread
393
671
  * tests now run cleanly in any rails app using test:newrelic or
394
672
  test:plugins
395
-
673
+
396
674
  Agent improvements to support future RPM enhancements
397
675
  * add instrumentation to capture metrics on response codes; not yet
398
676
  working in rails 2.3.*
@@ -463,7 +741,7 @@ v2.8.1.
463
741
  symlinked to /usr/bin. Usage: newrelic_cmd deployments --help
464
742
  * Fix issue invoking api when host is not set in newrelic.yml
465
743
  * Fix deployments api so it will work from a gem
466
- * Fix thin incompatibility in developer mode
744
+ * Fix thin incompatibility in developer mode
467
745
 
468
746
  v2.8.0.
469
747
  * add beta of api in new_relic_api.rb
@@ -471,7 +749,7 @@ v2.8.0.
471
749
  * preliminary support for capturing deployment information via capistrano
472
750
  * change memory sampler for solaris to use /usr/bin/ps
473
751
  * allow ERB in newrelic.yml file
474
- * merged support for merb into this version
752
+ * merged support for merb into this version
475
753
  * fix incompatibility in the developer mode with the safe_erb plugin
476
754
  * fix module namespace issue causing an error accessing
477
755
  NewRelic::Instrumentation modules
@@ -561,7 +839,7 @@ v2.2.2.
561
839
 
562
840
  v2.2.1.
563
841
  + Add rails 2.1 support for Developer Mode
564
- + Changes to memory sampler: Add support for JRuby and fix Solaris support.
842
+ + Changes to memory sampler: Add support for JRuby and fix Solaris support.
565
843
  * Stop catching exceptions and start catching StandardError; other exception cleanup
566
844
  * Add protective exception catching to the stats engine
567
845
  * Improved support for thin domain sockets