newrelic_rpm 3.7.2.195 → 3.7.3.199

Sign up to get free protection for your applications and to get access to all the features.
Files changed (374) hide show
  1. data.tar.gz.sig +0 -0
  2. data/CHANGELOG +25 -1
  3. data/Rakefile +7 -0
  4. data/lib/new_relic/agent/agent.rb +19 -13
  5. data/lib/new_relic/agent/configuration/default_source.rb +23 -0
  6. data/lib/new_relic/agent/cross_app_tracing.rb +2 -0
  7. data/lib/new_relic/agent/database.rb +123 -94
  8. data/lib/new_relic/agent/database/obfuscation_helpers.rb +37 -0
  9. data/lib/new_relic/agent/database/obfuscator.rb +65 -0
  10. data/lib/new_relic/agent/database/postgres_explain_obfuscator.rb +49 -0
  11. data/lib/new_relic/agent/datastores/mongo/metric_translator.rb +2 -1
  12. data/lib/new_relic/agent/instrumentation/action_controller_subscriber.rb +1 -1
  13. data/lib/new_relic/agent/instrumentation/active_record_helper.rb +9 -8
  14. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +1 -38
  15. data/lib/new_relic/agent/instrumentation/rubyprof.rb +26 -0
  16. data/lib/new_relic/agent/instrumentation/typhoeus.rb +3 -2
  17. data/lib/new_relic/agent/pipe_channel_manager.rb +45 -12
  18. data/lib/new_relic/agent/pipe_service.rb +14 -8
  19. data/lib/new_relic/agent/request_sampler.rb +63 -6
  20. data/lib/new_relic/agent/sampler_collection.rb +5 -2
  21. data/lib/new_relic/agent/shim_agent.rb +1 -1
  22. data/lib/new_relic/agent/transaction.rb +41 -22
  23. data/lib/new_relic/agent/transaction_sample_builder.rb +0 -4
  24. data/lib/new_relic/agent/transaction_sampler.rb +2 -5
  25. data/lib/new_relic/agent/transaction_state.rb +43 -11
  26. data/lib/new_relic/agent/vm.rb +32 -0
  27. data/lib/new_relic/agent/vm/jruby_vm.rb +40 -0
  28. data/lib/new_relic/agent/vm/monotonic_gc_profiler.rb +36 -0
  29. data/lib/new_relic/agent/vm/mri_vm.rb +86 -0
  30. data/lib/new_relic/agent/vm/rubinius_vm.rb +40 -0
  31. data/lib/new_relic/agent/vm/snapshot.rb +16 -0
  32. data/lib/new_relic/control.rb +0 -6
  33. data/lib/new_relic/language_support.rb +20 -0
  34. data/lib/new_relic/latest_changes.rb +41 -12
  35. data/lib/new_relic/rack/developer_mode.rb +8 -1
  36. data/lib/new_relic/rack/transaction_reset.rb +1 -1
  37. data/lib/new_relic/transaction_sample.rb +0 -13
  38. data/lib/new_relic/version.rb +1 -1
  39. data/lib/tasks/install.rake +5 -0
  40. data/newrelic_rpm.gemspec +2 -1
  41. data/test/active_record_fixtures.rb +7 -9
  42. data/test/agent_helper.rb +11 -50
  43. data/test/environments/lib/environments/runner.rb +3 -5
  44. data/test/environments/rails40/Gemfile +12 -3
  45. data/test/environments/rails41/Gemfile +34 -0
  46. data/test/environments/rails41/Rakefile +11 -0
  47. data/test/environments/rails41/config/application.rb +18 -0
  48. data/test/environments/rails41/config/boot.rb +10 -0
  49. data/test/environments/rails41/config/database.yml +26 -0
  50. data/test/environments/rails41/config/environment.rb +6 -0
  51. data/test/environments/rails41/db/schema.rb +5 -0
  52. data/test/fixtures/cross_agent_tests/README.md +12 -0
  53. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/basic_where.colon_obfuscated.txt +3 -0
  54. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/basic_where.explain.txt +3 -0
  55. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/basic_where.obfuscated.txt +3 -0
  56. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/basic_where.query.txt +1 -0
  57. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/current_date.colon_obfuscated.txt +2 -0
  58. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/current_date.explain.txt +2 -0
  59. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/current_date.obfuscated.txt +2 -0
  60. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/current_date.query.txt +1 -0
  61. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/date.colon_obfuscated.txt +2 -0
  62. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/date.explain.txt +2 -0
  63. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/date.obfuscated.txt +2 -0
  64. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/date.query.txt +1 -0
  65. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/embedded_newline.colon_obfuscated.txt +2 -0
  66. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/embedded_newline.explain.txt +3 -0
  67. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/embedded_newline.obfuscated.txt +2 -0
  68. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/embedded_newline.query.txt +1 -0
  69. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/embedded_quote.colon_obfuscated.txt +2 -0
  70. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/embedded_quote.explain.txt +2 -0
  71. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/embedded_quote.obfuscated.txt +2 -0
  72. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/embedded_quote.query.txt +1 -0
  73. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/floating_point.colon_obfuscated.txt +2 -0
  74. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/floating_point.explain.txt +2 -0
  75. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/floating_point.obfuscated.txt +2 -0
  76. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/floating_point.query.txt +1 -0
  77. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/function_with_strings.colon_obfuscated.txt +5 -0
  78. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/function_with_strings.explain.txt +5 -0
  79. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/function_with_strings.obfuscated.txt +5 -0
  80. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/function_with_strings.query.txt +1 -0
  81. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/quote_in_table_name.colon_obfuscated.txt +2 -0
  82. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/quote_in_table_name.explain.txt +2 -0
  83. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/quote_in_table_name.obfuscated.txt +2 -0
  84. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/quote_in_table_name.query.txt +1 -0
  85. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/subplan.colon_obfuscated.txt +5 -0
  86. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/subplan.explain.txt +5 -0
  87. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/subplan.obfuscated.txt +5 -0
  88. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/subplan.query.txt +1 -0
  89. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_integer.colon_obfuscated.txt +2 -0
  90. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_integer.explain.txt +2 -0
  91. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_integer.obfuscated.txt +2 -0
  92. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_integer.query.txt +1 -0
  93. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_regex_chars.colon_obfuscated.txt +2 -0
  94. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_regex_chars.explain.txt +2 -0
  95. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_regex_chars.obfuscated.txt +2 -0
  96. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_regex_chars.query.txt +1 -0
  97. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_substring.colon_obfuscated.txt +3 -0
  98. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_substring.explain.txt +3 -0
  99. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_substring.obfuscated.txt +3 -0
  100. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_substring.query.txt +1 -0
  101. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case1.colon_obfuscated.txt +2 -0
  102. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case1.explain.txt +2 -0
  103. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case1.obfuscated.txt +2 -0
  104. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case1.query.txt +1 -0
  105. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case2.colon_obfuscated.txt +2 -0
  106. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case2.explain.txt +3 -0
  107. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case2.obfuscated.txt +2 -0
  108. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case2.query.txt +1 -0
  109. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case3.colon_obfuscated.txt +2 -0
  110. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case3.explain.txt +2 -0
  111. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case3.obfuscated.txt +2 -0
  112. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case3.query.txt +1 -0
  113. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case4.colon_obfuscated.txt +2 -0
  114. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case4.explain.txt +2 -0
  115. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case4.obfuscated.txt +2 -0
  116. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case4.query.txt +1 -0
  117. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case5.colon_obfuscated.txt +2 -0
  118. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case5.explain.txt +2 -0
  119. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case5.obfuscated.txt +2 -0
  120. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case5.query.txt +1 -0
  121. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case6.colon_obfuscated.txt +2 -0
  122. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case6.explain.txt +2 -0
  123. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case6.obfuscated.txt +2 -0
  124. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case6.query.txt +1 -0
  125. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case7.colon_obfuscated.txt +2 -0
  126. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case7.explain.txt +2 -0
  127. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case7.obfuscated.txt +2 -0
  128. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case7.query.txt +1 -0
  129. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case8.colon_obfuscated.txt +2 -0
  130. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case8.explain.txt +2 -0
  131. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case8.obfuscated.txt +2 -0
  132. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case8.query.txt +1 -0
  133. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case9.colon_obfuscated.txt +2 -0
  134. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case9.explain.txt +2 -0
  135. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case9.obfuscated.txt +2 -0
  136. data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case9.query.txt +1 -0
  137. data/test/fixtures/cross_agent_tests/rules.json +165 -0
  138. data/test/fixtures/cross_agent_tests/rum_client_config.json +142 -0
  139. data/test/fixtures/cross_agent_tests/rum_cookie.json +17 -0
  140. data/test/fixtures/cross_agent_tests/rum_footer_insertion_location/close-body-in-comment.html +10 -0
  141. data/test/fixtures/cross_agent_tests/rum_footer_insertion_location/dynamic-iframe.html +19 -0
  142. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/basic.html +10 -0
  143. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/body_with_attributes.html +3 -0
  144. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/charset_tag.html +11 -0
  145. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/charset_tag_after_x_ua_tag.html +11 -0
  146. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/charset_tag_before_x_ua_tag.html +11 -0
  147. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/charset_tag_with_spaces.html +11 -0
  148. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/comments1.html +24 -0
  149. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/comments2.html +24 -0
  150. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/content_type_charset_tag.html +11 -0
  151. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/content_type_charset_tag_after_x_ua_tag.html +11 -0
  152. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/content_type_charset_tag_before_x_ua_tag.html +11 -0
  153. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/gt_in_quotes1.html +27 -0
  154. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/gt_in_quotes2.html +24 -0
  155. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/gt_in_quotes_mismatch.html +24 -0
  156. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/gt_in_single_quotes1.html +25 -0
  157. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/gt_in_single_quotes_mismatch.html +25 -0
  158. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/head_with_attributes.html +10 -0
  159. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/incomplete_non_meta_tags.html +10 -0
  160. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/no_header.html +7 -0
  161. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/no_html_and_no_header.html +3 -0
  162. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/no_start_header.html +9 -0
  163. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/script1.html +19 -0
  164. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/script2.html +17 -0
  165. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/x_ua_meta_tag.html +10 -0
  166. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/x_ua_meta_tag_multiline.html +11 -0
  167. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/x_ua_meta_tag_spaces_around_equals.html +10 -0
  168. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/x_ua_meta_tag_with_others.html +11 -0
  169. data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/x_ua_meta_tag_with_spaces.html +10 -0
  170. data/test/fixtures/cross_agent_tests/sql_parsing.json +55 -0
  171. data/test/fixtures/cross_agent_tests/url_clean.json +15 -0
  172. data/test/fixtures/cross_agent_tests/url_domain_extraction.json +35 -0
  173. data/test/flaky_proxy/README.md +91 -33
  174. data/test/flaky_proxy/lib/flaky_proxy.rb +1 -0
  175. data/test/flaky_proxy/lib/flaky_proxy/http_message.rb +2 -0
  176. data/test/flaky_proxy/lib/flaky_proxy/proxy.rb +19 -4
  177. data/test/flaky_proxy/lib/flaky_proxy/rule.rb +13 -16
  178. data/test/flaky_proxy/lib/flaky_proxy/rule_set.rb +10 -2
  179. data/test/flaky_proxy/lib/flaky_proxy/sequence.rb +14 -0
  180. data/test/helpers/file_searching.rb +1 -1
  181. data/test/intentional_fail.rb +1 -1
  182. data/test/multiverse/lib/multiverse/suite.rb +26 -3
  183. data/test/multiverse/suites/active_record/Envfile +1 -1
  184. data/test/multiverse/suites/active_record/ar_method_aliasing.rb +1 -1
  185. data/test/multiverse/suites/agent_only/audit_log_test.rb +1 -1
  186. data/test/multiverse/suites/agent_only/collector_exception_handling_test.rb +1 -1
  187. data/test/multiverse/suites/agent_only/cross_application_tracing_test.rb +1 -1
  188. data/test/multiverse/suites/agent_only/encoding_handling_test.rb +1 -1
  189. data/test/multiverse/suites/agent_only/harvest_timestamps_test.rb +1 -1
  190. data/test/multiverse/suites/agent_only/http_response_code_test.rb +1 -1
  191. data/test/multiverse/suites/agent_only/key_transactions_test.rb +1 -1
  192. data/test/multiverse/suites/agent_only/logging_test.rb +1 -1
  193. data/test/multiverse/suites/agent_only/marshaling_test.rb +1 -1
  194. data/test/multiverse/suites/agent_only/pipe_manager_test.rb +1 -1
  195. data/test/multiverse/suites/agent_only/rename_rule_test.rb +1 -1
  196. data/test/multiverse/suites/agent_only/rum_instrumentation_test.rb +1 -1
  197. data/test/multiverse/suites/agent_only/service_timeout_test.rb +1 -1
  198. data/test/multiverse/suites/agent_only/set_transaction_name_test.rb +1 -1
  199. data/test/multiverse/suites/agent_only/ssl_test.rb +1 -1
  200. data/test/multiverse/suites/agent_only/start_up_test.rb +1 -1
  201. data/test/multiverse/suites/agent_only/thread_profiling_test.rb +1 -1
  202. data/test/multiverse/suites/agent_only/xray_sessions_test.rb +1 -1
  203. data/test/multiverse/suites/bare/standalone_instrumentation_test.rb +1 -1
  204. data/test/multiverse/suites/config_file_loading/config_file_loading_test.rb +1 -1
  205. data/test/multiverse/suites/curb/curb_test.rb +1 -1
  206. data/test/multiverse/suites/datamapper/datamapper_test.rb +1 -1
  207. data/test/multiverse/suites/deferred_instrumentation/sinatra_test.rb +1 -1
  208. data/test/multiverse/suites/excon/excon_test.rb +1 -1
  209. data/test/multiverse/suites/httpclient/httpclient_test.rb +1 -1
  210. data/test/multiverse/suites/mongo/helpers/mongo_operation_tests.rb +7 -3
  211. data/test/multiverse/suites/mongo/mongo_instrumentation_test.rb +1 -1
  212. data/test/multiverse/suites/mongo/mongo_unsupported_version_test.rb +2 -2
  213. data/test/multiverse/suites/net_http/net_http_test.rb +1 -1
  214. data/test/multiverse/suites/padrino/Envfile +1 -1
  215. data/test/multiverse/suites/padrino/padrino_test.rb +1 -1
  216. data/test/multiverse/suites/rails/Envfile +10 -0
  217. data/test/multiverse/suites/rails/request_statistics_test.rb +59 -6
  218. data/test/multiverse/suites/rails/view_instrumentation_test.rb +1 -0
  219. data/test/multiverse/suites/resque/instrumentation_test.rb +1 -1
  220. data/test/multiverse/suites/sequel/sequel_instrumentation_test.rb +5 -18
  221. data/test/multiverse/suites/sequel/sequel_safety_test.rb +1 -1
  222. data/test/multiverse/suites/sidekiq/sidekiq_instrumentation_test.rb +1 -1
  223. data/test/multiverse/suites/sinatra/ignoring_test.rb +1 -1
  224. data/test/multiverse/suites/sinatra/sinatra_classic_test.rb +1 -1
  225. data/test/multiverse/suites/sinatra/sinatra_error_tracing_test.rb +1 -1
  226. data/test/multiverse/suites/sinatra/sinatra_metric_explosion_test.rb +1 -1
  227. data/test/multiverse/suites/sinatra/sinatra_modular_test.rb +1 -1
  228. data/test/multiverse/suites/sinatra/sinatra_routes_test.rb +1 -1
  229. data/test/multiverse/suites/typhoeus/typhoeus_test.rb +36 -2
  230. data/test/new_relic/FAKECHANGELOG +21 -0
  231. data/test/new_relic/agent/agent/connect_test.rb +1 -1
  232. data/test/new_relic/agent/agent/start_test.rb +1 -1
  233. data/test/new_relic/agent/agent/start_worker_thread_test.rb +1 -1
  234. data/test/new_relic/agent/agent_logger_test.rb +1 -1
  235. data/test/new_relic/agent/agent_test.rb +14 -8
  236. data/test/new_relic/agent/apdex_from_server_test.rb +1 -1
  237. data/test/new_relic/agent/audit_logger_test.rb +1 -1
  238. data/test/new_relic/agent/autostart_test.rb +1 -1
  239. data/test/new_relic/agent/browser_token_test.rb +1 -1
  240. data/test/new_relic/agent/busy_calculator_test.rb +1 -1
  241. data/test/new_relic/agent/commands/agent_command_router_test.rb +1 -1
  242. data/test/new_relic/agent/commands/agent_command_test.rb +1 -1
  243. data/test/new_relic/agent/commands/thread_profiler_session_test.rb +2 -2
  244. data/test/new_relic/agent/commands/xray_session_collection_test.rb +1 -1
  245. data/test/new_relic/agent/commands/xray_session_test.rb +1 -1
  246. data/test/new_relic/agent/configuration/default_source_test.rb +1 -1
  247. data/test/new_relic/agent/configuration/environment_source_test.rb +1 -1
  248. data/test/new_relic/agent/configuration/manager_test.rb +1 -1
  249. data/test/new_relic/agent/configuration/orphan_configuration_test.rb +1 -1
  250. data/test/new_relic/agent/configuration/server_source_test.rb +1 -1
  251. data/test/new_relic/agent/configuration/yaml_source_test.rb +1 -1
  252. data/test/new_relic/agent/cpu_sampler_test.rb +1 -1
  253. data/test/new_relic/agent/cross_app_monitor_test.rb +3 -3
  254. data/test/new_relic/agent/cross_app_tracing_test.rb +1 -1
  255. data/test/new_relic/agent/database/postgres_explain_obfuscator_test.rb +34 -0
  256. data/test/new_relic/agent/database_test.rb +192 -5
  257. data/test/new_relic/agent/datastores/mongo/metric_generator_test.rb +1 -1
  258. data/test/new_relic/agent/datastores/mongo/metric_translator_test.rb +11 -1
  259. data/test/new_relic/agent/datastores/mongo/obfuscator_test.rb +1 -1
  260. data/test/new_relic/agent/datastores/mongo/statement_formatter_test.rb +1 -1
  261. data/test/new_relic/agent/error_collector/notice_error_test.rb +1 -1
  262. data/test/new_relic/agent/error_collector_test.rb +1 -1
  263. data/test/new_relic/agent/event_listener_test.rb +1 -1
  264. data/test/new_relic/agent/harvester_test.rb +1 -1
  265. data/test/new_relic/agent/http_clients/uri_util_test.rb +1 -1
  266. data/test/new_relic/agent/instrumentation/action_controller_subscriber_test.rb +1 -1
  267. data/test/new_relic/agent/instrumentation/action_view_subscriber_test.rb +1 -1
  268. data/test/new_relic/agent/instrumentation/active_record_helper_test.rb +4 -4
  269. data/test/new_relic/agent/instrumentation/active_record_subscriber_test.rb +2 -2
  270. data/test/new_relic/agent/instrumentation/active_record_test.rb +385 -0
  271. data/test/new_relic/agent/instrumentation/controller_instrumentation_test.rb +1 -1
  272. data/test/new_relic/agent/instrumentation/instrumentation_test.rb +1 -1
  273. data/test/new_relic/agent/instrumentation/metric_frame_test.rb +1 -1
  274. data/test/new_relic/agent/instrumentation/net_instrumentation_test.rb +1 -1
  275. data/test/new_relic/agent/instrumentation/queue_time_test.rb +1 -1
  276. data/test/new_relic/agent/instrumentation/rack_test.rb +1 -1
  277. data/test/new_relic/agent/instrumentation/sinatra/transaction_namer_test.rb +1 -1
  278. data/test/new_relic/agent/instrumentation/sinatra_test.rb +1 -1
  279. data/test/new_relic/agent/instrumentation/task_instrumentation_test.rb +1 -1
  280. data/test/new_relic/agent/javascript_instrumentor_test.rb +3 -3
  281. data/test/new_relic/agent/memcache_instrumentation_test.rb +1 -1
  282. data/test/new_relic/agent/memory_logger_test.rb +1 -1
  283. data/test/new_relic/agent/method_interrobang_test.rb +1 -1
  284. data/test/new_relic/agent/method_tracer/class_methods/add_method_tracer_test.rb +1 -1
  285. data/test/new_relic/agent/method_tracer/instance_methods/trace_execution_scoped_test.rb +1 -1
  286. data/test/new_relic/agent/method_tracer_test.rb +1 -1
  287. data/test/new_relic/agent/method_visibility_test.rb +1 -1
  288. data/test/new_relic/agent/new_relic_service_test.rb +2 -2
  289. data/test/new_relic/agent/obfuscator_test.rb +1 -1
  290. data/test/new_relic/agent/pipe_channel_manager_test.rb +216 -143
  291. data/test/new_relic/agent/pipe_service_test.rb +26 -15
  292. data/test/new_relic/agent/request_sampler_test.rb +65 -18
  293. data/test/new_relic/agent/rpm_agent_test.rb +1 -1
  294. data/test/new_relic/agent/rules_engine_test.rb +1 -1
  295. data/test/new_relic/agent/sampled_buffer_test.rb +1 -1
  296. data/test/new_relic/agent/sampler_collection_test.rb +8 -1
  297. data/test/new_relic/agent/sampler_test.rb +1 -1
  298. data/test/new_relic/agent/shim_agent_test.rb +3 -3
  299. data/test/new_relic/agent/sql_sampler_test.rb +7 -6
  300. data/test/new_relic/agent/stats_engine/gc_profiler_test.rb +1 -1
  301. data/test/new_relic/agent/stats_engine/metric_stats_test.rb +1 -1
  302. data/test/new_relic/agent/stats_engine/samplers_test.rb +1 -1
  303. data/test/new_relic/agent/stats_engine_test.rb +1 -1
  304. data/test/new_relic/agent/stats_hash_test.rb +1 -1
  305. data/test/new_relic/agent/stats_test.rb +1 -1
  306. data/test/new_relic/agent/threading/agent_thread_test.rb +1 -1
  307. data/test/new_relic/agent/threading/backtrace_node_test.rb +1 -1
  308. data/test/new_relic/agent/threading/backtrace_service_test.rb +3 -3
  309. data/test/new_relic/agent/threading/thread_profile_test.rb +1 -1
  310. data/test/new_relic/agent/transaction/developer_mode_sample_buffer_test.rb +1 -1
  311. data/test/new_relic/agent/transaction/force_persist_sample_buffer_test.rb +1 -1
  312. data/test/new_relic/agent/transaction/pop_test.rb +1 -1
  313. data/test/new_relic/agent/transaction/slowest_sample_buffer_test.rb +1 -1
  314. data/test/new_relic/agent/transaction/xray_sample_buffer_test.rb +1 -1
  315. data/test/new_relic/agent/transaction_interrobang_test.rb +1 -1
  316. data/test/new_relic/agent/transaction_sample_builder_test.rb +1 -1
  317. data/test/new_relic/agent/transaction_sampler_test.rb +17 -17
  318. data/test/new_relic/agent/transaction_state_test.rb +61 -6
  319. data/test/new_relic/agent/transaction_test.rb +60 -3
  320. data/test/new_relic/agent/transaction_timings_test.rb +1 -1
  321. data/test/new_relic/agent/vm/monotonic_gc_profiler_test.rb +42 -0
  322. data/test/new_relic/agent/vm/mri_vm_test.rb +35 -0
  323. data/test/new_relic/agent/vm/snapshot_test.rb +8 -0
  324. data/test/new_relic/agent/vm_test.rb +48 -0
  325. data/test/new_relic/agent/worker_loop_test.rb +1 -1
  326. data/test/new_relic/agent_test.rb +1 -1
  327. data/test/new_relic/cli/deployments_test.rb +1 -1
  328. data/test/new_relic/coerce_test.rb +1 -1
  329. data/test/new_relic/collection_helper_test.rb +1 -1
  330. data/test/new_relic/control/class_methods_test.rb +1 -1
  331. data/test/new_relic/control/frameworks/rails_test.rb +1 -1
  332. data/test/new_relic/control_test.rb +1 -1
  333. data/test/new_relic/dependency_detection_test.rb +1 -1
  334. data/test/new_relic/dispatcher_test.rb +1 -1
  335. data/test/new_relic/environment_report_test.rb +1 -1
  336. data/test/new_relic/framework_test.rb +1 -1
  337. data/test/new_relic/http_client_test_cases.rb +1 -1
  338. data/test/new_relic/json_wrapper_test.rb +1 -1
  339. data/test/new_relic/language_support_test.rb +42 -1
  340. data/test/new_relic/latest_changes_test.rb +45 -0
  341. data/test/new_relic/license_test.rb +2 -2
  342. data/test/new_relic/load_test.rb +1 -1
  343. data/test/new_relic/local_environment_test.rb +1 -1
  344. data/test/new_relic/metric_data_test.rb +1 -1
  345. data/test/new_relic/metric_parser/metric_parser_test.rb +1 -1
  346. data/test/new_relic/metric_spec_test.rb +1 -1
  347. data/test/new_relic/multiverse_helpers.rb +0 -27
  348. data/test/new_relic/noticed_error_test.rb +1 -1
  349. data/test/new_relic/rack/agent_hooks_test.rb +1 -1
  350. data/test/new_relic/rack/all_test.rb +1 -1
  351. data/test/new_relic/rack/browser_monitoring_test.rb +2 -2
  352. data/test/new_relic/rack/deferred_instrumentation_test.rb +1 -1
  353. data/test/new_relic/rack/developer_mode_helper_test.rb +1 -1
  354. data/test/new_relic/rack/developer_mode_test.rb +2 -19
  355. data/test/new_relic/rack/error_collector_test.rb +1 -1
  356. data/test/new_relic/rack/transaction_reset_test.rb +1 -1
  357. data/test/new_relic/transaction_analysis/segment_summary_test.rb +1 -1
  358. data/test/new_relic/transaction_analysis_test.rb +1 -1
  359. data/test/new_relic/transaction_sample/composite_segment_test.rb +1 -1
  360. data/test/new_relic/transaction_sample/fake_segment_test.rb +1 -1
  361. data/test/new_relic/transaction_sample/segment_test.rb +2 -2
  362. data/test/new_relic/transaction_sample/summary_segment_test.rb +1 -1
  363. data/test/new_relic/transaction_sample_subtest_test.rb +1 -1
  364. data/test/new_relic/transaction_sample_test.rb +3 -3
  365. data/test/new_relic/version_number_test.rb +1 -1
  366. data/test/performance/lib/performance/instrumentation/stackprof.rb +33 -0
  367. data/test/performance/lib/performance/platform.rb +1 -0
  368. data/test/performance/suites/marshalling.rb +2 -1
  369. data/test/test_helper.rb +33 -3
  370. data/ui/views/newrelic/index.rhtml +2 -2
  371. metadata +169 -31
  372. metadata.gz.sig +0 -0
  373. data/lib/new_relic/control/profiling.rb +0 -29
  374. data/test/new_relic/agent/instrumentation/active_record_instrumentation_test.rb +0 -648
@@ -8,7 +8,7 @@ require File.expand_path(File.join(File.dirname(__FILE__),'..','..','..','ui',
8
8
  'helpers','developer_mode_helper.rb'))
9
9
 
10
10
  ENV['RACK_ENV'] = 'test'
11
- class DeveloperModeTest < MiniTest::Unit::TestCase
11
+ class DeveloperModeTest < Minitest::Test
12
12
  include NewRelic::DeveloperModeHelper
13
13
 
14
14
 
@@ -11,7 +11,7 @@ require 'new_relic/rack/developer_mode'
11
11
 
12
12
  ENV['RACK_ENV'] = 'test'
13
13
 
14
- class DeveloperModeTest < MiniTest::Unit::TestCase
14
+ class DeveloperModeTest < Minitest::Test
15
15
  include Rack::Test::Methods
16
16
  include TransactionSampleTestHelper
17
17
 
@@ -55,7 +55,7 @@ class DeveloperModeTest < MiniTest::Unit::TestCase
55
55
  def test_explain_sql_displays_query_plan
56
56
  sample = @sampler.dev_mode_sample_buffer.samples[0]
57
57
  sql_segment = sample.sql_segments[0]
58
- explain_results = NewRelic::Agent::Database.process_resultset(example_explain_as_hashes)
58
+ explain_results = NewRelic::Agent::Database.process_resultset(dummy_mysql_explain_result, 'mysql')
59
59
 
60
60
  NewRelic::TransactionSample::Segment.any_instance.expects(:explain_sql).returns(explain_results)
61
61
  get "/newrelic/explain_sql?id=#{sample.sample_id}&segment=#{sql_segment.segment_id}"
@@ -65,23 +65,6 @@ class DeveloperModeTest < MiniTest::Unit::TestCase
65
65
  assert last_response.body.include?('Key Length')
66
66
  assert last_response.body.include?('Using index')
67
67
  end
68
-
69
- private
70
-
71
- def example_explain_as_hashes
72
- [{
73
- 'Id' => '1',
74
- 'Select Type' => 'SIMPLE',
75
- 'Table' => 'sandwiches',
76
- 'Type' => 'range',
77
- 'Possible Keys' => 'PRIMARY',
78
- 'Key' => 'PRIMARY',
79
- 'Key Length' => '4',
80
- 'Ref' => '',
81
- 'Rows' => '1',
82
- 'Extra' => 'Using index'
83
- }]
84
- end
85
68
  end
86
69
 
87
70
  else
@@ -8,7 +8,7 @@ require 'rack/test'
8
8
  require 'new_relic/rack/error_collector'
9
9
 
10
10
  module NewRelic::Rack
11
- class ErrorCollectorTest < MiniTest::Unit::TestCase
11
+ class ErrorCollectorTest < Minitest::Test
12
12
  include Rack::Test::Methods
13
13
 
14
14
  class TestApp
@@ -8,7 +8,7 @@ require 'new_relic/agent/transaction_state'
8
8
 
9
9
  module NewRelic
10
10
  module Rack
11
- class TransactionResetTest < MiniTest::Unit::TestCase
11
+ class TransactionResetTest < Minitest::Test
12
12
  class ExampleMiddleware
13
13
  include TransactionReset
14
14
  end
@@ -4,7 +4,7 @@
4
4
 
5
5
  require File.expand_path(File.join(File.dirname(__FILE__),'..', '..','test_helper'))
6
6
  require 'new_relic/transaction_analysis/segment_summary'
7
- class NewRelic::TransactionAnalysis::SegmentSummaryTest < MiniTest::Unit::TestCase
7
+ class NewRelic::TransactionAnalysis::SegmentSummaryTest < Minitest::Test
8
8
 
9
9
  def setup
10
10
  @sample = mock('sample')
@@ -4,7 +4,7 @@
4
4
 
5
5
  require File.expand_path(File.join(File.dirname(__FILE__),'..', 'test_helper'))
6
6
  require 'new_relic/transaction_analysis'
7
- class NewRelic::TransactionAnalysisTest < MiniTest::Unit::TestCase
7
+ class NewRelic::TransactionAnalysisTest < Minitest::Test
8
8
  include NewRelic::TransactionAnalysis
9
9
 
10
10
  # these are mostly stub tests just making sure that the API doesn't
@@ -4,7 +4,7 @@
4
4
 
5
5
  require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'test_helper'))
6
6
  require 'new_relic/transaction_sample/composite_segment'
7
- class NewRelic::TransactionSample::CompositeSegmentTest < MiniTest::Unit::TestCase
7
+ class NewRelic::TransactionSample::CompositeSegmentTest < Minitest::Test
8
8
  def test_composite_segment_creation
9
9
  fake_segment = mock_segment
10
10
  NewRelic::TransactionSample::CompositeSegment.new([fake_segment])
@@ -4,7 +4,7 @@
4
4
 
5
5
  require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'test_helper'))
6
6
  require 'new_relic/transaction_sample/fake_segment'
7
- class NewRelic::TransactionSample::FakeSegmentTest < MiniTest::Unit::TestCase
7
+ class NewRelic::TransactionSample::FakeSegmentTest < Minitest::Test
8
8
  def test_fake_segment_creation
9
9
  NewRelic::TransactionSample::FakeSegment.new(0.1, 'Custom/test/metric', nil)
10
10
  end
@@ -4,7 +4,7 @@
4
4
 
5
5
  require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'test_helper'))
6
6
  require 'new_relic/transaction_sample/segment'
7
- class NewRelic::TransactionSample::SegmentTest < MiniTest::Unit::TestCase
7
+ class NewRelic::TransactionSample::SegmentTest < Minitest::Test
8
8
  def test_segment_creation
9
9
  # basic smoke test
10
10
  s = NewRelic::TransactionSample::Segment.new(Time.now, 'Custom/test/metric', nil)
@@ -314,7 +314,7 @@ class NewRelic::TransactionSample::SegmentTest < MiniTest::Unit::TestCase
314
314
 
315
315
  def test_explain_sql_raising_an_error
316
316
  s = NewRelic::TransactionSample::Segment.new(Time.now, 'Custom/test/metric', nil)
317
- config = mock('config')
317
+ config = { :adapter => 'mysql' }
318
318
  statement = NewRelic::Agent::Database::Statement.new('SELECT')
319
319
  statement.config = config
320
320
  statement.explainer = NewRelic::Agent::Instrumentation::ActiveRecord::EXPLAINER
@@ -4,7 +4,7 @@
4
4
 
5
5
  require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'test_helper'))
6
6
  require 'new_relic/transaction_sample/summary_segment'
7
- class NewRelic::TransactionSample::SummarySegmentTest < MiniTest::Unit::TestCase
7
+ class NewRelic::TransactionSample::SummarySegmentTest < Minitest::Test
8
8
  def test_summary_segment_creation
9
9
  fake_segment = mock_segment
10
10
  NewRelic::TransactionSample::SummarySegment.new(fake_segment)
@@ -2,7 +2,7 @@
2
2
  # This file is distributed under New Relic's license terms.
3
3
  # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
4
 
5
- class NewRelic::TransactionSample::SubTest < MiniTest::Unit::TestCase
5
+ class NewRelic::TransactionSample::SubTest < Minitest::Test
6
6
  def setup
7
7
  @t = NewRelic::TransactionSample.new
8
8
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  require File.expand_path('../../test_helper.rb', __FILE__)
6
6
 
7
- class NewRelic::TransactionSampleTest < MiniTest::Unit::TestCase
7
+ class NewRelic::TransactionSampleTest < Minitest::Test
8
8
  include TransactionSampleTestHelper
9
9
  ::SQL_STATEMENT = "SELECT * from sandwiches WHERE meat='bacon'"
10
10
  ::OBFUSCATED_SQL_STATEMENT = "SELECT * from sandwiches WHERE meat=?"
@@ -13,7 +13,7 @@ class NewRelic::TransactionSampleTest < MiniTest::Unit::TestCase
13
13
  @test_config = { :developer_mode => true }
14
14
  NewRelic::Agent.config.apply_config(@test_config)
15
15
  @connection_stub = Mocha::Mockery.instance.named_mock('connection')
16
- @connection_stub.stubs(:execute).returns([['QUERY RESULT']])
16
+ @connection_stub.stubs(:execute).returns(dummy_mysql_explain_result({'foo' => 'bar'}))
17
17
 
18
18
  NewRelic::Agent::Database.stubs(:get_connection).returns @connection_stub
19
19
  @t = make_sql_transaction(::SQL_STATEMENT, ::SQL_STATEMENT)
@@ -124,7 +124,7 @@ class NewRelic::TransactionSampleTest < MiniTest::Unit::TestCase
124
124
  explanation = segment.params[:explain_plan]
125
125
 
126
126
  assert_kind_of Array, explanation
127
- assert_equal([nil, [["QUERY RESULT"]]], explanation)
127
+ assert_equal([['foo'], [['bar']]], explanation)
128
128
  end
129
129
  end
130
130
  end
@@ -3,7 +3,7 @@
3
3
  # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
4
 
5
5
  require File.expand_path(File.join(File.dirname(__FILE__),'..', 'test_helper'))
6
- class NewRelic::VersionNumberTest < MiniTest::Unit::TestCase
6
+ class NewRelic::VersionNumberTest < Minitest::Test
7
7
 
8
8
  def test_comparison__first
9
9
  versions = %w[1.0.0 0.1.0 0.0.1 10.0.1 1.10.0].map {|s| NewRelic::VersionNumber.new s }
@@ -0,0 +1,33 @@
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
+
5
+ module Performance
6
+ module Instrumentation
7
+ class StackProfProfile < Instrumentor
8
+ platforms :mri_21
9
+
10
+ def self.setup
11
+ require 'tmpdir'
12
+ require 'stackprof'
13
+ end
14
+
15
+ def before(test, test_name)
16
+ @profile_dir = Dir.mktmpdir('stackprof-profile')
17
+ @profile_path = File.join(@profile_dir, "profile.dump")
18
+ StackProf.start
19
+ end
20
+
21
+ def after(test, test_name)
22
+ StackProf.stop
23
+ report = StackProf::Report.new(StackProf.results)
24
+ output_profile_path = artifact_path(test, test_name, "dot")
25
+ File.open(output_profile_path, "w") do |f|
26
+ report.print_graphviz(nil, f)
27
+ end
28
+ @artifacts << output_profile_path
29
+ FileUtils.remove_entry_secure(@profile_dir)
30
+ end
31
+ end
32
+ end
33
+ end
@@ -25,6 +25,7 @@ module Performance
25
25
  when :mri_19 then !jruby? && RUBY_VERSION =~ /^1\.9\./
26
26
  when :mri_193 then !jruby? && RUBY_VERSION =~ /^1\.9\.3/
27
27
  when :mri_20 then !jruby? && RUBY_VERSION =~ /^2\.0\./
28
+ when :mri_21 then !jruby? && RUBY_VERSION =~ /^2\.1\./
28
29
  end
29
30
  end
30
31
 
@@ -135,9 +135,10 @@ class Marshalling < Performance::TestCase
135
135
  :name => "Controller/foo/bar",
136
136
  :type => "Transaction",
137
137
  :duration => rand,
138
- :webDuration => rand,
139
138
  :databaseDuration => rand,
139
+ :databaseCallCount=> rand,
140
140
  :gcCumulative => rand,
141
+ :host => 'lo-calhost',
141
142
  :color => 'blue-green',
142
143
  :shape => 'squarish',
143
144
  :texture => 'sort of lumpy like a bag of frozen peas'
@@ -18,6 +18,10 @@ require 'rake'
18
18
  require 'minitest/autorun'
19
19
  require 'mocha/setup'
20
20
 
21
+ unless defined?(Minitest::Test)
22
+ Minitest::Test = MiniTest::Unit::TestCase
23
+ end
24
+
21
25
  Dir.glob('test/helpers/*').each { |f| require f }
22
26
 
23
27
  Dir.glob(File.join(NEWRELIC_PLUGIN_DIR,'test/helpers/*.rb')).each do |helper|
@@ -156,6 +160,15 @@ def fixture_tcp_socket( response )
156
160
  return socket
157
161
  end
158
162
 
163
+ def cross_agent_tests_dir
164
+ File.expand_path(File.join(File.dirname(__FILE__), 'fixtures', 'cross_agent_tests'))
165
+ end
166
+
167
+ def load_cross_agent_test(name)
168
+ test_file_path = File.join(cross_agent_tests_dir, "#{name}.json")
169
+ data = File.read(test_file_path)
170
+ NewRelic::JSONWrapper.load(data)
171
+ end
159
172
 
160
173
  class ArrayLogDevice
161
174
  def initialize( array=[] )
@@ -190,6 +203,23 @@ ensure
190
203
  NewRelic::Agent.logger = orig_logger
191
204
  end
192
205
 
206
+ def dummy_mysql_explain_result(hash=nil)
207
+ hash ||= {
208
+ 'Id' => '1',
209
+ 'Select Type' => 'SIMPLE',
210
+ 'Table' => 'sandwiches',
211
+ 'Type' => 'range',
212
+ 'Possible Keys' => 'PRIMARY',
213
+ 'Key' => 'PRIMARY',
214
+ 'Key Length' => '4',
215
+ 'Ref' => '',
216
+ 'Rows' => '1',
217
+ 'Extra' => 'Using index'
218
+ }
219
+ explain_result = mock('explain result')
220
+ explain_result.stubs(:each_hash).yields(hash)
221
+ explain_result
222
+ end
193
223
 
194
224
  module TransactionSampleTestHelper
195
225
  module_function
@@ -199,11 +229,11 @@ module TransactionSampleTestHelper
199
229
  sampler.notice_transaction(nil, :jim => "cool")
200
230
  sampler.notice_push_scope "a"
201
231
  explainer = NewRelic::Agent::Instrumentation::ActiveRecord::EXPLAINER
202
- sql.each {|sql_statement| sampler.notice_sql(sql_statement, {:adapter => "test"}, 0, &explainer) }
232
+ sql.each {|sql_statement| sampler.notice_sql(sql_statement, {:adapter => "mysql"}, 0, &explainer) }
203
233
  sleep 0.02
204
234
  yield if block_given?
205
235
  sampler.notice_pop_scope "a"
206
- sampler.notice_scope_empty(stub('txn', :name => '/path', :custom_parameters => {}))
236
+ sampler.notice_scope_empty(stub('txn', :name => '/path', :custom_parameters => {}, :guid => 'a guid'))
207
237
 
208
238
  sampler.last_sample
209
239
  end
@@ -221,7 +251,7 @@ module TransactionSampleTestHelper
221
251
  sampler.notice_sql("SELECT * FROM sandwiches WHERE bread = 'french'", {}, 0)
222
252
  sampler.notice_pop_scope "lew"
223
253
  sampler.notice_pop_scope "Controller/sandwiches/index"
224
- sampler.notice_scope_empty(stub('txn', :name => path, :custom_parameters => {}))
254
+ sampler.notice_scope_empty(stub('txn', :name => path, :custom_parameters => {}, :guid => 'a guid'))
225
255
  sampler.last_sample
226
256
  end
227
257
  end
@@ -35,9 +35,9 @@
35
35
 
36
36
  <%= link_to_if @samples.size > 0, "Clear Transactions (#{@samples.size})", 'reset' %><br/>
37
37
  <%= link_to "List Threads", 'threads' %><br/>
38
- <% if NewRelic::Control.instance.profiling_available? %>
38
+ <% if NewRelic::Agent.config[:'profiling.available'] %>
39
39
  <p><b>Profiling available:</b>
40
- <% if NewRelic::Control.instance.profiling? %>
40
+ <% if NewRelic::Agent.config[:'profiling.enabled'] %>
41
41
  <%= link_to "Stop Profiling", 'profile?stop=true'%>
42
42
  <% else %>
43
43
  <%= link_to "Start Profiling", 'profile?start=true' %>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: newrelic_rpm
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.7.2.195
4
+ version: 3.7.3.199
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,6 +9,7 @@ authors:
9
9
  - Sam Goldstein
10
10
  - Jonan Scheffler
11
11
  - Ben Weintraub
12
+ - Chris Pine
12
13
  autorequire:
13
14
  bindir: bin
14
15
  cert_chain:
@@ -40,7 +41,7 @@ cert_chain:
40
41
  K0ZZTXduQWIrVm1OT2h2MVMrc0poYmpaMzBQS2d6NnZMaFQ2dW5pZUNqTGs5
41
42
  d0dHbWxTSwpZamJudkE5cXJhTExhalNqCi0tLS0tRU5EIENFUlRJRklDQVRF
42
43
  LS0tLS0K
43
- date: 2014-02-18 00:00:00.000000000 Z
44
+ date: 2014-03-04 00:00:00.000000000 Z
44
45
  dependencies:
45
46
  - !ruby/object:Gem::Dependency
46
47
  name: rake
@@ -309,6 +310,9 @@ files:
309
310
  - lib/new_relic/agent/cross_app_monitor.rb
310
311
  - lib/new_relic/agent/cross_app_tracing.rb
311
312
  - lib/new_relic/agent/database.rb
313
+ - lib/new_relic/agent/database/obfuscation_helpers.rb
314
+ - lib/new_relic/agent/database/obfuscator.rb
315
+ - lib/new_relic/agent/database/postgres_explain_obfuscator.rb
312
316
  - lib/new_relic/agent/datastores/mongo.rb
313
317
  - lib/new_relic/agent/datastores/mongo/metric_generator.rb
314
318
  - lib/new_relic/agent/datastores/mongo/metric_translator.rb
@@ -363,6 +367,7 @@ files:
363
367
  - lib/new_relic/agent/instrumentation/rails4/errors.rb
364
368
  - lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb
365
369
  - lib/new_relic/agent/instrumentation/resque.rb
370
+ - lib/new_relic/agent/instrumentation/rubyprof.rb
366
371
  - lib/new_relic/agent/instrumentation/sequel.rb
367
372
  - lib/new_relic/agent/instrumentation/sidekiq.rb
368
373
  - lib/new_relic/agent/instrumentation/sinatra.rb
@@ -415,6 +420,12 @@ files:
415
420
  - lib/new_relic/agent/transaction_sampler.rb
416
421
  - lib/new_relic/agent/transaction_state.rb
417
422
  - lib/new_relic/agent/transaction_timings.rb
423
+ - lib/new_relic/agent/vm.rb
424
+ - lib/new_relic/agent/vm/jruby_vm.rb
425
+ - lib/new_relic/agent/vm/monotonic_gc_profiler.rb
426
+ - lib/new_relic/agent/vm/mri_vm.rb
427
+ - lib/new_relic/agent/vm/rubinius_vm.rb
428
+ - lib/new_relic/agent/vm/snapshot.rb
418
429
  - lib/new_relic/agent/worker_loop.rb
419
430
  - lib/new_relic/cli/command.rb
420
431
  - lib/new_relic/cli/deployments.rb
@@ -433,7 +444,6 @@ files:
433
444
  - lib/new_relic/control/frameworks/sinatra.rb
434
445
  - lib/new_relic/control/instance_methods.rb
435
446
  - lib/new_relic/control/instrumentation.rb
436
- - lib/new_relic/control/profiling.rb
437
447
  - lib/new_relic/control/server_methods.rb
438
448
  - lib/new_relic/delayed_job_injection.rb
439
449
  - lib/new_relic/environment_report.rb
@@ -553,6 +563,134 @@ files:
553
563
  - test/environments/rails40/config/database.yml
554
564
  - test/environments/rails40/config/environment.rb
555
565
  - test/environments/rails40/db/schema.rb
566
+ - test/environments/rails41/Gemfile
567
+ - test/environments/rails41/Rakefile
568
+ - test/environments/rails41/config/application.rb
569
+ - test/environments/rails41/config/boot.rb
570
+ - test/environments/rails41/config/database.yml
571
+ - test/environments/rails41/config/environment.rb
572
+ - test/environments/rails41/db/schema.rb
573
+ - test/fixtures/cross_agent_tests/README.md
574
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/basic_where.colon_obfuscated.txt
575
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/basic_where.explain.txt
576
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/basic_where.obfuscated.txt
577
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/basic_where.query.txt
578
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/current_date.colon_obfuscated.txt
579
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/current_date.explain.txt
580
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/current_date.obfuscated.txt
581
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/current_date.query.txt
582
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/date.colon_obfuscated.txt
583
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/date.explain.txt
584
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/date.obfuscated.txt
585
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/date.query.txt
586
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/embedded_newline.colon_obfuscated.txt
587
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/embedded_newline.explain.txt
588
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/embedded_newline.obfuscated.txt
589
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/embedded_newline.query.txt
590
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/embedded_quote.colon_obfuscated.txt
591
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/embedded_quote.explain.txt
592
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/embedded_quote.obfuscated.txt
593
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/embedded_quote.query.txt
594
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/floating_point.colon_obfuscated.txt
595
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/floating_point.explain.txt
596
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/floating_point.obfuscated.txt
597
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/floating_point.query.txt
598
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/function_with_strings.colon_obfuscated.txt
599
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/function_with_strings.explain.txt
600
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/function_with_strings.obfuscated.txt
601
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/function_with_strings.query.txt
602
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/quote_in_table_name.colon_obfuscated.txt
603
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/quote_in_table_name.explain.txt
604
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/quote_in_table_name.obfuscated.txt
605
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/quote_in_table_name.query.txt
606
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/subplan.colon_obfuscated.txt
607
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/subplan.explain.txt
608
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/subplan.obfuscated.txt
609
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/subplan.query.txt
610
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_integer.colon_obfuscated.txt
611
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_integer.explain.txt
612
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_integer.obfuscated.txt
613
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_integer.query.txt
614
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_regex_chars.colon_obfuscated.txt
615
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_regex_chars.explain.txt
616
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_regex_chars.obfuscated.txt
617
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_regex_chars.query.txt
618
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_substring.colon_obfuscated.txt
619
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_substring.explain.txt
620
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_substring.obfuscated.txt
621
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/where_with_substring.query.txt
622
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case1.colon_obfuscated.txt
623
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case1.explain.txt
624
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case1.obfuscated.txt
625
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case1.query.txt
626
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case2.colon_obfuscated.txt
627
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case2.explain.txt
628
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case2.obfuscated.txt
629
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case2.query.txt
630
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case3.colon_obfuscated.txt
631
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case3.explain.txt
632
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case3.obfuscated.txt
633
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case3.query.txt
634
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case4.colon_obfuscated.txt
635
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case4.explain.txt
636
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case4.obfuscated.txt
637
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case4.query.txt
638
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case5.colon_obfuscated.txt
639
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case5.explain.txt
640
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case5.obfuscated.txt
641
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case5.query.txt
642
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case6.colon_obfuscated.txt
643
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case6.explain.txt
644
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case6.obfuscated.txt
645
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case6.query.txt
646
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case7.colon_obfuscated.txt
647
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case7.explain.txt
648
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case7.obfuscated.txt
649
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case7.query.txt
650
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case8.colon_obfuscated.txt
651
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case8.explain.txt
652
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case8.obfuscated.txt
653
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case8.query.txt
654
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case9.colon_obfuscated.txt
655
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case9.explain.txt
656
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case9.obfuscated.txt
657
+ - test/fixtures/cross_agent_tests/postgres_explain_obfuscation/with_escape_case9.query.txt
658
+ - test/fixtures/cross_agent_tests/rules.json
659
+ - test/fixtures/cross_agent_tests/rum_client_config.json
660
+ - test/fixtures/cross_agent_tests/rum_cookie.json
661
+ - test/fixtures/cross_agent_tests/rum_footer_insertion_location/close-body-in-comment.html
662
+ - test/fixtures/cross_agent_tests/rum_footer_insertion_location/dynamic-iframe.html
663
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/basic.html
664
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/body_with_attributes.html
665
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/charset_tag.html
666
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/charset_tag_after_x_ua_tag.html
667
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/charset_tag_before_x_ua_tag.html
668
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/charset_tag_with_spaces.html
669
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/comments1.html
670
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/comments2.html
671
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/content_type_charset_tag.html
672
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/content_type_charset_tag_after_x_ua_tag.html
673
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/content_type_charset_tag_before_x_ua_tag.html
674
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/gt_in_quotes1.html
675
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/gt_in_quotes2.html
676
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/gt_in_quotes_mismatch.html
677
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/gt_in_single_quotes1.html
678
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/gt_in_single_quotes_mismatch.html
679
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/head_with_attributes.html
680
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/incomplete_non_meta_tags.html
681
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/no_header.html
682
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/no_html_and_no_header.html
683
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/no_start_header.html
684
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/script1.html
685
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/script2.html
686
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/x_ua_meta_tag.html
687
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/x_ua_meta_tag_multiline.html
688
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/x_ua_meta_tag_spaces_around_equals.html
689
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/x_ua_meta_tag_with_others.html
690
+ - test/fixtures/cross_agent_tests/rum_loader_insertion_location/x_ua_meta_tag_with_spaces.html
691
+ - test/fixtures/cross_agent_tests/sql_parsing.json
692
+ - test/fixtures/cross_agent_tests/url_clean.json
693
+ - test/fixtures/cross_agent_tests/url_domain_extraction.json
556
694
  - test/fixtures/proc_cpuinfo.txt
557
695
  - test/flaky_proxy/Gemfile
558
696
  - test/flaky_proxy/README.md
@@ -562,6 +700,7 @@ files:
562
700
  - test/flaky_proxy/lib/flaky_proxy/proxy.rb
563
701
  - test/flaky_proxy/lib/flaky_proxy/rule.rb
564
702
  - test/flaky_proxy/lib/flaky_proxy/rule_set.rb
703
+ - test/flaky_proxy/lib/flaky_proxy/sequence.rb
565
704
  - test/flaky_proxy/lib/flaky_proxy/server.rb
566
705
  - test/flaky_proxy/script/flaky_proxy
567
706
  - test/helpers/exceptions.rb
@@ -696,6 +835,7 @@ files:
696
835
  - test/multiverse/test/suite_examples/three/b/win_test.rb
697
836
  - test/multiverse/test/suite_examples/two/a/Envfile
698
837
  - test/multiverse/test/suite_examples/two/a/fail_test.rb
838
+ - test/new_relic/FAKECHANGELOG
699
839
  - test/new_relic/agent/agent/connect_test.rb
700
840
  - test/new_relic/agent/agent/start_test.rb
701
841
  - test/new_relic/agent/agent/start_worker_thread_test.rb
@@ -721,6 +861,7 @@ files:
721
861
  - test/new_relic/agent/cpu_sampler_test.rb
722
862
  - test/new_relic/agent/cross_app_monitor_test.rb
723
863
  - test/new_relic/agent/cross_app_tracing_test.rb
864
+ - test/new_relic/agent/database/postgres_explain_obfuscator_test.rb
724
865
  - test/new_relic/agent/database_test.rb
725
866
  - test/new_relic/agent/datastores/mongo/metric_generator_test.rb
726
867
  - test/new_relic/agent/datastores/mongo/metric_translator_test.rb
@@ -734,8 +875,8 @@ files:
734
875
  - test/new_relic/agent/instrumentation/action_controller_subscriber_test.rb
735
876
  - test/new_relic/agent/instrumentation/action_view_subscriber_test.rb
736
877
  - test/new_relic/agent/instrumentation/active_record_helper_test.rb
737
- - test/new_relic/agent/instrumentation/active_record_instrumentation_test.rb
738
878
  - test/new_relic/agent/instrumentation/active_record_subscriber_test.rb
879
+ - test/new_relic/agent/instrumentation/active_record_test.rb
739
880
  - test/new_relic/agent/instrumentation/controller_instrumentation_test.rb
740
881
  - test/new_relic/agent/instrumentation/instrumentation_test.rb
741
882
  - test/new_relic/agent/instrumentation/metric_frame_test.rb
@@ -789,6 +930,10 @@ files:
789
930
  - test/new_relic/agent/transaction_state_test.rb
790
931
  - test/new_relic/agent/transaction_test.rb
791
932
  - test/new_relic/agent/transaction_timings_test.rb
933
+ - test/new_relic/agent/vm/monotonic_gc_profiler_test.rb
934
+ - test/new_relic/agent/vm/mri_vm_test.rb
935
+ - test/new_relic/agent/vm/snapshot_test.rb
936
+ - test/new_relic/agent/vm_test.rb
792
937
  - test/new_relic/agent/worker_loop_test.rb
793
938
  - test/new_relic/agent_test.rb
794
939
  - test/new_relic/cli/deployments_test.rb
@@ -809,6 +954,7 @@ files:
809
954
  - test/new_relic/http_client_test_cases.rb
810
955
  - test/new_relic/json_wrapper_test.rb
811
956
  - test/new_relic/language_support_test.rb
957
+ - test/new_relic/latest_changes_test.rb
812
958
  - test/new_relic/license_test.rb
813
959
  - test/new_relic/load_test.rb
814
960
  - test/new_relic/local_environment_test.rb
@@ -842,6 +988,7 @@ files:
842
988
  - test/performance/lib/performance/instrumentation/cpu_usage.rb
843
989
  - test/performance/lib/performance/instrumentation/gc_stats.rb
844
990
  - test/performance/lib/performance/instrumentation/perf_tools.rb
991
+ - test/performance/lib/performance/instrumentation/stackprof.rb
845
992
  - test/performance/lib/performance/instrumentor.rb
846
993
  - test/performance/lib/performance/json_reporter.rb
847
994
  - test/performance/lib/performance/platform.rb
@@ -985,33 +1132,24 @@ files:
985
1132
  - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_transaction.rb
986
1133
  - lib/new_relic/build.rb
987
1134
  homepage: http://www.github.com/newrelic/rpm
988
- licenses: []
989
- post_install_message: ! "# New Relic Ruby Agent Release Notes #\n\n## v3.7.2 ##\n\n*
990
- Mongo instrumentation improvements\n\n Users of the 'mongo' MongoDB client gem
991
- will get more detailed instrumentation\n including support for some operations
992
- that were not previously captured, and\n separation of aggregate metrics for web
993
- transactions from background jobs.\n\n An issue with ensure_index when passed a
994
- symbol or string was also fixed.\n Thanks Maxime RETY for the report!\n\n* More
995
- accurate error tracing in Rails 4\n\n Traced errors in Rails 4 applications will
996
- now be correctly associated with\n the transaction they occurred in, and custom
997
- attributes attached to the\n transaction will be correctly attached to the traced
998
- error as well.\n\n* More accurate partial-rendering metrics for Rails 4\n\n View
999
- partials are now correctly treated as sub-components of the containing\n template
1000
- render in Rails 4 applications, meaning that the app server breakdown\n graphs
1001
- for Rails 4 transactions should be more accurate and useful.\n\n* Improved Unicorn
1002
- 4.8.0 compatibility\n\n A rare issue that could lead to spurrious traced errors
1003
- on app startup for\n applications using Unicorn 4.8.0 has been fixed.\n\n* meta_request
1004
- gem compatibility\n\n An incompatibility with the meta_request gem has been fixed.\n\n*
1005
- Typhoeus 0.6.4+ compatibility\n\n A potential crash with Typhoeus 0.6.4+ when passing
1006
- a URI object instead of a\n String instance to one of Typhoeus's HTTP request methods
1007
- has been fixed.\n\n* Sequel single threaded mode fix\n\n The agent will no longer
1008
- attempt to run EXPLAIN queries for slow SQL\n statements issued using the Sequel
1009
- gem in single-threaded mode, since\n doing so could potentially cause crashes.\n\n*
1010
- Additional functionality for add_custom_parameters\n\n Calling add_custom_parameters
1011
- adds parameters to the system codenamed\n Rubicon. For more information, see http://newrelic.com/software-analytics\n\n*
1012
- Update gem signing cert (3.7.2.195)\n\n The certificate used to sign newrelic_rpm
1013
- expired in February. This patch\n updates that for clients installing with verification.\n\nSee
1014
- https://github.com/newrelic/rpm/blob/master/CHANGELOG for a full list of\nchanges.\n"
1135
+ licenses:
1136
+ - New Relic
1137
+ - MIT
1138
+ - Ruby
1139
+ post_install_message: ! "# New Relic Ruby Agent Release Notes #\n\n## v3.7.3 ##\n\n*
1140
+ Obfuscation for PostgreSQL explain plans\n\n Fixes an agent bug with PostgreSQL
1141
+ where parameters from the original query\n could appear in explain plans sent to
1142
+ New Relic servers, even when SQL\n obfuscation was enabled. Parameters from the
1143
+ query are now masked in explain\n plans prior to transmission when transaction_tracer.record_sql
1144
+ is set to\n 'obfuscated' (the default setting).\n\n For more information, see:\n
1145
+ \ https://docs.newrelic.com/docs/traces/security-for-postgresql-explain-plans\n\n*
1146
+ More accurate categorization of SQL statements\n\n Some SQL SELECT statements that
1147
+ were previously being mis-categorized as\n 'SQL - OTHER' will now correctly be
1148
+ tagged as 'SQL - SELECT'. This\n particularly affected ActiveRecord users using
1149
+ PostgreSQL.\n\n* More reliable Typhoeus instrumentation\n\n Fixed an issue where
1150
+ an exception raised from a user-specified on_complete\n block would cause our Typhoeus
1151
+ instrumentation to fail to record the request.\n\n See https://github.com/newrelic/rpm/blob/master/CHANGELOG
1152
+ for a full list of\n changes.\n"
1015
1153
  rdoc_options:
1016
1154
  - --line-numbers
1017
1155
  - --inline-source