newrelic_rpm 3.5.8.72 → 3.6.0.74.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (333) hide show
  1. data/.travis.yml +1 -0
  2. data/CHANGELOG +16 -0
  3. data/LICENSE +70 -6
  4. data/init.rb +4 -0
  5. data/install.rb +4 -0
  6. data/lib/conditional_vendored_dependency_detection.rb +4 -0
  7. data/lib/conditional_vendored_metric_parser.rb +4 -0
  8. data/lib/new_relic/agent/agent.rb +10 -7
  9. data/lib/new_relic/agent/agent_logger.rb +4 -0
  10. data/lib/new_relic/agent/audit_logger.rb +4 -0
  11. data/lib/new_relic/agent/beacon_configuration.rb +4 -0
  12. data/lib/new_relic/agent/browser_monitoring.rb +4 -0
  13. data/lib/new_relic/agent/busy_calculator.rb +7 -6
  14. data/lib/new_relic/agent/chained_call.rb +4 -0
  15. data/lib/new_relic/agent/configuration/defaults.rb +4 -0
  16. data/lib/new_relic/agent/configuration/environment_source.rb +4 -0
  17. data/lib/new_relic/agent/configuration/manager.rb +4 -0
  18. data/lib/new_relic/agent/configuration/mask_defaults.rb +4 -0
  19. data/lib/new_relic/agent/configuration/server_source.rb +4 -0
  20. data/lib/new_relic/agent/configuration/yaml_source.rb +5 -1
  21. data/lib/new_relic/agent/configuration.rb +4 -0
  22. data/lib/new_relic/agent/cross_app_monitor.rb +9 -10
  23. data/lib/new_relic/agent/cross_app_tracing.rb +6 -18
  24. data/lib/new_relic/agent/database.rb +4 -0
  25. data/lib/new_relic/agent/error_collector.rb +23 -10
  26. data/lib/new_relic/agent/event_listener.rb +4 -0
  27. data/lib/new_relic/agent/instrumentation/active_merchant.rb +4 -0
  28. data/lib/new_relic/agent/instrumentation/active_record.rb +4 -0
  29. data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +4 -0
  30. data/lib/new_relic/agent/instrumentation/authlogic.rb +4 -0
  31. data/lib/new_relic/agent/instrumentation/browser_monitoring_timings.rb +4 -0
  32. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +5 -8
  33. data/lib/new_relic/agent/instrumentation/data_mapper.rb +5 -1
  34. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +4 -0
  35. data/lib/new_relic/agent/instrumentation/memcache.rb +4 -0
  36. data/lib/new_relic/agent/instrumentation/merb/controller.rb +4 -0
  37. data/lib/new_relic/agent/instrumentation/merb/errors.rb +4 -0
  38. data/lib/new_relic/agent/instrumentation/metric_frame/pop.rb +5 -1
  39. data/lib/new_relic/agent/instrumentation/metric_frame.rb +15 -18
  40. data/lib/new_relic/agent/instrumentation/net.rb +4 -2
  41. data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +4 -0
  42. data/lib/new_relic/agent/instrumentation/queue_time.rb +6 -2
  43. data/lib/new_relic/agent/instrumentation/rack.rb +4 -0
  44. data/lib/new_relic/agent/instrumentation/rails/action_controller.rb +4 -0
  45. data/lib/new_relic/agent/instrumentation/rails/action_web_service.rb +4 -0
  46. data/lib/new_relic/agent/instrumentation/rails/errors.rb +4 -0
  47. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +4 -0
  48. data/lib/new_relic/agent/instrumentation/rails3/errors.rb +4 -0
  49. data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +26 -0
  50. data/lib/new_relic/agent/instrumentation/resque.rb +4 -0
  51. data/lib/new_relic/agent/instrumentation/sidekiq.rb +36 -0
  52. data/lib/new_relic/agent/instrumentation/sinatra.rb +4 -0
  53. data/lib/new_relic/agent/instrumentation/sunspot.rb +4 -0
  54. data/lib/new_relic/agent/instrumentation/unicorn_instrumentation.rb +4 -0
  55. data/lib/new_relic/agent/instrumentation.rb +4 -0
  56. data/lib/new_relic/agent/method_tracer.rb +26 -31
  57. data/lib/new_relic/agent/new_relic_service.rb +7 -6
  58. data/lib/new_relic/agent/pipe_channel_manager.rb +58 -15
  59. data/lib/new_relic/agent/pipe_service.rb +13 -6
  60. data/lib/new_relic/agent/rules_engine.rb +4 -0
  61. data/lib/new_relic/agent/sampler.rb +4 -0
  62. data/lib/new_relic/agent/samplers/cpu_sampler.rb +20 -12
  63. data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +15 -12
  64. data/lib/new_relic/agent/samplers/memory_sampler.rb +9 -5
  65. data/lib/new_relic/agent/samplers/object_sampler.rb +6 -6
  66. data/lib/new_relic/agent/shim_agent.rb +4 -0
  67. data/lib/new_relic/agent/sql_sampler.rb +4 -0
  68. data/lib/new_relic/agent/stats.rb +3 -0
  69. data/lib/new_relic/agent/stats_engine/gc_profiler.rb +8 -4
  70. data/lib/new_relic/agent/stats_engine/metric_stats.rb +13 -13
  71. data/lib/new_relic/agent/stats_engine/samplers.rb +6 -3
  72. data/lib/new_relic/agent/stats_engine/stats_hash.rb +4 -0
  73. data/lib/new_relic/agent/stats_engine/transactions.rb +4 -0
  74. data/lib/new_relic/agent/stats_engine.rb +4 -0
  75. data/lib/new_relic/agent/thread.rb +4 -0
  76. data/lib/new_relic/agent/thread_profiler.rb +4 -0
  77. data/lib/new_relic/agent/transaction_info.rb +4 -0
  78. data/lib/new_relic/agent/transaction_sample_builder.rb +4 -0
  79. data/lib/new_relic/agent/transaction_sampler.rb +4 -0
  80. data/lib/new_relic/agent/worker_loop.rb +4 -0
  81. data/lib/new_relic/agent.rb +7 -3
  82. data/lib/new_relic/build.rb +2 -2
  83. data/lib/new_relic/coerce.rb +4 -0
  84. data/lib/new_relic/collection_helper.rb +4 -0
  85. data/lib/new_relic/command.rb +4 -0
  86. data/lib/new_relic/commands/deployments.rb +4 -0
  87. data/lib/new_relic/commands/install.rb +4 -0
  88. data/lib/new_relic/control/class_methods.rb +4 -0
  89. data/lib/new_relic/control/frameworks/external.rb +4 -0
  90. data/lib/new_relic/control/frameworks/merb.rb +4 -0
  91. data/lib/new_relic/control/frameworks/rails.rb +4 -0
  92. data/lib/new_relic/control/frameworks/rails3.rb +4 -0
  93. data/lib/new_relic/control/frameworks/rails4.rb +4 -0
  94. data/lib/new_relic/control/frameworks/ruby.rb +4 -0
  95. data/lib/new_relic/control/frameworks/sinatra.rb +4 -0
  96. data/lib/new_relic/control/frameworks.rb +4 -0
  97. data/lib/new_relic/control/instance_methods.rb +4 -0
  98. data/lib/new_relic/control/instrumentation.rb +4 -0
  99. data/lib/new_relic/control/profiling.rb +4 -0
  100. data/lib/new_relic/control/server_methods.rb +4 -0
  101. data/lib/new_relic/control.rb +4 -0
  102. data/lib/new_relic/delayed_job_injection.rb +4 -0
  103. data/lib/new_relic/helper.rb +4 -1
  104. data/lib/new_relic/language_support.rb +4 -0
  105. data/lib/new_relic/latest_changes.rb +5 -1
  106. data/lib/new_relic/local_environment.rb +18 -1
  107. data/lib/new_relic/merbtasks.rb +4 -0
  108. data/lib/new_relic/metric_data.rb +4 -0
  109. data/lib/new_relic/metric_spec.rb +4 -0
  110. data/lib/new_relic/metrics.rb +4 -0
  111. data/lib/new_relic/noticed_error.rb +4 -0
  112. data/lib/new_relic/okjson.rb +4 -1
  113. data/lib/new_relic/rack/agent_hooks.rb +4 -0
  114. data/lib/new_relic/rack/browser_monitoring.rb +4 -0
  115. data/lib/new_relic/rack/developer_mode.rb +4 -0
  116. data/lib/new_relic/rack/error_collector.rb +4 -0
  117. data/lib/new_relic/rack.rb +4 -0
  118. data/lib/new_relic/recipes.rb +4 -0
  119. data/lib/new_relic/timer_lib.rb +4 -0
  120. data/lib/new_relic/transaction_analysis/segment_summary.rb +4 -0
  121. data/lib/new_relic/transaction_analysis.rb +4 -0
  122. data/lib/new_relic/transaction_sample/composite_segment.rb +4 -0
  123. data/lib/new_relic/transaction_sample/fake_segment.rb +4 -0
  124. data/lib/new_relic/transaction_sample/segment.rb +4 -0
  125. data/lib/new_relic/transaction_sample/summary_segment.rb +4 -0
  126. data/lib/new_relic/transaction_sample.rb +4 -0
  127. data/lib/new_relic/url_rule.rb +4 -0
  128. data/lib/new_relic/version.rb +6 -2
  129. data/lib/newrelic_rpm.rb +4 -0
  130. data/lib/tasks/all.rb +4 -0
  131. data/recipes/newrelic.rb +4 -0
  132. data/test/active_record_fixtures.rb +4 -0
  133. data/test/config/test_control.rb +4 -0
  134. data/test/intentional_fail.rb +4 -0
  135. data/test/multiverse/lib/multiverse/color.rb +4 -0
  136. data/test/multiverse/lib/multiverse/envfile.rb +4 -0
  137. data/test/multiverse/lib/multiverse/environment.rb +4 -0
  138. data/test/multiverse/lib/multiverse/output_collector.rb +4 -0
  139. data/test/multiverse/lib/multiverse/runner.rb +4 -0
  140. data/test/multiverse/lib/multiverse/suite.rb +4 -0
  141. data/test/multiverse/suites/active_record/ar_method_aliasing.rb +4 -0
  142. data/test/multiverse/suites/active_record/encoding_test.rb +4 -0
  143. data/test/multiverse/suites/agent_only/audit_log_test.rb +4 -0
  144. data/test/multiverse/suites/agent_only/cross_application_tracing_test.rb +4 -0
  145. data/test/multiverse/suites/agent_only/http_response_code_test.rb +4 -0
  146. data/test/multiverse/suites/agent_only/key_transactions_test.rb +4 -0
  147. data/test/multiverse/suites/agent_only/logging_test.rb +4 -0
  148. data/test/multiverse/suites/agent_only/marshaling_test.rb +4 -0
  149. data/test/multiverse/suites/agent_only/method_visibility_test.rb +4 -0
  150. data/test/multiverse/suites/agent_only/no_dns_resolv.rb +4 -0
  151. data/test/multiverse/suites/agent_only/pipe_manager_test.rb +4 -0
  152. data/test/multiverse/suites/agent_only/rename_rule_test.rb +4 -0
  153. data/test/multiverse/suites/agent_only/rum_instrumentation_test.rb +4 -0
  154. data/test/multiverse/suites/agent_only/service_timeout_test.rb +4 -0
  155. data/test/multiverse/suites/agent_only/ssl_test.rb +4 -0
  156. data/test/multiverse/suites/agent_only/start_up_test.rb +4 -0
  157. data/test/multiverse/suites/agent_only/test_trace_method_with_punctuation.rb +4 -0
  158. data/test/multiverse/suites/agent_only/test_trace_transaction_with_punctuation.rb +4 -0
  159. data/test/multiverse/suites/agent_only/testing_app.rb +4 -0
  160. data/test/multiverse/suites/agent_only/thread_profiling_test.rb +4 -0
  161. data/test/multiverse/suites/config_file_loading/config_file_loading_test.rb +4 -0
  162. data/test/multiverse/suites/datamapper/encoding_test.rb +4 -0
  163. data/test/multiverse/suites/rails/app.rb +4 -0
  164. data/test/multiverse/suites/rails/error_tracing_test.rb +4 -0
  165. data/test/multiverse/suites/rails/gc_instrumentation_test.rb +4 -0
  166. data/test/multiverse/suites/rails/queue_time_test.rb +4 -0
  167. data/test/multiverse/suites/rails/view_instrumentation_test.rb +4 -0
  168. data/test/multiverse/suites/resque/instrumentation_test.rb +5 -1
  169. data/test/multiverse/suites/resque/resque_setup.rb +4 -0
  170. data/test/multiverse/suites/sidekiq/Envfile +21 -0
  171. data/test/multiverse/suites/sidekiq/app.rb +25 -0
  172. data/test/multiverse/suites/sidekiq/config/newrelic.yml +22 -0
  173. data/test/multiverse/suites/sidekiq/log/.gitkeep +0 -0
  174. data/test/multiverse/suites/sidekiq/sidekiq_instrumentation_test.rb +137 -0
  175. data/test/multiverse/suites/sinatra/sinatra_error_tracing_test.rb +4 -0
  176. data/test/multiverse/suites/sinatra/sinatra_metric_explosion_test.rb +4 -0
  177. data/test/multiverse/suites/sinatra/sinatra_routes_test.rb +4 -0
  178. data/test/multiverse/suites/sinatra/sinatra_test.rb +4 -0
  179. data/test/multiverse/test/multiverse_test.rb +4 -0
  180. data/test/multiverse/test/suite_examples/one/a/a_test.rb +4 -0
  181. data/test/multiverse/test/suite_examples/one/b/b_test.rb +4 -0
  182. data/test/multiverse/test/suite_examples/three/a/fail_test.rb +4 -0
  183. data/test/multiverse/test/suite_examples/three/b/win_test.rb +4 -0
  184. data/test/multiverse/test/suite_examples/two/a/fail_test.rb +4 -0
  185. data/test/new_relic/agent/agent/connect_test.rb +4 -0
  186. data/test/new_relic/agent/agent/start_test.rb +4 -0
  187. data/test/new_relic/agent/agent/start_worker_thread_test.rb +4 -0
  188. data/test/new_relic/agent/agent_logger_test.rb +4 -0
  189. data/test/new_relic/agent/agent_test.rb +6 -1
  190. data/test/new_relic/agent/agent_test_controller.rb +4 -0
  191. data/test/new_relic/agent/agent_test_controller_test.rb +4 -0
  192. data/test/new_relic/agent/apdex_from_server_test.rb +4 -0
  193. data/test/new_relic/agent/audit_logger_test.rb +4 -0
  194. data/test/new_relic/agent/beacon_configuration_test.rb +4 -0
  195. data/test/new_relic/agent/browser_monitoring_test.rb +4 -0
  196. data/test/new_relic/agent/busy_calculator_test.rb +6 -2
  197. data/test/new_relic/agent/configuration/environment_source_test.rb +4 -0
  198. data/test/new_relic/agent/configuration/manager_test.rb +4 -0
  199. data/test/new_relic/agent/configuration/server_source_test.rb +4 -0
  200. data/test/new_relic/agent/configuration/yaml_source_test.rb +4 -0
  201. data/test/new_relic/agent/cross_app_monitor_test.rb +12 -8
  202. data/test/new_relic/agent/database_test.rb +4 -0
  203. data/test/new_relic/agent/error_collector/notice_error_test.rb +4 -0
  204. data/test/new_relic/agent/error_collector_test.rb +4 -0
  205. data/test/new_relic/agent/event_listener_test.rb +4 -0
  206. data/test/new_relic/agent/instrumentation/active_record_instrumentation_test.rb +4 -0
  207. data/test/new_relic/agent/instrumentation/browser_monitoring_timings_test.rb +4 -0
  208. data/test/new_relic/agent/instrumentation/controller_instrumentation_test.rb +4 -0
  209. data/test/new_relic/agent/instrumentation/instrumentation_test.rb +4 -0
  210. data/test/new_relic/agent/instrumentation/metric_frame/pop_test.rb +4 -0
  211. data/test/new_relic/agent/instrumentation/metric_frame_test.rb +4 -0
  212. data/test/new_relic/agent/instrumentation/net_instrumentation_test.rb +3 -0
  213. data/test/new_relic/agent/instrumentation/queue_time_test.rb +4 -0
  214. data/test/new_relic/agent/instrumentation/rack_test.rb +4 -0
  215. data/test/new_relic/agent/instrumentation/sinatra_test.rb +4 -0
  216. data/test/new_relic/agent/instrumentation/task_instrumentation_test.rb +4 -0
  217. data/test/new_relic/agent/memcache_instrumentation_test.rb +4 -0
  218. data/test/new_relic/agent/method_tracer/class_methods/add_method_tracer_test.rb +4 -0
  219. data/test/new_relic/agent/method_tracer/instance_methods/trace_execution_scoped_test.rb +48 -26
  220. data/test/new_relic/agent/method_tracer_test.rb +4 -0
  221. data/test/new_relic/agent/mock_scope_listener.rb +4 -0
  222. data/test/new_relic/agent/new_relic_service_test.rb +4 -0
  223. data/test/new_relic/agent/pipe_channel_manager_test.rb +24 -6
  224. data/test/new_relic/agent/pipe_service_test.rb +6 -10
  225. data/test/new_relic/agent/rpm_agent_test.rb +4 -0
  226. data/test/new_relic/agent/rules_engine_test.rb +4 -0
  227. data/test/new_relic/agent/sampler_test.rb +4 -0
  228. data/test/new_relic/agent/shim_agent_test.rb +4 -0
  229. data/test/new_relic/agent/sql_sampler_test.rb +4 -0
  230. data/test/new_relic/agent/stats_engine/gc_profiler_test.rb +4 -0
  231. data/test/new_relic/agent/stats_engine/metric_stats_test.rb +21 -17
  232. data/test/new_relic/agent/stats_engine/samplers_test.rb +20 -10
  233. data/test/new_relic/agent/stats_engine_test.rb +4 -0
  234. data/test/new_relic/agent/stats_hash_test.rb +4 -0
  235. data/test/new_relic/agent/stats_test.rb +4 -0
  236. data/test/new_relic/agent/thread_profiler_test.rb +4 -0
  237. data/test/new_relic/agent/thread_test.rb +4 -0
  238. data/test/new_relic/agent/threaded_test.rb +4 -0
  239. data/test/new_relic/agent/transaction_info_test.rb +4 -0
  240. data/test/new_relic/agent/transaction_sample_builder_test.rb +4 -0
  241. data/test/new_relic/agent/transaction_sampler_test.rb +5 -1
  242. data/test/new_relic/agent/worker_loop_test.rb +4 -0
  243. data/test/new_relic/agent_test.rb +7 -3
  244. data/test/new_relic/coerce_test.rb +4 -0
  245. data/test/new_relic/collection_helper_test.rb +4 -0
  246. data/test/new_relic/command/deployments_test.rb +4 -0
  247. data/test/new_relic/control/class_methods_test.rb +4 -0
  248. data/test/new_relic/control/frameworks/rails_test.rb +4 -0
  249. data/test/new_relic/control_test.rb +4 -0
  250. data/test/new_relic/delayed_job_injection_test.rb +4 -0
  251. data/test/new_relic/dispatcher_test.rb +4 -0
  252. data/test/new_relic/fake_collector.rb +16 -4
  253. data/test/new_relic/framework_test.rb +4 -0
  254. data/test/new_relic/helper_test.rb +4 -1
  255. data/test/new_relic/license_test.rb +127 -0
  256. data/test/new_relic/load_test.rb +4 -0
  257. data/test/new_relic/local_environment_test.rb +4 -0
  258. data/test/new_relic/metric_data_test.rb +4 -0
  259. data/test/new_relic/metric_parser/metric_parser_test.rb +4 -0
  260. data/test/new_relic/metric_spec_test.rb +4 -0
  261. data/test/new_relic/noticed_error_test.rb +4 -0
  262. data/test/new_relic/rack/agent_hooks_test.rb +4 -0
  263. data/test/new_relic/rack/all_test.rb +4 -0
  264. data/test/new_relic/rack/browser_monitoring_test.rb +4 -0
  265. data/test/new_relic/rack/developer_mode_helper_test.rb +4 -0
  266. data/test/new_relic/rack/developer_mode_test.rb +4 -0
  267. data/test/new_relic/rack/error_collector_test.rb +4 -0
  268. data/test/new_relic/transaction_analysis/segment_summary_test.rb +4 -0
  269. data/test/new_relic/transaction_analysis_test.rb +4 -0
  270. data/test/new_relic/transaction_sample/composite_segment_test.rb +4 -0
  271. data/test/new_relic/transaction_sample/fake_segment_test.rb +4 -0
  272. data/test/new_relic/transaction_sample/segment_test.rb +4 -0
  273. data/test/new_relic/transaction_sample/summary_segment_test.rb +4 -0
  274. data/test/new_relic/transaction_sample_subtest_test.rb +4 -0
  275. data/test/new_relic/transaction_sample_test.rb +4 -0
  276. data/test/new_relic/version_number_test.rb +4 -0
  277. data/test/test_contexts.rb +4 -0
  278. data/test/test_helper.rb +4 -0
  279. data/ui/helpers/developer_mode_helper.rb +4 -0
  280. data/ui/helpers/google_pie_chart.rb +4 -0
  281. data/ui/views/newrelic/file/javascript/jquery-1.4.2.js +3 -0
  282. data/ui/views/newrelic/file/javascript/transaction_sample.js +3 -0
  283. data/ui/views/newrelic/index.rhtml +2 -2
  284. data/vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection/version.rb +4 -0
  285. data/vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection.rb +4 -0
  286. data/vendor/gems/metric_parser-0.1.0.pre1/lib/metric_parser.rb +4 -0
  287. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/action_mailer.rb +4 -0
  288. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/active_merchant.rb +4 -0
  289. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/active_record.rb +4 -0
  290. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/apdex.rb +4 -0
  291. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/background_transaction.rb +4 -0
  292. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/client.rb +4 -0
  293. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller.rb +4 -0
  294. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller_cpu.rb +4 -0
  295. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller_ext.rb +4 -0
  296. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/database.rb +4 -0
  297. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/database_pool.rb +4 -0
  298. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/dot_net.rb +4 -0
  299. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/dot_net_parser.rb +4 -0
  300. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/errors.rb +4 -0
  301. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/external.rb +4 -0
  302. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/frontend.rb +4 -0
  303. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/gc.rb +4 -0
  304. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/hibernate_session.rb +4 -0
  305. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/java.rb +4 -0
  306. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/java_parser.rb +4 -0
  307. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/jsp.rb +4 -0
  308. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/jsp_tag.rb +4 -0
  309. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/mem_cache.rb +4 -0
  310. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/metric_parser.rb +4 -0
  311. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/orm.rb +4 -0
  312. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/other_transaction.rb +4 -0
  313. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet.rb +4 -0
  314. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_context_listener.rb +4 -0
  315. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_filter.rb +4 -0
  316. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_init.rb +4 -0
  317. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/solr.rb +4 -0
  318. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/solr_request_handler.rb +4 -0
  319. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring.rb +4 -0
  320. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring_controller.rb +4 -0
  321. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring_view.rb +4 -0
  322. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/struts_action.rb +4 -0
  323. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/struts_result.rb +4 -0
  324. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/version.rb +4 -0
  325. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/view.rb +4 -0
  326. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_frontend.rb +4 -0
  327. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_service.rb +4 -0
  328. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_transaction.rb +4 -0
  329. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser.rb +4 -0
  330. data.tar.gz.sig +0 -0
  331. metadata +47 -19
  332. metadata.gz.sig +0 -0
  333. data/vendor/gems/dependency_detection-0.0.1.build/LICENSE +0 -5
data/.travis.yml CHANGED
@@ -4,6 +4,7 @@ rvm:
4
4
  - ree
5
5
  - 1.9.2
6
6
  - 1.9.3
7
+ - 2.0.0
7
8
  - jruby-19mode
8
9
  - jruby-18mode
9
10
 
data/CHANGELOG CHANGED
@@ -1,6 +1,22 @@
1
1
 
2
2
  # New Relic Ruby Agent Release Notes #
3
3
 
4
+ ## v3.6.0 ##
5
+
6
+ * Sidekiq supprt
7
+
8
+ The Ruby agent now supports the Sidekiq background job framework. Traces from
9
+ Sidekiq jobs will automatically show up in the Background tasks on New Relic
10
+ similar to Resque and Delayed::Job tasks.
11
+
12
+ * Experimental Rainbows! support
13
+
14
+ The Ruby agent now automatically detects and instruments the Rainbows! web
15
+ server. This support is considered experimental at present, and has not been
16
+ tested with all dispatch modes.
17
+
18
+ Thanks to Joseph Chen for the contribution.
19
+
4
20
  ## v3.5.8 ##
5
21
 
6
22
  * Key Transactions
data/LICENSE CHANGED
@@ -23,22 +23,22 @@ See https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt
23
23
  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24
24
  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25
25
 
26
- It also includes source derived from 'okjson' by Keith Rarick, distributed
27
- under the MIT license.
26
+ It includes source derived from 'okjson' by Keith Rarick, distributed under the
27
+ MIT license.
28
28
  See https://github.com/kr/okjson/blob/bdd1113/okjson.rb#L3-21
29
29
 
30
30
  Copyright 2011, 2012 Keith Rarick
31
-
31
+
32
32
  Permission is hereby granted, free of charge, to any person obtaining a copy
33
33
  of this software and associated documentation files (the "Software"), to deal
34
34
  in the Software without restriction, including without limitation the rights
35
35
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
36
36
  copies of the Software, and to permit persons to whom the Software is
37
37
  furnished to do so, subject to the following conditions:
38
-
38
+
39
39
  The above copyright notice and this permission notice shall be included in
40
40
  all copies or substantial portions of the Software.
41
-
41
+
42
42
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
43
43
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
44
44
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -47,8 +47,72 @@ See https://github.com/kr/okjson/blob/bdd1113/okjson.rb#L3-21
47
47
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
48
48
  THE SOFTWARE.
49
49
 
50
+ It includes source derived from 'system_timer' by David Vollbracht & Philippe
51
+ Hanrigou, distributed under Ruby's license terms.
52
+
53
+ Copyright: (C) 2008 David Vollbracht & Philippe Hanrigou
54
+
55
+ Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.co.jp>.
56
+ You can redistribute it and/or modify it under either the terms of the GPL
57
+ (see COPYING.txt file), or the conditions below:
58
+
59
+ 1. You may make and give away verbatim copies of the source form of the
60
+ software without restriction, provided that you duplicate all of the
61
+ original copyright notices and associated disclaimers.
62
+
63
+ 2. You may modify your copy of the software in any way, provided that
64
+ you do at least ONE of the following:
65
+
66
+ a) place your modifications in the Public Domain or otherwise
67
+ make them Freely Available, such as by posting said
68
+ modifications to Usenet or an equivalent medium, or by allowing
69
+ the author to include your modifications in the software.
70
+
71
+ b) use the modified software only within your corporation or
72
+ organization.
73
+
74
+ c) rename any non-standard executables so the names do not conflict
75
+ with standard executables, which must also be provided.
76
+
77
+ d) make other distribution arrangements with the author.
78
+
79
+ 3. You may distribute the software in object code or executable
80
+ form, provided that you do at least ONE of the following:
81
+
82
+ a) distribute the executables and library files of the software,
83
+ together with instructions (in the manual page or equivalent)
84
+ on where to get the original distribution.
85
+
86
+ b) accompany the distribution with the machine-readable source of
87
+ the software.
88
+
89
+ c) give non-standard executables non-standard names, with
90
+ instructions on where to get the original software distribution.
91
+
92
+ d) make other distribution arrangements with the author.
93
+
94
+ 4. You may modify and include the part of the software into any other
95
+ software (possibly commercial). But some files in the distribution
96
+ are not written by the author, so that they are not under this terms.
97
+
98
+ They are gc.c(partly), utils.c(partly), regex.[ch], st.[ch] and some
99
+ files under the ./missing directory. See each file for the copying
100
+ condition.
101
+
102
+ 5. The scripts and library files supplied as input to or produced as
103
+ output from the software do not automatically fall under the
104
+ copyright of the software, but belong to whomever generated them,
105
+ and may be sold commercially, and may be aggregated with this
106
+ software.
107
+
108
+ 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
109
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
110
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
111
+ PURPOSE.
112
+
113
+
50
114
  All other components of this product are
51
- Copyright (c) 2008-2012 New Relic, Inc. All rights reserved.
115
+ Copyright (c) 2008-2013 New Relic, Inc. All rights reserved.
52
116
 
53
117
  Certain inventions disclosed in this file may be claimed within
54
118
  patents owned or patent applications filed by New Relic, Inc. or third
data/init.rb CHANGED
@@ -1,3 +1,7 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
1
5
  # This is the initialization for the New Relic Ruby Agent when used as
2
6
  # a plugin
3
7
  require 'new_relic/control'
data/install.rb CHANGED
@@ -1,3 +1,7 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
1
5
  if __FILE__ == $0 || $0 =~ /script\/plugin/
2
6
  $LOAD_PATH << File.expand_path(File.join(File.dirname(__FILE__), 'lib'))
3
7
  require 'new_relic/command'
@@ -1,3 +1,7 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
1
5
  path = File.expand_path('../vendor/gems/dependency_detection-0.0.1.build/lib', File.dirname(__FILE__))
2
6
  $LOAD_PATH << path unless $LOAD_PATH.include?(path)
3
7
  require 'dependency_detection'
@@ -1,3 +1,7 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
1
5
  unless defined?(NewRelic) && defined?(NewRelic::MetricParser)
2
6
  vendored_metric_parser = File.expand_path('../../vendor/gems/metric_parser-0.1.0.pre1/lib/', __FILE__)
3
7
  $:.unshift vendored_metric_parser unless $:.include?(vendored_metric_parser)
@@ -1,3 +1,7 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
1
5
  require 'socket'
2
6
  require 'net/https'
3
7
  require 'net/http'
@@ -143,8 +147,7 @@ module NewRelic
143
147
 
144
148
  metrics << metric
145
149
  metrics.each do |name|
146
- stats = stats_engine.get_stats_no_scope(name)
147
- stats.record_data_point(duration_seconds)
150
+ NewRelic::Agent.record_metric(name, duration_seconds)
148
151
  end
149
152
 
150
153
  if is_error
@@ -451,7 +454,7 @@ module NewRelic
451
454
  # requests, we need to wait until the children are forked
452
455
  # before connecting, otherwise the parent process sends odd data
453
456
  def using_forking_dispatcher?
454
- log_if([:passenger, :unicorn].include?(Agent.config[:dispatcher]),
457
+ log_if([:passenger, :rainbows, :unicorn].include?(Agent.config[:dispatcher]),
455
458
  :info, "Connecting workers after forking.")
456
459
  end
457
460
 
@@ -880,8 +883,8 @@ module NewRelic
880
883
  # transmission later
881
884
  def harvest_and_send_timeslice_data
882
885
  now = Time.now
883
- NewRelic::Agent.instance.stats_engine.get_stats_no_scope('Supportability/invoke_remote').record_data_point(0.0)
884
- NewRelic::Agent.instance.stats_engine.get_stats_no_scope('Supportability/invoke_remote/metric_data').record_data_point(0.0)
886
+ NewRelic::Agent.record_metric('Supportability/invoke_remote', 0.0)
887
+ NewRelic::Agent.record_metric('Supportability/invoke_remote/metric_data', 0.0)
885
888
  harvest_timeslice_data(now)
886
889
  begin
887
890
  @service.metric_data(@last_harvest_time.to_f,
@@ -1028,8 +1031,8 @@ module NewRelic
1028
1031
  raise e
1029
1032
  ensure
1030
1033
  NewRelic::Agent::Database.close_connections unless forked?
1031
- @stats_engine.get_stats_no_scope('Supportability/Harvest') \
1032
- .record_data_point((Time.now - now).to_f)
1034
+ duration = (Time.now - now).to_f
1035
+ @stats_engine.record_metrics('Supportability/Harvest', duration)
1033
1036
  end
1034
1037
 
1035
1038
  # This method contacts the server to send remaining data and
@@ -1,3 +1,7 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
1
5
  require 'logger'
2
6
 
3
7
  module NewRelic
@@ -1,3 +1,7 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
1
5
  require 'logger'
2
6
  require 'fileutils'
3
7
 
@@ -1,3 +1,7 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
1
5
  module NewRelic
2
6
  module Agent
3
7
  # This class contains the configuration data for setting up RUM
@@ -1,3 +1,7 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
1
5
  require 'base64'
2
6
  require 'new_relic/agent/beacon_configuration'
3
7
  module NewRelic
@@ -1,3 +1,7 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
1
5
  module NewRelic
2
6
  module Agent
3
7
  # This module supports calculation of actual time spent processing requests over the course of
@@ -90,7 +94,9 @@ module NewRelic
90
94
 
91
95
  busy = busy / time_window
92
96
 
93
- instance_busy_stats.record_data_point busy if Agent.config[:report_instance_busy]
97
+ if Agent.config[:report_instance_busy]
98
+ NewRelic::Agent.record_metric('Instance/Busy', busy)
99
+ end
94
100
  @harvest_start = t0
95
101
  end
96
102
 
@@ -101,11 +107,6 @@ module NewRelic
101
107
  Time.now
102
108
  end
103
109
 
104
- def instance_busy_stats
105
- # Late binding on the Instance/busy stats
106
- NewRelic::Agent.agent.stats_engine.get_stats_no_scope 'Instance/Busy'
107
- end
108
-
109
110
  self.reset
110
111
  end
111
112
  end
@@ -1,3 +1,7 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
1
5
  # This class is used by NewRelic::Agent.set_sql_obfuscator to chain multiple
2
6
  # obfuscation blocks when not using the default :replace action
3
7
  class NewRelic::ChainedCall
@@ -1,3 +1,7 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
1
5
  module NewRelic
2
6
  module Agent
3
7
  module Configuration
@@ -1,3 +1,7 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
1
5
  module NewRelic
2
6
  module Agent
3
7
  module Configuration
@@ -1,3 +1,7 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
1
5
  require 'forwardable'
2
6
  require 'new_relic/agent/configuration/defaults'
3
7
  require 'new_relic/agent/configuration/mask_defaults'
@@ -1,3 +1,7 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
1
5
  module NewRelic
2
6
  module Agent
3
7
  module Configuration
@@ -1,3 +1,7 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
1
5
  module NewRelic
2
6
  module Agent
3
7
  module Configuration
@@ -1,3 +1,7 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
1
5
  require 'new_relic/agent/configuration'
2
6
 
3
7
  module NewRelic
@@ -7,7 +11,7 @@ module NewRelic
7
11
  attr_accessor :file_path
8
12
 
9
13
  def initialize(path, env)
10
- ::NewRelic::Agent.logger.debug("Reading configuration from #{path}")
14
+ ::NewRelic::Agent.logger.info("Reading configuration from #{path}")
11
15
 
12
16
  config = {}
13
17
  begin
@@ -1,3 +1,7 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
1
5
  require 'new_relic/agent/configuration/manager'
2
6
 
3
7
  # The agent's configuration is accessed through a configuration object exposed
@@ -1,3 +1,7 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
1
5
  require 'new_relic/rack/agent_hooks'
2
6
  require 'new_relic/agent/thread'
3
7
 
@@ -24,7 +28,7 @@ module NewRelic
24
28
  # Same for the referring transaction guid
25
29
  THREAD_TXN_KEY = :newrelic_cross_app_referring_txn_info
26
30
 
27
-
31
+
28
32
  # Functions for obfuscating and unobfuscating header values
29
33
  module EncodingFunctions
30
34
 
@@ -149,7 +153,7 @@ module NewRelic
149
153
 
150
154
  def cross_app_enabled?
151
155
  NewRelic::Agent.config[:cross_process_id] &&
152
- (NewRelic::Agent.config[:"cross_application_tracer.enabled"] ||
156
+ (NewRelic::Agent.config[:"cross_application_tracer.enabled"] ||
153
157
  NewRelic::Agent.config[:cross_application_tracing])
154
158
  end
155
159
 
@@ -167,14 +171,9 @@ module NewRelic
167
171
  end
168
172
 
169
173
  def build_payload(timings, content_length)
170
-
171
- # FIXME The transaction name might not be properly encoded. use a json generator
172
- # For now we just handle quote characters by dropping them
173
- transaction_name = timings.transaction_name.gsub(/["']/, "")
174
-
175
174
  payload = [
176
175
  NewRelic::Agent.config[:cross_process_id],
177
- transaction_name,
176
+ timings.transaction_name,
178
177
  timings.queue_time_in_seconds.to_f,
179
178
  timings.app_time_in_seconds.to_f,
180
179
  content_length,
@@ -200,8 +199,8 @@ module NewRelic
200
199
  end
201
200
 
202
201
  def set_metrics(id, timings)
203
- metric = NewRelic::Agent.instance.stats_engine.get_stats_no_scope("ClientApplication/#{id}/all")
204
- metric.record_data_point(timings.app_time_in_seconds)
202
+ metric_name = "ClientApplication/#{id}/all"
203
+ NewRelic::Agent.record_metric(metric_name, timings.app_time_in_seconds)
205
204
  end
206
205
 
207
206
  def decoded_id(request)
@@ -1,5 +1,7 @@
1
1
  # -*- ruby -*-
2
- #encoding: utf-8
2
+ # encoding: utf-8
3
+ # This file is distributed under New Relic's license terms.
4
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
3
5
 
4
6
  module NewRelic
5
7
  module Agent
@@ -72,9 +74,8 @@ module NewRelic
72
74
  metrics = metrics_for( http, request, response )
73
75
  scoped_metric = metrics.pop
74
76
 
75
- # Report the metrics
76
- metrics.each { |metric| get_metric(metric).trace_call(duration) }
77
- get_scoped_metric( scoped_metric ).trace_call( duration )
77
+ stats_engine.record_metrics(metrics, duration)
78
+ stats_engine.record_metrics(scoped_metric, duration, :scoped => true)
78
79
 
79
80
  # Add TT custom parameters
80
81
  stats_engine.rename_scope_segment( scoped_metric )
@@ -135,7 +136,7 @@ module NewRelic
135
136
  end
136
137
 
137
138
 
138
- # Return the set of metrics (NewRelic::MethodTraceStats objects) that correspond to
139
+ # Return the set of metric names that correspond to
139
140
  # the given +request+ and +response+.
140
141
  def metrics_for( http, request, response )
141
142
  metrics = common_metrics( http )
@@ -240,19 +241,6 @@ module NewRelic
240
241
  end
241
242
 
242
243
 
243
- # Convenience function for fetching the metric associated with +metric_name+.
244
- def get_metric( metric_name )
245
- stats_engine.get_stats_no_scope( metric_name )
246
- end
247
-
248
-
249
- # Convenience function for fetching the scoped metric associated with +metric_name+.
250
- def get_scoped_metric( metric_name )
251
- # Default is to use the metric_name itself as the scope, which is what we want
252
- stats_engine.get_stats( metric_name )
253
- end
254
-
255
-
256
244
  # Fetch a reference to the stats engine.
257
245
  def stats_engine
258
246
  NewRelic::Agent.instance.stats_engine