sundawg_newrelic_rpm 3.5.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (409) hide show
  1. data/.gitignore +22 -0
  2. data/.project +23 -0
  3. data/.travis.yml +9 -0
  4. data/CHANGELOG +969 -0
  5. data/GUIDELINES_FOR_CONTRIBUTING.md +76 -0
  6. data/Gemfile +20 -0
  7. data/LICENSE +87 -0
  8. data/README.md +195 -0
  9. data/Rakefile +58 -0
  10. data/bin/mongrel_rpm +33 -0
  11. data/bin/newrelic +13 -0
  12. data/bin/newrelic_cmd +5 -0
  13. data/cert/cacert.pem +118 -0
  14. data/cert/oldsite.pem +28 -0
  15. data/cert/site.pem +27 -0
  16. data/config.dot +290 -0
  17. data/config/database.yml +5 -0
  18. data/gem-public_cert.pem +20 -0
  19. data/init.rb +31 -0
  20. data/install.rb +9 -0
  21. data/lib/conditional_vendored_dependency_detection.rb +3 -0
  22. data/lib/conditional_vendored_metric_parser.rb +5 -0
  23. data/lib/new_relic/agent.rb +488 -0
  24. data/lib/new_relic/agent/agent.rb +1069 -0
  25. data/lib/new_relic/agent/agent_logger.rb +173 -0
  26. data/lib/new_relic/agent/audit_logger.rb +72 -0
  27. data/lib/new_relic/agent/beacon_configuration.rb +107 -0
  28. data/lib/new_relic/agent/browser_monitoring.rb +195 -0
  29. data/lib/new_relic/agent/busy_calculator.rb +112 -0
  30. data/lib/new_relic/agent/chained_call.rb +13 -0
  31. data/lib/new_relic/agent/configuration.rb +74 -0
  32. data/lib/new_relic/agent/configuration/defaults.rb +132 -0
  33. data/lib/new_relic/agent/configuration/environment_source.rb +49 -0
  34. data/lib/new_relic/agent/configuration/manager.rb +148 -0
  35. data/lib/new_relic/agent/configuration/mask_defaults.rb +11 -0
  36. data/lib/new_relic/agent/configuration/server_source.rb +31 -0
  37. data/lib/new_relic/agent/configuration/yaml_source.rb +67 -0
  38. data/lib/new_relic/agent/cross_app_monitor.rb +239 -0
  39. data/lib/new_relic/agent/cross_app_tracing.rb +281 -0
  40. data/lib/new_relic/agent/database.rb +254 -0
  41. data/lib/new_relic/agent/error_collector.rb +266 -0
  42. data/lib/new_relic/agent/event_listener.rb +43 -0
  43. data/lib/new_relic/agent/instrumentation.rb +9 -0
  44. data/lib/new_relic/agent/instrumentation/active_merchant.rb +29 -0
  45. data/lib/new_relic/agent/instrumentation/active_record.rb +134 -0
  46. data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +68 -0
  47. data/lib/new_relic/agent/instrumentation/authlogic.rb +19 -0
  48. data/lib/new_relic/agent/instrumentation/browser_monitoring_timings.rb +51 -0
  49. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +485 -0
  50. data/lib/new_relic/agent/instrumentation/data_mapper.rb +230 -0
  51. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +52 -0
  52. data/lib/new_relic/agent/instrumentation/memcache.rb +80 -0
  53. data/lib/new_relic/agent/instrumentation/merb/controller.rb +41 -0
  54. data/lib/new_relic/agent/instrumentation/merb/errors.rb +29 -0
  55. data/lib/new_relic/agent/instrumentation/metric_frame.rb +356 -0
  56. data/lib/new_relic/agent/instrumentation/metric_frame/pop.rb +80 -0
  57. data/lib/new_relic/agent/instrumentation/net.rb +31 -0
  58. data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +23 -0
  59. data/lib/new_relic/agent/instrumentation/queue_time.rb +68 -0
  60. data/lib/new_relic/agent/instrumentation/rack.rb +98 -0
  61. data/lib/new_relic/agent/instrumentation/rails/action_controller.rb +114 -0
  62. data/lib/new_relic/agent/instrumentation/rails/action_web_service.rb +42 -0
  63. data/lib/new_relic/agent/instrumentation/rails/errors.rb +42 -0
  64. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +180 -0
  65. data/lib/new_relic/agent/instrumentation/rails3/errors.rb +41 -0
  66. data/lib/new_relic/agent/instrumentation/rails4/action_controller.rb +145 -0
  67. data/lib/new_relic/agent/instrumentation/rails4/errors.rb +45 -0
  68. data/lib/new_relic/agent/instrumentation/resque.rb +81 -0
  69. data/lib/new_relic/agent/instrumentation/sinatra.rb +107 -0
  70. data/lib/new_relic/agent/instrumentation/sunspot.rb +29 -0
  71. data/lib/new_relic/agent/instrumentation/unicorn_instrumentation.rb +22 -0
  72. data/lib/new_relic/agent/method_tracer.rb +530 -0
  73. data/lib/new_relic/agent/new_relic_service.rb +513 -0
  74. data/lib/new_relic/agent/pipe_channel_manager.rb +175 -0
  75. data/lib/new_relic/agent/pipe_service.rb +63 -0
  76. data/lib/new_relic/agent/rules_engine.rb +72 -0
  77. data/lib/new_relic/agent/sampler.rb +50 -0
  78. data/lib/new_relic/agent/samplers/cpu_sampler.rb +58 -0
  79. data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +86 -0
  80. data/lib/new_relic/agent/samplers/memory_sampler.rb +141 -0
  81. data/lib/new_relic/agent/samplers/object_sampler.rb +26 -0
  82. data/lib/new_relic/agent/shim_agent.rb +28 -0
  83. data/lib/new_relic/agent/sql_sampler.rb +251 -0
  84. data/lib/new_relic/agent/stats.rb +149 -0
  85. data/lib/new_relic/agent/stats_engine.rb +30 -0
  86. data/lib/new_relic/agent/stats_engine/gc_profiler.rb +116 -0
  87. data/lib/new_relic/agent/stats_engine/metric_stats.rb +161 -0
  88. data/lib/new_relic/agent/stats_engine/samplers.rb +97 -0
  89. data/lib/new_relic/agent/stats_engine/stats_hash.rb +58 -0
  90. data/lib/new_relic/agent/stats_engine/transactions.rb +145 -0
  91. data/lib/new_relic/agent/thread.rb +32 -0
  92. data/lib/new_relic/agent/thread_profiler.rb +319 -0
  93. data/lib/new_relic/agent/transaction_info.rb +119 -0
  94. data/lib/new_relic/agent/transaction_sample_builder.rb +126 -0
  95. data/lib/new_relic/agent/transaction_sampler.rb +459 -0
  96. data/lib/new_relic/agent/worker_loop.rb +96 -0
  97. data/lib/new_relic/coerce.rb +37 -0
  98. data/lib/new_relic/collection_helper.rb +77 -0
  99. data/lib/new_relic/command.rb +85 -0
  100. data/lib/new_relic/commands/deployments.rb +114 -0
  101. data/lib/new_relic/commands/install.rb +80 -0
  102. data/lib/new_relic/control.rb +44 -0
  103. data/lib/new_relic/control/class_methods.rb +58 -0
  104. data/lib/new_relic/control/frameworks.rb +10 -0
  105. data/lib/new_relic/control/frameworks/external.rb +16 -0
  106. data/lib/new_relic/control/frameworks/merb.rb +25 -0
  107. data/lib/new_relic/control/frameworks/rails.rb +173 -0
  108. data/lib/new_relic/control/frameworks/rails3.rb +71 -0
  109. data/lib/new_relic/control/frameworks/rails4.rb +23 -0
  110. data/lib/new_relic/control/frameworks/ruby.rb +21 -0
  111. data/lib/new_relic/control/frameworks/sinatra.rb +20 -0
  112. data/lib/new_relic/control/instance_methods.rb +145 -0
  113. data/lib/new_relic/control/instrumentation.rb +95 -0
  114. data/lib/new_relic/control/profiling.rb +25 -0
  115. data/lib/new_relic/control/server_methods.rb +80 -0
  116. data/lib/new_relic/delayed_job_injection.rb +51 -0
  117. data/lib/new_relic/helper.rb +66 -0
  118. data/lib/new_relic/language_support.rb +92 -0
  119. data/lib/new_relic/latest_changes.rb +31 -0
  120. data/lib/new_relic/local_environment.rb +385 -0
  121. data/lib/new_relic/merbtasks.rb +6 -0
  122. data/lib/new_relic/metric_data.rb +70 -0
  123. data/lib/new_relic/metric_spec.rb +80 -0
  124. data/lib/new_relic/metrics.rb +9 -0
  125. data/lib/new_relic/noticed_error.rb +59 -0
  126. data/lib/new_relic/okjson.rb +599 -0
  127. data/lib/new_relic/rack.rb +4 -0
  128. data/lib/new_relic/rack/agent_hooks.rb +20 -0
  129. data/lib/new_relic/rack/browser_monitoring.rb +85 -0
  130. data/lib/new_relic/rack/developer_mode.rb +271 -0
  131. data/lib/new_relic/rack/error_collector.rb +66 -0
  132. data/lib/new_relic/recipes.rb +99 -0
  133. data/lib/new_relic/timer_lib.rb +27 -0
  134. data/lib/new_relic/transaction_analysis.rb +77 -0
  135. data/lib/new_relic/transaction_analysis/segment_summary.rb +49 -0
  136. data/lib/new_relic/transaction_sample.rb +272 -0
  137. data/lib/new_relic/transaction_sample/composite_segment.rb +27 -0
  138. data/lib/new_relic/transaction_sample/fake_segment.rb +9 -0
  139. data/lib/new_relic/transaction_sample/segment.rb +205 -0
  140. data/lib/new_relic/transaction_sample/summary_segment.rb +21 -0
  141. data/lib/new_relic/url_rule.rb +14 -0
  142. data/lib/new_relic/version.rb +66 -0
  143. data/lib/newrelic_rpm.rb +49 -0
  144. data/lib/tasks/all.rb +4 -0
  145. data/lib/tasks/install.rake +7 -0
  146. data/lib/tasks/tests.rake +17 -0
  147. data/newrelic.yml +227 -0
  148. data/newrelic_rpm.gemspec +50 -0
  149. data/recipes/newrelic.rb +6 -0
  150. data/test/active_record_fixtures.rb +77 -0
  151. data/test/config/newrelic.yml +49 -0
  152. data/test/config/test_control.rb +48 -0
  153. data/test/fixtures/proc_cpuinfo.txt +575 -0
  154. data/test/intentional_fail.rb +10 -0
  155. data/test/multiverse/.gitignore +11 -0
  156. data/test/multiverse/README.md +85 -0
  157. data/test/multiverse/lib/multiverse/color.rb +13 -0
  158. data/test/multiverse/lib/multiverse/envfile.rb +66 -0
  159. data/test/multiverse/lib/multiverse/environment.rb +16 -0
  160. data/test/multiverse/lib/multiverse/output_collector.rb +29 -0
  161. data/test/multiverse/lib/multiverse/runner.rb +44 -0
  162. data/test/multiverse/lib/multiverse/suite.rb +164 -0
  163. data/test/multiverse/script/run_one +3 -0
  164. data/test/multiverse/script/runner +9 -0
  165. data/test/multiverse/suites/active_record/Envfile +13 -0
  166. data/test/multiverse/suites/active_record/ar_method_aliasing.rb +94 -0
  167. data/test/multiverse/suites/active_record/config/newrelic.yml +22 -0
  168. data/test/multiverse/suites/active_record/encoding_test.rb +26 -0
  169. data/test/multiverse/suites/agent_only/Envfile +9 -0
  170. data/test/multiverse/suites/agent_only/audit_log_test.rb +97 -0
  171. data/test/multiverse/suites/agent_only/config/newrelic.yml +23 -0
  172. data/test/multiverse/suites/agent_only/cross_application_tracing_test.rb +56 -0
  173. data/test/multiverse/suites/agent_only/http_response_code_test.rb +53 -0
  174. data/test/multiverse/suites/agent_only/key_transactions_test.rb +66 -0
  175. data/test/multiverse/suites/agent_only/logging_test.rb +163 -0
  176. data/test/multiverse/suites/agent_only/marshaling_test.rb +96 -0
  177. data/test/multiverse/suites/agent_only/method_visibility_test.rb +98 -0
  178. data/test/multiverse/suites/agent_only/no_dns_resolv.rb +17 -0
  179. data/test/multiverse/suites/agent_only/pipe_manager_test.rb +33 -0
  180. data/test/multiverse/suites/agent_only/rename_rule_test.rb +57 -0
  181. data/test/multiverse/suites/agent_only/rum_instrumentation_test.rb +81 -0
  182. data/test/multiverse/suites/agent_only/service_timeout_test.rb +32 -0
  183. data/test/multiverse/suites/agent_only/ssl_test.rb +22 -0
  184. data/test/multiverse/suites/agent_only/start_up_test.rb +21 -0
  185. data/test/multiverse/suites/agent_only/test_trace_method_with_punctuation.rb +30 -0
  186. data/test/multiverse/suites/agent_only/test_trace_transaction_with_punctuation.rb +32 -0
  187. data/test/multiverse/suites/agent_only/testing_app.rb +17 -0
  188. data/test/multiverse/suites/agent_only/thread_profiling_test.rb +92 -0
  189. data/test/multiverse/suites/config_file_loading/Envfile +7 -0
  190. data/test/multiverse/suites/config_file_loading/config_file_loading_test.rb +106 -0
  191. data/test/multiverse/suites/datamapper/Envfile +8 -0
  192. data/test/multiverse/suites/datamapper/config/newrelic.yml +22 -0
  193. data/test/multiverse/suites/datamapper/encoding_test.rb +36 -0
  194. data/test/multiverse/suites/rails/Envfile +18 -0
  195. data/test/multiverse/suites/rails/app.rb +49 -0
  196. data/test/multiverse/suites/rails/app/views/foos/_foo.html.haml +1 -0
  197. data/test/multiverse/suites/rails/app/views/views/_a_partial.html.erb +1 -0
  198. data/test/multiverse/suites/rails/app/views/views/_mid_partial.html.erb +1 -0
  199. data/test/multiverse/suites/rails/app/views/views/_top_partial.html.erb +3 -0
  200. data/test/multiverse/suites/rails/app/views/views/deep_partial.html.erb +3 -0
  201. data/test/multiverse/suites/rails/app/views/views/haml_view.html.haml +6 -0
  202. data/test/multiverse/suites/rails/app/views/views/index.html.erb +4 -0
  203. data/test/multiverse/suites/rails/config/newrelic.yml +32 -0
  204. data/test/multiverse/suites/rails/error_tracing_test.rb +211 -0
  205. data/test/multiverse/suites/rails/gc_instrumentation_test.rb +79 -0
  206. data/test/multiverse/suites/rails/queue_time_test.rb +55 -0
  207. data/test/multiverse/suites/rails/view_instrumentation_test.rb +205 -0
  208. data/test/multiverse/suites/resque/Envfile +24 -0
  209. data/test/multiverse/suites/resque/Rakefile +8 -0
  210. data/test/multiverse/suites/resque/config/newrelic.yml +22 -0
  211. data/test/multiverse/suites/resque/instrumentation_test.rb +151 -0
  212. data/test/multiverse/suites/resque/resque_setup.rb +15 -0
  213. data/test/multiverse/suites/sinatra/Envfile +15 -0
  214. data/test/multiverse/suites/sinatra/config/newrelic.yml +24 -0
  215. data/test/multiverse/suites/sinatra/sinatra_error_tracing_test.rb +38 -0
  216. data/test/multiverse/suites/sinatra/sinatra_metric_explosion_test.rb +77 -0
  217. data/test/multiverse/suites/sinatra/sinatra_routes_test.rb +46 -0
  218. data/test/multiverse/suites/sinatra/sinatra_test.rb +139 -0
  219. data/test/multiverse/test/multiverse_test.rb +55 -0
  220. data/test/multiverse/test/suite_examples/one/a/Envfile +3 -0
  221. data/test/multiverse/test/suite_examples/one/a/a_test.rb +11 -0
  222. data/test/multiverse/test/suite_examples/one/a/config/newrelic.yml +24 -0
  223. data/test/multiverse/test/suite_examples/one/b/Envfile +3 -0
  224. data/test/multiverse/test/suite_examples/one/b/b_test.rb +11 -0
  225. data/test/multiverse/test/suite_examples/one/b/config/newrelic.yml +24 -0
  226. data/test/multiverse/test/suite_examples/three/a/Envfile +2 -0
  227. data/test/multiverse/test/suite_examples/three/a/fail_test.rb +6 -0
  228. data/test/multiverse/test/suite_examples/three/b/Envfile +2 -0
  229. data/test/multiverse/test/suite_examples/three/b/win_test.rb +6 -0
  230. data/test/multiverse/test/suite_examples/two/a/Envfile +1 -0
  231. data/test/multiverse/test/suite_examples/two/a/fail_test.rb +6 -0
  232. data/test/new_relic/agent/agent/connect_test.rb +295 -0
  233. data/test/new_relic/agent/agent/start_test.rb +205 -0
  234. data/test/new_relic/agent/agent/start_worker_thread_test.rb +88 -0
  235. data/test/new_relic/agent/agent_logger_test.rb +153 -0
  236. data/test/new_relic/agent/agent_test.rb +301 -0
  237. data/test/new_relic/agent/agent_test_controller.rb +77 -0
  238. data/test/new_relic/agent/agent_test_controller_test.rb +381 -0
  239. data/test/new_relic/agent/apdex_from_server_test.rb +9 -0
  240. data/test/new_relic/agent/audit_logger_test.rb +105 -0
  241. data/test/new_relic/agent/beacon_configuration_test.rb +107 -0
  242. data/test/new_relic/agent/browser_monitoring_test.rb +395 -0
  243. data/test/new_relic/agent/busy_calculator_test.rb +96 -0
  244. data/test/new_relic/agent/configuration/environment_source_test.rb +79 -0
  245. data/test/new_relic/agent/configuration/manager_test.rb +232 -0
  246. data/test/new_relic/agent/configuration/server_source_test.rb +50 -0
  247. data/test/new_relic/agent/configuration/yaml_source_test.rb +85 -0
  248. data/test/new_relic/agent/cross_app_monitor_test.rb +237 -0
  249. data/test/new_relic/agent/database_test.rb +194 -0
  250. data/test/new_relic/agent/error_collector/notice_error_test.rb +268 -0
  251. data/test/new_relic/agent/error_collector_test.rb +246 -0
  252. data/test/new_relic/agent/event_listener_test.rb +67 -0
  253. data/test/new_relic/agent/instrumentation/active_record_instrumentation_test.rb +606 -0
  254. data/test/new_relic/agent/instrumentation/browser_monitoring_timings_test.rb +66 -0
  255. data/test/new_relic/agent/instrumentation/controller_instrumentation_test.rb +107 -0
  256. data/test/new_relic/agent/instrumentation/instrumentation_test.rb +11 -0
  257. data/test/new_relic/agent/instrumentation/metric_frame/pop_test.rb +171 -0
  258. data/test/new_relic/agent/instrumentation/metric_frame_test.rb +151 -0
  259. data/test/new_relic/agent/instrumentation/net_instrumentation_test.rb +461 -0
  260. data/test/new_relic/agent/instrumentation/queue_time_test.rb +97 -0
  261. data/test/new_relic/agent/instrumentation/rack_test.rb +35 -0
  262. data/test/new_relic/agent/instrumentation/sinatra_test.rb +25 -0
  263. data/test/new_relic/agent/instrumentation/task_instrumentation_test.rb +182 -0
  264. data/test/new_relic/agent/memcache_instrumentation_test.rb +143 -0
  265. data/test/new_relic/agent/method_tracer/class_methods/add_method_tracer_test.rb +158 -0
  266. data/test/new_relic/agent/method_tracer/instance_methods/trace_execution_scoped_test.rb +222 -0
  267. data/test/new_relic/agent/method_tracer_test.rb +389 -0
  268. data/test/new_relic/agent/mock_scope_listener.rb +26 -0
  269. data/test/new_relic/agent/new_relic_service_test.rb +571 -0
  270. data/test/new_relic/agent/pipe_channel_manager_test.rb +131 -0
  271. data/test/new_relic/agent/pipe_service_test.rb +133 -0
  272. data/test/new_relic/agent/rpm_agent_test.rb +115 -0
  273. data/test/new_relic/agent/rules_engine_test.rb +82 -0
  274. data/test/new_relic/agent/sampler_test.rb +19 -0
  275. data/test/new_relic/agent/shim_agent_test.rb +16 -0
  276. data/test/new_relic/agent/sql_sampler_test.rb +244 -0
  277. data/test/new_relic/agent/stats_engine/gc_profiler_test.rb +85 -0
  278. data/test/new_relic/agent/stats_engine/metric_stats_test.rb +180 -0
  279. data/test/new_relic/agent/stats_engine/samplers_test.rb +99 -0
  280. data/test/new_relic/agent/stats_engine_test.rb +184 -0
  281. data/test/new_relic/agent/stats_hash_test.rb +93 -0
  282. data/test/new_relic/agent/stats_test.rb +197 -0
  283. data/test/new_relic/agent/thread_profiler_test.rb +582 -0
  284. data/test/new_relic/agent/thread_test.rb +89 -0
  285. data/test/new_relic/agent/threaded_test.rb +65 -0
  286. data/test/new_relic/agent/transaction_info_test.rb +106 -0
  287. data/test/new_relic/agent/transaction_sample_builder_test.rb +227 -0
  288. data/test/new_relic/agent/transaction_sampler_test.rb +968 -0
  289. data/test/new_relic/agent/worker_loop_test.rb +84 -0
  290. data/test/new_relic/agent_test.rb +296 -0
  291. data/test/new_relic/coerce_test.rb +65 -0
  292. data/test/new_relic/collection_helper_test.rb +148 -0
  293. data/test/new_relic/command/deployments_test.rb +84 -0
  294. data/test/new_relic/control/class_methods_test.rb +44 -0
  295. data/test/new_relic/control/frameworks/rails_test.rb +26 -0
  296. data/test/new_relic/control_test.rb +194 -0
  297. data/test/new_relic/delayed_job_injection_test.rb +21 -0
  298. data/test/new_relic/dispatcher_test.rb +54 -0
  299. data/test/new_relic/fake_collector.rb +389 -0
  300. data/test/new_relic/framework_test.rb +53 -0
  301. data/test/new_relic/helper_test.rb +24 -0
  302. data/test/new_relic/load_test.rb +13 -0
  303. data/test/new_relic/local_environment_test.rb +85 -0
  304. data/test/new_relic/metric_data_test.rb +183 -0
  305. data/test/new_relic/metric_parser/metric_parser_test.rb +11 -0
  306. data/test/new_relic/metric_spec_test.rb +95 -0
  307. data/test/new_relic/noticed_error_test.rb +32 -0
  308. data/test/new_relic/rack/agent_hooks_test.rb +30 -0
  309. data/test/new_relic/rack/all_test.rb +11 -0
  310. data/test/new_relic/rack/browser_monitoring_test.rb +152 -0
  311. data/test/new_relic/rack/developer_mode_helper_test.rb +141 -0
  312. data/test/new_relic/rack/developer_mode_test.rb +80 -0
  313. data/test/new_relic/rack/error_collector_test.rb +90 -0
  314. data/test/new_relic/transaction_analysis/segment_summary_test.rb +91 -0
  315. data/test/new_relic/transaction_analysis_test.rb +121 -0
  316. data/test/new_relic/transaction_sample/composite_segment_test.rb +35 -0
  317. data/test/new_relic/transaction_sample/fake_segment_test.rb +17 -0
  318. data/test/new_relic/transaction_sample/segment_test.rb +415 -0
  319. data/test/new_relic/transaction_sample/summary_segment_test.rb +31 -0
  320. data/test/new_relic/transaction_sample_subtest_test.rb +56 -0
  321. data/test/new_relic/transaction_sample_test.rb +250 -0
  322. data/test/new_relic/version_number_test.rb +97 -0
  323. data/test/script/build_test_gem.sh +57 -0
  324. data/test/script/ci.sh +168 -0
  325. data/test/script/ci_agent-tests_runner.sh +82 -0
  326. data/test/script/ci_bench.sh +52 -0
  327. data/test/script/ci_multiverse_runner.sh +63 -0
  328. data/test/test_contexts.rb +30 -0
  329. data/test/test_helper.rb +240 -0
  330. data/ui/helpers/developer_mode_helper.rb +367 -0
  331. data/ui/helpers/google_pie_chart.rb +49 -0
  332. data/ui/views/layouts/newrelic_default.rhtml +48 -0
  333. data/ui/views/newrelic/_explain_plans.rhtml +27 -0
  334. data/ui/views/newrelic/_sample.rhtml +20 -0
  335. data/ui/views/newrelic/_segment.rhtml +28 -0
  336. data/ui/views/newrelic/_segment_limit_message.rhtml +1 -0
  337. data/ui/views/newrelic/_segment_row.rhtml +12 -0
  338. data/ui/views/newrelic/_show_sample_detail.rhtml +24 -0
  339. data/ui/views/newrelic/_show_sample_sql.rhtml +24 -0
  340. data/ui/views/newrelic/_show_sample_summary.rhtml +3 -0
  341. data/ui/views/newrelic/_sql_row.rhtml +16 -0
  342. data/ui/views/newrelic/_stack_trace.rhtml +15 -0
  343. data/ui/views/newrelic/_table.rhtml +12 -0
  344. data/ui/views/newrelic/explain_sql.rhtml +43 -0
  345. data/ui/views/newrelic/file/images/arrow-close.png +0 -0
  346. data/ui/views/newrelic/file/images/arrow-open.png +0 -0
  347. data/ui/views/newrelic/file/images/blue_bar.gif +0 -0
  348. data/ui/views/newrelic/file/images/file_icon.png +0 -0
  349. data/ui/views/newrelic/file/images/gray_bar.gif +0 -0
  350. data/ui/views/newrelic/file/images/new-relic-rpm-desktop.gif +0 -0
  351. data/ui/views/newrelic/file/images/new_relic_rpm_desktop.gif +0 -0
  352. data/ui/views/newrelic/file/images/textmate.png +0 -0
  353. data/ui/views/newrelic/file/javascript/jquery-1.4.2.js +6240 -0
  354. data/ui/views/newrelic/file/javascript/transaction_sample.js +120 -0
  355. data/ui/views/newrelic/file/stylesheets/style.css +490 -0
  356. data/ui/views/newrelic/index.rhtml +71 -0
  357. data/ui/views/newrelic/sample_not_found.rhtml +2 -0
  358. data/ui/views/newrelic/show_sample.rhtml +80 -0
  359. data/ui/views/newrelic/show_source.rhtml +3 -0
  360. data/ui/views/newrelic/threads.rhtml +45 -0
  361. data/vendor/gems/dependency_detection-0.0.1.build/LICENSE +5 -0
  362. data/vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection.rb +67 -0
  363. data/vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection/version.rb +3 -0
  364. data/vendor/gems/metric_parser-0.1.0.pre1/.specification +116 -0
  365. data/vendor/gems/metric_parser-0.1.0.pre1/lib/metric_parser.rb +1 -0
  366. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser.rb +64 -0
  367. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/action_mailer.rb +14 -0
  368. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/active_merchant.rb +31 -0
  369. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/active_record.rb +33 -0
  370. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/apdex.rb +89 -0
  371. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/background_transaction.rb +7 -0
  372. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/client.rb +46 -0
  373. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller.rb +67 -0
  374. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller_cpu.rb +43 -0
  375. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller_ext.rb +17 -0
  376. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/database.rb +48 -0
  377. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/database_pool.rb +24 -0
  378. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/dot_net.rb +28 -0
  379. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/dot_net_parser.rb +17 -0
  380. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/errors.rb +11 -0
  381. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/external.rb +55 -0
  382. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/frontend.rb +40 -0
  383. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/gc.rb +20 -0
  384. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/hibernate_session.rb +7 -0
  385. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/java.rb +31 -0
  386. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/java_parser.rb +17 -0
  387. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/jsp.rb +34 -0
  388. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/jsp_tag.rb +7 -0
  389. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/mem_cache.rb +55 -0
  390. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/metric_parser.rb +135 -0
  391. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/orm.rb +27 -0
  392. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/other_transaction.rb +40 -0
  393. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet.rb +7 -0
  394. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_context_listener.rb +7 -0
  395. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_filter.rb +7 -0
  396. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_init.rb +7 -0
  397. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/solr.rb +27 -0
  398. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/solr_request_handler.rb +15 -0
  399. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring.rb +54 -0
  400. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring_controller.rb +6 -0
  401. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring_view.rb +6 -0
  402. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/struts_action.rb +20 -0
  403. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/struts_result.rb +20 -0
  404. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/version.rb +5 -0
  405. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/view.rb +70 -0
  406. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_frontend.rb +18 -0
  407. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_service.rb +14 -0
  408. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_transaction.rb +133 -0
  409. metadata +494 -0
data/.gitignore ADDED
@@ -0,0 +1,22 @@
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
21
+ lib/new_relic/build.rb
22
+ .pryrc
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 ADDED
@@ -0,0 +1,969 @@
1
+
2
+ # New Relic Ruby Agent Release Notes #
3
+
4
+ ## v3.5.8 ##
5
+
6
+ * Key Transactions
7
+
8
+ The Ruby agent now supports Key Transactions! Check out more details on the
9
+ feature at https://newrelic.com/docs/site/key-transactions
10
+
11
+ * Ruby 2.0
12
+
13
+ The Ruby agent is compatible with Ruby 2.0.0 which was just released.
14
+
15
+ * Improved Sinatra instrumentation
16
+
17
+ Several cases around the use of conditions and pass in Sinatra are now
18
+ better supported by the Ruby agent. Thanks Konstantin for the help!
19
+
20
+ * Outbound HTTP headers
21
+
22
+ Adds a 'X-NewRelic-ID' header to outbound Net::HTTP requests. This change
23
+ helps improve the correlation of performance between services in a service-
24
+ oriented architecture for a forthcoming feature. In the meantime, to disable
25
+ the header, set this in your newrelic.yml:
26
+
27
+ cross_application_tracer:
28
+ enabled: false
29
+
30
+ * Automatically detect Resque dispatcher
31
+
32
+ The agent does better auto-detection for the Resque worker process.
33
+ This should reduce the need to set NEW_RELIC_DISPATCHER=resque directly.
34
+
35
+ ## v3.5.7 ##
36
+
37
+ * Resolved some issues with tracking of frontend queue time, particularly
38
+ when the agent is running on an app hosted on Heroku. The agent will now
39
+ more reliably parse the headers described in
40
+ https://newrelic.com/docs/features/tracking-front-end-time and will
41
+ automatically detect whether the times provided are in seconds,
42
+ milliseconds or microseconds.
43
+
44
+ ## v3.5.6 ##
45
+
46
+ * Use HTTPS by default
47
+
48
+ The agent now defaults to using SSL when it communicates with New Relic's
49
+ servers. By default is already configured New Relic does not transmit any
50
+ sensitive information (e.g. SQL parameters are masked), but SSL adds an
51
+ additional layer of security. Upgrading customers may need to remove the
52
+ "ssl: false" directive from their newrelic.yml to enable ssl. Customers on
53
+ Jruby may need to install the jruby-openssl gem to take advantage of this
54
+ feature.
55
+
56
+ * Fix two Resque-related issues
57
+
58
+ Fixes a possible hang on exit of an instrumented Resque master process
59
+ (https://github.com/defunkt/resque/issues/578), as well as a file descriptor
60
+ leak that could occur during startup of the Resque master process.
61
+
62
+ * Fix for error graph over 100%
63
+
64
+ Some errors were double counted toward the overall error total. This
65
+ resulted in graphs with error percentages over 100%. This duplication did
66
+ not impact the specific error traces captured, only the total metric.
67
+
68
+ * Notice gracefully handled errors in Sinatra
69
+
70
+ When show_exceptions was set to false in Sinatra, errors weren't caught
71
+ by New Relic's error collector. Now handled errors also have the chance
72
+ to get reported back.
73
+
74
+ * Ruby 2.0 compatibility fixes
75
+
76
+ Ruby 2.0 no longer finds protected methods by default, but will with a flag.
77
+ http://tenderlovemaking.com/2012/09/07/protected-methods-and-ruby-2-0.html
78
+
79
+ Thanks Ravil Bayramgalin and Charlie Somerville for the fixes.
80
+
81
+ * Auto-detect Trinidad as dispatcher
82
+
83
+ Code already existing for detecting Trinidad as a dispatcher, but was only
84
+ accessible via an ENV variable. This now auto-detects on startup. Thanks
85
+ Robert Rasmussen for catching that.
86
+
87
+ * Coercion of types in collector communication
88
+
89
+ Certain metrics can be recorded with a Ruby Rational type, which JSON
90
+ serializes as a string rather than a floating point value. We now treat
91
+ coerce each outgoing value, and log issues before sending the data.
92
+
93
+ * Developer mode fix for chart error
94
+
95
+ Added require to fix a NameError in developer mode for summary page. Thanks
96
+ to Ryan B. Harvey.
97
+
98
+ * Don't touch deprecated RAILS_ROOT if on Rails 3
99
+
100
+ Under some odd startup conditions, we would look for the RAILS_ROOT constant
101
+ after failing to find the ::Rails.root in a Rails 3 app, causing deprecation
102
+ warnings. Thanks for Adrian Irving-Beer for the fix.
103
+
104
+ ## v3.5.5 ##
105
+
106
+ * Add thread profiling support
107
+
108
+ Thread profiling performs statistical sampling of backtraces of all threads
109
+ within your Ruby processes. This feature requires MRI >= 1.9.2, and is
110
+ controlled via the New Relic web UI. JRuby support (in 1.9.x compat mode) is
111
+ considered experimental, due to issues with JRuby's Thread#backtrace.
112
+
113
+ * Add audit logging capability
114
+
115
+ The agent can now log all of the data it sends to the New Relic servers to
116
+ a special log file for human inspection. This feature is off by default, and
117
+ can be enabled by setting the audit_log.enabled configuration key to true.
118
+ You may also control the location of the audit log with the audit_log.path key.
119
+
120
+ * Use config system for dispatcher, framework, and config file detection
121
+
122
+ Several aspects of the agent's configuration were not being handled by the
123
+ configuration system. Detection/configuration of the dispatcher (e.g. passenger,
124
+ unicorn, resque), framework (e.g. rails3, sinatra), and newrelic.yml
125
+ location are now handled via the Agent environment, manual, and default
126
+ configuration sources.
127
+
128
+ * Updates to logging across the agent
129
+
130
+ We've carefully reviewed the logging messages that the agent outputs, adding
131
+ details in some cases, and removing unnecessary clutter. We've also altered
132
+ the startup sequence to ensure that we don't spam STDOUT with messages
133
+ during initialization.
134
+
135
+ * Fix passing environment to manual_start()
136
+
137
+ Thanks to Justin Hannus. The :env key, when passed to Agent.manual_start,
138
+ can again be used to specify which section of newrelic.yml is loaded.
139
+
140
+ * Rails 4 support
141
+
142
+ This release includes preliminary support for Rails 4 as of 4.0.0.beta.
143
+ Rails 4 is still in development, but the agent should work as expected for
144
+ people who are experimenting with the beta.
145
+
146
+ ## v3.5.4 ##
147
+
148
+ * Add queue time support for sinatra apps
149
+
150
+ Sinatra applications can now take advantage of front end queue time
151
+ reporting. Thanks to Winfield Peterson for this contribution.
152
+
153
+ * Simplify queue time configuration for nginx 1.2.6+
154
+
155
+ Beginning in version 1.2.6, recently released as a development version, the
156
+ $msec variable can be used to set an http header. This change allows front
157
+ end queue time to be tracked in New Relic simply by adding this line to the
158
+ nginx config:
159
+
160
+ proxy_set_header X-Queue-Start "t=${msec}000"
161
+
162
+ It will no longer be necessary to compile a patched version of nginx or
163
+ compile in the perl or lua module to enable this functionality.
164
+
165
+ Thanks to Lawrence Pit for the contribution.
166
+
167
+ * Report back build number and stage along with version info
168
+
169
+ In the 3.5.3 series the agent would fail to report its full version number
170
+ to NewRelic's environment report. For example it would report its version
171
+ as 3.5.3 instead of 3.5.3.25 or 3.5.3.25.beta. The agent will now report
172
+ its complete version number as defined in newrelic_rpm.gemspec.
173
+
174
+ * The host and the port that the agent reports to can now be set from environment vars
175
+
176
+ The host can be set with NEW_RELIC_HOST and the port with NEW_RELIC_PORT. These setting
177
+ will overrride any other settings in your newrelic.yml.
178
+
179
+ * Fix RUM reporting to multiple applications
180
+
181
+ When the agent is configured to report to multiple "roll up" applications
182
+ RUM did not work correctly.
183
+
184
+ ## v3.5.3 ##
185
+
186
+ * Update the collector protocol to use JSON and Ruby primitives
187
+
188
+ The communication between the agent and the NewRelic will not longer be
189
+ marshalled Ruby objects, but rather JSON in the case of Ruby 1.9 and marshalled
190
+ Ruby primitives in the case of 1.8. This results in greater harvest efficiency
191
+ as well as feature parity with other New Relic agents.
192
+
193
+ * Fix incorrect application of conditions in sinatra instrumentation
194
+
195
+ The agent's sinatra instrumentation was causing sinatra's condidtions to
196
+ be incorrectly applied in some obscure cases. The bug was triggered
197
+ when a condition was present on a lower priority route that would match
198
+ the current request, except for the precense of a higher priority route.
199
+
200
+ ## v3.5.2 ##
201
+
202
+ * Simplified process of running agent test suite and documented code
203
+ contribution process in GUIDELINES_FOR_CONTRIBUTING.
204
+
205
+ ## v3.5.1 ##
206
+
207
+ * Enabling Memory Profiling on Lion and Mountain Lion
208
+
209
+ The agent's list of supported platforms for memory profiling wasn't correctly checking
210
+ for more recent versions of OS X.
211
+
212
+ * Fixed an arity issue encountered when calling newrelic_notice_error from Rails applications.
213
+
214
+ * End user queue time was not being properly reported, works properly now.
215
+
216
+ * Server-side configuration for ignoring errors was not being heeded by agent.
217
+
218
+ * Better handling of a thread safety issue.
219
+
220
+ Some issues may remain, which we are working to address, but they should be gracefully handled
221
+ now, rather than crashing the running app.
222
+
223
+ * Use "java_import" rather than "include_class" when require Java Jars into a JRuby app.
224
+
225
+ Thanks to Jan Habermann for the pull request
226
+
227
+ * Replaced alias_method mechanism with super call in DataMapper instrumentation.
228
+
229
+ Thanks to Michael Rykov for the pull request
230
+
231
+ * Fixed the Rubinius GC profiler.
232
+
233
+ Thanks to Dirkjan Bussink
234
+
235
+ * Use ActiveSupport.on_load to load controller instrumentation Rails 3.
236
+
237
+ Thanks to Jonathan del Strother
238
+
239
+ * Reduce the number of thread local reference in a particular high traffic method
240
+
241
+ Thanks to Jeremy Kemper
242
+
243
+ ## v3.5.0.1 ##
244
+
245
+ * (Fix) Due to a serious resource leak we have ended support for versions of Phusion Passenger
246
+ older than 2.1.1. Users of older versions are encouraged upgrade to a more recent version.
247
+
248
+ ## v3.5.0 ##
249
+
250
+ * (Fix) RUM Stops Working After 3.4.2.1 Agent Upgrade
251
+
252
+ v3.4.2.1 introduced a bug that caused the browser monitor auto instrumentation
253
+ (for RUM) default to be false. The correct value of true is now used
254
+
255
+ * When the Ruby Agent detects Unicorn as the dispatcher it creates an INFO level log message
256
+ with additional information
257
+
258
+ To help customers using Unicorn, if the agent detects it (Unicorn) is being used as the
259
+ dispatcher an INFO level log message it created that includes a link to New Relic
260
+ online doc that has additional steps that may be required to get performance data reporting.
261
+
262
+ * (Fix) In version 3.4.2 of the Ruby Agent the server side value for Apdex T was disgregarded
263
+
264
+ With version 3.4.2 of the agent, the value set in the newrelic.yml file took precedence over the
265
+ value set in the New Relic UI. As of version 3.5.0 only the value for Apdex T set in the
266
+ New Relic UI will be used. Any setting in the yaml file will be ignored.
267
+
268
+ * Improved Error Detection/Reporting capabilities for Rails 3 apps
269
+
270
+ Some errors are missed by the agent's exception reporting handlers because they are
271
+ generated in the rails stack, outside of the instrumented controller action. A Rack
272
+ middleware is now included that can detect these errors as they bubble out of the middleware stack.
273
+ Note that this does not include Routing Errors.
274
+
275
+ * The Ruby Agent now logs certain information it receives from the New Relic servers
276
+
277
+ After connecting to the New Relic servers the agent logs the New Relic URL
278
+ of the app it is reporting to.
279
+
280
+ * GC profiling overhead for Ruby 1.9 reduced
281
+
282
+ For Ruby 1.9 the amount of time spent in GC profiling has been reduced.
283
+
284
+ * Know issue with Ruby 1.8.7-p334, sqlite3-ruby 1.3.0 or older, and resque 1.23.0
285
+
286
+ The Ruby Agent will not work in conjunction with Ruby 1.8.7-p334, sqlite3-ruby 1.3.3
287
+ or earlier, and resque 1.23.0. Your app will likely stop functioning. This is a known problem
288
+ with Ruby versions up to 1.8.7-p334. Upgrading to the last release of Ruby 1.8.7
289
+ is recommended. This issue has been present in every version of the agent we've tested
290
+ going back for a year.
291
+
292
+
293
+ ### previous versions ###
294
+ ## v3.4.2.1 ##
295
+
296
+ * Fix issue when app_name is nil
297
+
298
+ If the app_name setting ends up being nil an exception got generated and the application
299
+ wouldn't run. This would notably occur when running a Heroku app locally without the
300
+ NEW_RELIC_APP_NAME environment variable set. A nil app_name is now detected and an
301
+ error logged specifying remediation.
302
+
303
+ ## v3.4.2 ##
304
+
305
+ * The RUM NRAGENT tk value gets more robustly sanitized to prevent potential XSS vulnerabilities
306
+
307
+ The code that scrubes the token used in Real User Monitoring has been enhanced to be
308
+ more robust.
309
+
310
+ * Support for Apdex T in server side configuration
311
+
312
+ For those using server side configuration the Ruby Agent now supports setting
313
+ the Apdex T value via the New Relic UI.
314
+
315
+ * Refactoring of agent config code
316
+
317
+ The code that reads the configuration information and confirgures the agent
318
+ got substantially reorganized, consolidated, simplified, and made more robust.
319
+
320
+ ## v3.4.1 ##
321
+ #### Bug Fixes ####
322
+ * Fix edge case in RUM auto instrumentation where X-UA-Compatible meta tag is
323
+ present but </head> tag is missing.
324
+
325
+ There is a somewhat obscure edge case where RUM auto instrumentation will
326
+ crash a request. The issue seems to be triggered when the X-UA-Compatible
327
+ meta tag is present and the </head> tag is missing.
328
+
329
+ * Fixed reference to @service.request_timeout to @request_timeout in
330
+ new_relic_service.rb. (Thanks to Matthew Savage)
331
+
332
+ When a timeout occurred during connection to the collector an "undefined
333
+ method `request_timeout' for nil:NilClass'" would get raised.
334
+
335
+ * preserve visibility on traced methods.
336
+
337
+ Aliased methods now have the same visibility as the original traced method.
338
+ A couple of the esoteric methods created in the process weren't getting the
339
+ visibility set properly.
340
+
341
+ * Agent service does not connect to directed shard collector after connecting
342
+ to proxy
343
+
344
+ After connecting to collector proxy name of real collector was updated, but
345
+ ip address was not being updated causing connections to go to the proxy.
346
+ Agent now looks up ip address for real collector.
347
+
348
+ * corrupt marshal data from pipe children crashing agent
349
+
350
+ If the agent receieved corrupted data from the Reqsue worker child agent
351
+ it could crash the agent itself. fixed.
352
+
353
+ * should reset RubyBench GC counter between polls
354
+
355
+ On Ruby REE, the GC profiler does not reset the counter between polls. This
356
+ is only a problem if GC could happen *between* transactions, as in, for
357
+ example, out-of-band GC in Unicorn. fixed.
358
+
359
+ v3.4.0.1
360
+ * Prevent the agent from resolving the collector address when disabled.
361
+ * Fix for error collector configuration that was introduced during beta.
362
+ * Preserve method visibility when methods are traced with #add_method_tracer and #add_transaction_tracer
363
+
364
+ v3.4.0
365
+ * 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.
366
+ * Moved Resque instrumentation from rpm_contrib to main agent. Resque users should discontinue use of rpm_contrib or upgrade to 2.1.11.
367
+ * Resolve issue with configuring the Error Collector when using server-side configuration.
368
+
369
+ v3.3.5
370
+ * [FIX] Allow tracing of methods ending in ! and ?
371
+ * [PERF] Give up after scanning first 50k of the response in RUM
372
+ auto-instrumentation.
373
+ * [FIX] Don't raise when extracting metrics from SQL queries with non UTF-8 bytes.
374
+ * Replaced "Custom/DJ Locked Jobs" metric with new metrics for
375
+ monitoring DelayedJob: queue_length, failed_jobs, and locked_jobs, all under
376
+ Workers/DelayedJob. queue_length is also broken out by queue name or priority
377
+ depending on the version of DelayedJob deployed.
378
+
379
+ v3.3.4.1
380
+ * Bug fix when rendering empty collection in Rails 3.1+
381
+
382
+ v3.3.4
383
+ * Rails 3 view instrumentation
384
+
385
+ v3.3.3
386
+ * Improved Sinatra instrumentation
387
+ * Limit the number of nodes collected in long running transactions to prevent leaking memory
388
+
389
+ v3.3.2.1
390
+ * [SECURITY] fix for cookie handling by End User Monitoring instrumentation
391
+
392
+ v3.3.2
393
+ * deployments recipe change: truncate git SHAs to 7 characters
394
+ * Fixes for obfuscation of PostgreSQL and SQLite queries
395
+ * Fix for lost database connections when using a forking framework
396
+ * Workaround for RedHat kernel bug which prevented blocking reads of /proc fs
397
+ * Do not trap signals when handling exceptions
398
+
399
+ v3.3.1
400
+ * improved Ruby 1.8.6 support
401
+ * fix for issues with RAILS_ROOT deprecation warnings
402
+ * fixed incorrect 1.9 GC time reporting
403
+ * obfusction for Slow SQL queries respects transaction trace config
404
+ * fix for RUM instrumentation repoting bad timing info in some cases
405
+ * refactored ActiveRecord instrumentation, no longer requires Rails
406
+
407
+ v3.3.0
408
+ * fix for GC instrumentation when using Ruby 1.9
409
+ * new feature to correlate browser and server transaction traces
410
+ * new feature to trace slow sql statements
411
+ * fix to help cope with malformed rack responses
412
+ * do not try to instrument versions of ActiveMerchant that are too old
413
+
414
+ v3.2.0.1
415
+ * Updated LICENSE
416
+ * Updated links to support docs
417
+
418
+ v3.2.0
419
+ * Fix over-detection of mongrel and unicorn and only start the agent when
420
+ actual server is running
421
+ * Improve developer mode backtraces to support ruby 1.9.2, windows
422
+ * Fixed some cases where Memcache instrumentation was failing to load
423
+ * Ability to set log destination by NEW_RELIC_LOG env var
424
+ * Fix to mutex lib load issue
425
+ * Performance enhancements (thanks to Jeremy Kemper)
426
+ * Fix overly verbose STDOUT message (thanks to Anselm Helbig)
427
+
428
+ v3.1.2
429
+ * Fixed some thread safety issues
430
+ * Work around for Ruby 1.8.7 Marshal crash bug
431
+ * Numerous community patches (Gabriel Horner, Bradley Harris, Diego Garcia,
432
+ Tommy Sullivan, Greg Hazel, John Thomas Marino, Paul Elliott, Pan Thomakos)
433
+ * Fixed RUM instrumentation bug
434
+
435
+ v3.1.1
436
+ * Support for Rails 3.1 (thanks to Ben Hoskings via github)
437
+ * Support for Rubinius
438
+ * Fixed issues affecting some Delayed Job users where log files were not appearing
439
+ * Fixed an issue where some instrumentation might not get loaded in Rails apps
440
+ * Fix for memcached cas method (thanks to Andrew Long and Joseph Palermo )
441
+ * Fix for logger deprecation warning (thanks to Jonathan del Strother via github)
442
+ * Support for logging to STDOUT
443
+ * Support for Spymemcached client on jruby
444
+
445
+ v3.1.0
446
+ * Support for aggregating data from short-running
447
+ processes to reduce reporting overhead
448
+ * Numerous bug fixes
449
+ * Increased unit test coverage
450
+
451
+ v3.0.1
452
+ * Updated Real User Monitoring to reduce javascript size and improve
453
+ compatibility, fix a few known bugs
454
+
455
+ v3.0.0
456
+ * Support for Real User Monitoring
457
+ * Back end work on internals to improve reliability
458
+ * added a 'log_file_name' and 'log_file_path' configuration variable to allow
459
+ setting the path and name of the agent log file
460
+ * Improve reliability of statistics calculations
461
+ * Remove some previously deprecated methods
462
+ * Remove Sequel instrumentation pending more work
463
+
464
+ v2.14.1
465
+ * Avoid overriding methods named 'log' when including the MethodTracer module
466
+ * Ensure that all load paths for 'new_relic/agent' go through 'new_relic/control' first
467
+ * Remove some debugging output from tests
468
+
469
+ v2.14.0
470
+ * Dependency detection framework to prevent multi-loading or early-loading
471
+ of instrumentation files
472
+
473
+ v2.13.5
474
+ * Moved the API helper to the github newrelic_api gem.
475
+ * Revamped queue time to include server, queue, and middleware time
476
+ * Increased test coverage and stability
477
+ * Add Trinidad as a dispatcher (from Calavera, on github)
478
+ * Sequel instrumentation from Aman Gupta
479
+ * patches to 1.9 compatibility from dkastner on github
480
+ * Support for 1.9.2's garbage collection instrumentation from Justin Weiss
481
+ * On Heroku, existing queue time headers will be detected
482
+ * Fix rack constant scoping in dev mode for 1.9 (Rack != ::Rack)
483
+ * Fixes for instrumentation loading failing on Exception classes that
484
+ are not subclasses of StandardError
485
+ * Fix active record instrumentation load order for Rails 3
486
+
487
+ v2.13.4
488
+ * Update DNS lookup code to remove hardcoded IP addresses
489
+
490
+ v2.13.3
491
+ * Dalli instrumentation from Mike Perham (thanks Mike)
492
+ * Datamapper instrumentation from Jordan Ritter (thanks Jordan)
493
+ * Apdex now defaults to 0.5
494
+ !!! Please be aware that if you are not setting an apdex,
495
+ !!! this will cause a change in the apparent performance of your app.
496
+ * Make metric hashes threadsafe (fixes problems sending metrics in Jruby
497
+ threaded code)
498
+ * Delete obsolete links to metric docs in developer mode
499
+ * Detect gems when using Bundler
500
+ * Fix newrelic_ignore in Rails 3
501
+ * Break metric parser into a seperate vendored gem
502
+ * When using Unicorn, preload_app: true is recommended to get proper
503
+ after_fork behavior.
504
+
505
+ v2.13.2
506
+ * Remove a puts. Yes, a whole release for a puts.
507
+
508
+ v2.13.1
509
+ * Add missing require in rails 3 framework control
510
+
511
+ v2.13.0
512
+ * developer mode is now a rack middleware and can be used on any framework;
513
+ it is no longer supported automatically on versions of Rails prior to 2.3;
514
+ see README for details
515
+ * memcache key recording for transaction traces
516
+ * use system_timer gem if available, fall back to timeout lib
517
+ * address instability issues in JRuby 1.2
518
+ * renamed executable 'newrelic_cmd' to 'newrelic'; old name still supported
519
+ for backward compatibility
520
+ * added 'newrelic install' command to install a newrelic.yml file in the
521
+ current directory
522
+ * optimization to execution time measurement
523
+ * optimization to startup sequence
524
+ * change startup sequence so that instrumentation is installed after all
525
+ other gems and plugins have loaded
526
+ * add option to override automatic flushing of data on exit--send_data_on_exit
527
+ defaults to 'true'
528
+ * ignored errors no longer affect apdex score
529
+ * added record_transaction method to the api to allow recording
530
+ details from web and background transactions occurring outside RPM
531
+ * fixed a bug related to enabling a gold trial / upgrade not sending
532
+ trasaction traces correctly
533
+
534
+ v2.12.3
535
+ * fix regression in startup sequence
536
+
537
+ v2.12.2
538
+ * fix for regression in Rails 2.1 inline rendering
539
+ * workaround bug found in some rubies that caused a segv and/or NoMemoryError
540
+ when deflating content for upload
541
+ * avoid creating connection thread in unicorn/passenger spawners
542
+
543
+ v2.12.1
544
+ * fix bug in profile mode
545
+ * fix race condition in Delayed::Job instrumentation loading
546
+ * fix glassfish detection in latest glassfish gem
547
+
548
+ v2.12.0
549
+ * support basic instrumentation for ActsAsSolr and Sunspot
550
+
551
+ v2.11.3
552
+ * fix bug in startup when running JRuby
553
+
554
+ v2.11.2
555
+ * fix for unicorn not reporting when the proc line had 'master' in it
556
+ * fix regression for passenger 2.0 and earlier
557
+ * fix after_fork in the shim
558
+
559
+ v2.11.1
560
+ * republished gem without generated rdocs
561
+
562
+ v2.11.0
563
+ * rails3 instrumentation (no developer mode support yet)
564
+ * removed the ensure_worker_thread started and instead defined an after_fork
565
+ handler that will set up the agent properly in forked processes.
566
+ * change at_exit handler so the shutdown always goes after other shutdown
567
+ handlers
568
+ * add visibility to active record db transactions in the rpm transaction
569
+ traces (thanks to jeremy kemper)
570
+ * fix regression in merb support which caused merb apps not to start
571
+ * added NewRelic::Agent.logger to the public api to write to the agent
572
+ log file.
573
+ * optimizations to background thread, controller instrumentation, memory
574
+ usage
575
+ * add logger method to public_api
576
+ * support list notation for ignored exceptions in the newrelic.yml
577
+
578
+ v2.10.8
579
+ * fix bug in delayed_job instrumentation that caused the job queue sampler
580
+ to run in the wrong place
581
+ * change startup sequence and code that restarts the worker loop
582
+ thread
583
+ * detect the unicorn master and dont start the agent; hook in after_fork
584
+ * fix problem with the Authlogic metric names which caused errors in
585
+ developer mode. Authlogic metrics now adhere to the convention of
586
+ prefixing the name with 'Custom'
587
+ * allow more correct overriding of transaction trace settings in the
588
+ call to #manual_start
589
+ * simplify WorkerLoop and add better protection for concurrency
590
+ * preliminary support for rails3
591
+
592
+ v2.10.6
593
+ * fix missing URL and referer on some traced errors and transactions
594
+ * gather traced errors *after* executing the rescue chain in ActionController
595
+ * always load controller instrumentation
596
+ * pick up token validation from newrelic.yml
597
+
598
+ v2.10.5
599
+ * fix bug in delayed_job instrumentation occurring when there was no DJ log
600
+
601
+ v2.10.4
602
+ * fix incompatibility with Capistrano 2.5.16
603
+ * strip down URLs reported in transactions and errors to path only
604
+
605
+ v2.10.3
606
+ * optimization to reduce overhead: move background samplers into foreground thread
607
+ * change default config file to ignore RoutingErrors
608
+ * moved the background task instrumentation into a separate tab in the RPM UI
609
+ * allow override of the RPM application name via NEWRELIC_APP_NAME environment variable
610
+ * revised Delayed::Job instrumentation so no manual_start is required
611
+ * send buffered data on shutdown
612
+ * expanded support for queue length and queue time
613
+ * remove calls to starts_with to fix Sinatra and non-rails deployments
614
+ * fix problem with apdex scores recording too low in some circumstances
615
+ * switch to jeweler for gem building
616
+ * minor fixes, test improvements, doc and rakefile improvements
617
+ * fix incompatibility with Hoptoad where Hoptoad was not getting errors handled by New Relic
618
+ * many other optimizations, bug fixes and documentation improvements
619
+
620
+ v2.10.2.
621
+ * beta release of 2.10
622
+ * fix bugs with Sinatra app instrumentation
623
+ * minor doc updates
624
+
625
+ v2.10.1.
626
+ * alpha release of 2.10
627
+ * rack support, including metal; ignores 404s; requires a module inclusion (see docs)
628
+ * sinatra support, displays actions named by the URI pattern matched
629
+ * add API method to abort transaction recording for in-flight transactions
630
+ * remove account management calls from newrelic_api.rb
631
+ * truncating extremely large transaction traces for efficiency
632
+ * fix error reporting in recipes; add newrelic_rails_env option to recipes to
633
+ override the rails env used to pull the app_name out of newrelic.yml
634
+ * added TorqueBox recognition (thanks Bob McWhirter)
635
+ * renamed config settings: enabled => monitor_mode; developer => developer_mode;
636
+ old names will still work in newrelic.yml
637
+ * instrumentation for DelayedJob (thanks Travis Tilley)
638
+ * added config switches to turn off certain instrumentation when you aren't
639
+ interested in the metrics, to save on overhead--see newrelic.yml for details.
640
+ * add profiling support to dev mode; very experimental!
641
+ * add 'multi_threaded' config option to indicate when the app is running
642
+ multi-threaded, so we can disable some instrumentation
643
+ * fix test failures in JRuby, REE
644
+ * improve Net::HTTP instrumentation so it's more efficient and distinguishes calls
645
+ between web and non-web transactions.
646
+ * database instrumentation notices all database commands in addition to the core commands
647
+ * add support for textmate to dev mode
648
+ * added add_transaction_tracer method to support instrumenting methods as
649
+ if they were web transactions; this will facilitate better visibility of background
650
+ tasks and eventually things like rack, metal and Sinatra
651
+ * adjusted apdex scores to reflect time spent in the mongrel queue
652
+ * fixed incompatibility with JRuby on startup
653
+ * implmented CPU measure for JRuby which reflects the cpu burn for
654
+ all controller actions (does not include background tasks)
655
+ * fixed scope issue with GC instrumentation, subtracting time from caller
656
+ * added # of GC calls to GC instrumentation
657
+ * renamed the dispatcher metric
658
+ * refactored stats_engine code for readability
659
+ * optimization: reduce wakeup times for harvest thread
660
+
661
+ v2.10.0.
662
+ * alpha release of 2.10
663
+ * support unicorn
664
+ * instrumentation of GC for REE and MRE with GC patch
665
+ * support agent restarting when changes are made to the account
666
+ * removed #newrelic_notice_error from Object class, replaced by NewRelic::Agent#notic_error
667
+ * collect histogram statistics
668
+ * add custom parameters to newrelic_notice_error call to display
669
+ extra info for errors
670
+ * add method disable_all_tracing(&block) to execute a block without
671
+ capturing metrics
672
+ * newrelic_ignore now blocks all instrumentation collection for
673
+ the specified actions
674
+ * added doc to method_tracer API and removed second arg
675
+ requirement for add_method_tracer call
676
+ * instrumentation for Net::HTTP
677
+ * remove method_tracer shim to avoid timing problems in monitoring daemons
678
+ * for non-rails daemons, look at APP_ROOT and NRCONFIG env vars for custom locations
679
+
680
+ v2.9.9.
681
+ * Disable at_exit handler for Unicorn which sometimes caused the
682
+ agent to stop reporting immediately.
683
+
684
+ v2.9.8.
685
+ * add instrumentation for Net::HTTP calls, to show up as "External"
686
+ * added support for validating agents in the cloud.
687
+ * recognize Unicorn dispatcher
688
+ * add NewRelic module definitions to ActiveRecord instrumentation
689
+
690
+ v2.9.5.
691
+ * Snow Leopard memory fix
692
+
693
+ v2.9.4.
694
+ * clamp size of data sent to server
695
+ * reset statistics for passenger when forking to avoid erroneous data
696
+ * fix problem deserializing errors from the server
697
+ * fix incompatibility with postgres introduced in 2.9.
698
+
699
+ v2.9.3.
700
+ * fix startup failure in Windows due to memory sampler
701
+ * add JRuby environment information
702
+
703
+ v2.9.2.
704
+ * change default apdex_t to 0.5 seconds
705
+ * fix bug in deployments introduced by multi_homed setting
706
+ * support overriding the log in the agent api
707
+ * fix JRuby problem using objectspace
708
+ * display custom parameters when looking at transactions in dev mode
709
+ * display count of sql statements on the list of transactions in dev mode
710
+ * fixes for merb--thanks to Carl Lerche
711
+
712
+ v2.9.1.
713
+ * add newrelic_ignore_apdex method to controller classes to allow
714
+ you to omit some actions from apdex statistics
715
+ * Add hook for Passenger shutdown events to get more timely shutdown
716
+ notices; this will help in more accurate memory readings in
717
+ Passenger
718
+ * add newrelic_notice_error to Object class
719
+ * optional ability to verify SSL certificates, note that this has some
720
+ performance and reliability implications
721
+ * support multi-homed host with multiple apps running on duplicate
722
+ ports
723
+
724
+ v2.9.0.
725
+ Noteworthy Enhancements
726
+ * give visibility to templates and partials in Rails 2.1 and later, in
727
+ dev mode and production
728
+ * change active record metrics to capture statistics in adapter log()
729
+ call, resulting in lower overhead and improved visibility into
730
+ different DB operations; only AR operations that are not hitting the
731
+ query cache will be measured to avoid overhead
732
+ * added mongrel_rpm to the gem, a standalone daemon listening for custom
733
+ metric values sent from local processes (experimental); do mongrel_rpm
734
+ --help
735
+ * add API for system monitoring daemons (refer to KB articles); changed
736
+ API for manual starting of the agent; refer to
737
+ NewRelic::Agent.manual_start for details
738
+ * do certificate verification on ssl connections to
739
+ collector.newrelic.com
740
+ * support instances appearing in more than one application by allowing a
741
+ semicolon separated list of names for the newrelic.yml app_name
742
+ setting.
743
+ * combined agent logfiles into a single logfile
744
+ * use rpm server time for transaction traces rather than agent time
745
+
746
+ Developer Mode (only) Enhancements
747
+ * show partial rendering in traces
748
+ * improved formatting of metric names in traces
749
+ * added number of queries to transactions in the transaction list
750
+ * added some sorting options for the transaction list
751
+ * added a page showing the list of active threads
752
+
753
+ Compatibility Enhancements
754
+ * ruby 1.9.1 compatibility
755
+ * support concurrency when determining busy times, for 2.2 compatibility
756
+ * in jruby, use Java used heap for memory sampling if the system memory
757
+ is not accessible from an unsupported platform
758
+ * jruby will no longer start the agent now when running the console or
759
+ rake tasks
760
+ * API support for RPM as a footnote add-in
761
+ * webrick support restored
762
+
763
+ Noteworthy bugfixes
764
+ * sample memory on linux by reading /proc/#{$$}/status file
765
+ * fixed ambiguous 'View' metrics showing up in controller breakdown
766
+ * removed Numeric extensions, including round_to, and to_ms
767
+ * using a different timeout mechanism when we post data to RPM
768
+ * remove usage of Rails::Info which had a side effect of enabling
769
+ ActiveRecord even when it wasn't an active framework
770
+ * moved CPU sampler off background thread and onto the harvest thread
771
+ * tests now run cleanly in any rails app using test:newrelic or
772
+ test:plugins
773
+
774
+ Agent improvements to support future RPM enhancements
775
+ * add instrumentation to capture metrics on response codes; not yet
776
+ working in rails 2.3.*
777
+ * added http referer to traced errors
778
+ * capture gem requirements from rails
779
+ * capture cpu utilization adjusted for processor count
780
+ * transaction sampling
781
+
782
+ v2.8.10.
783
+ * fix thin support with rails 2.3.2 when using script/server
784
+ * fix incompatibility with rails 2.3.2 and script/server options
785
+ processing
786
+ * minor tweak to environment gathering for gem mode
787
+
788
+ v2.8.9.
789
+ * fix problem finding the newrelic controller in dev mode
790
+ * fix incompatibility with older versions of optparse
791
+ * fix potential jvm problem with jruby
792
+ * remove test:all task definition to avoid conflicts
793
+ * change error message about window sampler in windows not supported to a
794
+ warning message
795
+
796
+ v2.8.8.
797
+ * fix error with jruby on windows
798
+ * fix problem where webrick was being incorrectly detected causing some
799
+ problems with mongrel application assignments--had to disable webrick
800
+ for now
801
+
802
+ v2.8.7.
803
+ * fix for ssl connection hanging problems
804
+ * fix problem recognizing mongrel in rails 2.3.2
805
+ * fastcgi support in rails 2.3.2
806
+ * put back webrick support
807
+
808
+ v2.8.6.
809
+ * fix for capture_params when using file uploads in controller actions
810
+ * use pure ruby NS lookup for collector host to eliminate possibly
811
+ blocking applications
812
+
813
+ v2.8.5.
814
+ * fix reference to CommandError which was breaking some cap scripts
815
+ * fix incompatibility with Rails 2.0 in the server API
816
+ * fix problem with litespeed with Lite accounts
817
+ * fix problem when ActiveRecord is disabled
818
+ * moved merb instrumentation to Merb::Controller instead of
819
+ AbstractController to address incompatibility with MailController
820
+ * fix problem in devmode displaying sql with embedded urls
821
+
822
+ v2.8.4.
823
+ * fix bug in capistrano recipe causing cap commands to fail with error
824
+ about not finding Version class
825
+
826
+ v2.8.3.
827
+ * refactor unit tests so they will run in a generic rails environment
828
+ * require classes in advance to avoid autoloading. this is to address
829
+ incompatibilities with desert as well as more flexibility in gem
830
+ initialization
831
+ * fixed newrelic_helper.rb 1.9 incompatibility
832
+
833
+ v2.8.2.
834
+ * fix Ruby 1.9 syntax compatibility errors
835
+ * update the class loading sanity check, will notify server of errors
836
+ * fix agent output on script and rake task execution
837
+
838
+ v2.8.1.
839
+ * Convert the deployment information upload script to an executable and
840
+ put in the bin directory. When installed as a gem this command is
841
+ symlinked to /usr/bin. Usage: newrelic_cmd deployments --help
842
+ * Fix issue invoking api when host is not set in newrelic.yml
843
+ * Fix deployments api so it will work from a gem
844
+ * Fix thin incompatibility in developer mode
845
+
846
+ v2.8.0.
847
+ * add beta of api in new_relic_api.rb
848
+ * instrumented dynamic finders in ActiveRecord
849
+ * preliminary support for capturing deployment information via capistrano
850
+ * change memory sampler for solaris to use /usr/bin/ps
851
+ * allow ERB in newrelic.yml file
852
+ * merged support for merb into this version
853
+ * fix incompatibility in the developer mode with the safe_erb plugin
854
+ * fix module namespace issue causing an error accessing
855
+ NewRelic::Instrumentation modules
856
+ * fix issue where the agent sometimes failed to start up if there was a
857
+ transient network problem
858
+ * fix IgnoreSilentlyException message
859
+
860
+ v2.7.4.
861
+ * fix error when trying to serialize some kinds of Enumerable objects
862
+ * added extra debug logging
863
+ * added app_name to app mapping
864
+
865
+ v2.7.3.
866
+ * fix compatibility issue with 1.8.5 causing error with Dir.glob
867
+
868
+ v2.7.2.
869
+ * fix problem with passenger edge not being a detected environment
870
+
871
+ v2.7.1.
872
+ * fix problem with skipped dispatcher instrumentation
873
+
874
+ v2.7.0.
875
+ * Repackage to support both plugin and Gem installation
876
+ * Support passenger/litespeed/jruby application naming
877
+ * Update method for calculating dispatcher queue time
878
+ * Show stack traces in RPM Transaction Traces
879
+ * Capture error source for TemplateErrors
880
+ * Clean up error stack traces.
881
+ * Support query plans from postgres
882
+ * Performance tuning
883
+ * bugfixes
884
+
885
+ v2.5.3.
886
+ * fix error in transaction tracing causing traces not to show up
887
+
888
+ v2.5.2.
889
+ * fixes for postgres explain plan support
890
+
891
+ v2.5.1.
892
+ * bugfixes
893
+
894
+ v2.5.0.
895
+ * add agent support for rpm 1.1 features
896
+ * Fix regression error with thin support
897
+
898
+ v2.4.3.
899
+ * added 'newrelic_ignore' controller class method with :except and :only options for finer grained control
900
+ over the blocking of instrumentation in controllers.
901
+ * bugfixes
902
+
903
+ v2.4.2.
904
+ * error reporting in early access
905
+
906
+ v2.4.1.
907
+ * bugfix: initializing developer mode
908
+
909
+ v2.4.0.
910
+ * Beta support for LiteSpeed and Passenger
911
+
912
+ v2.3.7.
913
+ * bugfixes
914
+
915
+ v2.3.6.
916
+ * bugfixes
917
+
918
+ v2.3.5.
919
+ * bugfixes: pie chart data, rails 1.1 compability
920
+
921
+ v2.3.4.
922
+ * bugfix
923
+
924
+ v2.3.3.
925
+ * bugfix for non-mysql databases
926
+
927
+ v2.3.2.
928
+ * bugfixes
929
+ * Add enhancement for Transaction Traces early access feature
930
+
931
+ v2.3.1.
932
+ * bugfixes
933
+
934
+ v2.3.0.
935
+ + Add support for Transaction Traces early access feature
936
+
937
+ v2.2.2.
938
+ * bugfixes
939
+
940
+ v2.2.1.
941
+ + Add rails 2.1 support for Developer Mode
942
+ + Changes to memory sampler: Add support for JRuby and fix Solaris support.
943
+ * Stop catching exceptions and start catching StandardError; other exception cleanup
944
+ * Add protective exception catching to the stats engine
945
+ * Improved support for thin domain sockets
946
+ * Support JRuby environments
947
+
948
+ v2.1.6.
949
+ * bugfixes
950
+
951
+ v2.1.5.
952
+ * bugfixes
953
+
954
+ v2.1.4.
955
+ * bugfixes
956
+
957
+ v2.1.3.
958
+ * bugfixes
959
+
960
+ v2.1.2.
961
+ * bugfixes
962
+
963
+ v2.1.1.
964
+ * bugfixes
965
+
966
+ v2.1.0.
967
+ * release for private beta
968
+
969
+