newrelic_rpm 8.16.0 → 9.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (262) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +4 -106
  4. data/.rubocop_todo.yml +13 -14
  5. data/.simplecov +2 -1
  6. data/Brewfile +1 -0
  7. data/CHANGELOG.md +225 -0
  8. data/CONTRIBUTING.md +1 -1
  9. data/Gemfile +1 -1
  10. data/Guardfile +8 -7
  11. data/README.md +3 -2
  12. data/Rakefile +8 -8
  13. data/Thorfile +1 -1
  14. data/bin/newrelic +1 -0
  15. data/bin/newrelic_cmd +1 -0
  16. data/bin/nrdebug +36 -36
  17. data/init.rb +1 -1
  18. data/lib/new_relic/agent/agent.rb +3 -16
  19. data/lib/new_relic/agent/agent_helpers/connect.rb +5 -10
  20. data/lib/new_relic/agent/agent_helpers/harvest.rb +4 -4
  21. data/lib/new_relic/agent/agent_helpers/shutdown.rb +5 -5
  22. data/lib/new_relic/agent/agent_helpers/special_startup.rb +3 -4
  23. data/lib/new_relic/agent/agent_helpers/start_worker_thread.rb +47 -39
  24. data/lib/new_relic/agent/agent_helpers/startup.rb +13 -13
  25. data/lib/new_relic/agent/agent_helpers/transmit.rb +6 -6
  26. data/lib/new_relic/agent/agent_logger.rb +9 -9
  27. data/lib/new_relic/agent/attribute_filter.rb +2 -4
  28. data/lib/new_relic/agent/attribute_processing.rb +2 -2
  29. data/lib/new_relic/agent/audit_logger.rb +5 -5
  30. data/lib/new_relic/agent/autostart.rb +1 -1
  31. data/lib/new_relic/agent/commands/agent_command.rb +2 -2
  32. data/lib/new_relic/agent/commands/agent_command_router.rb +5 -4
  33. data/lib/new_relic/agent/commands/thread_profiler_session.rb +8 -8
  34. data/lib/new_relic/agent/configuration/default_source.rb +200 -588
  35. data/lib/new_relic/agent/configuration/environment_source.rb +2 -2
  36. data/lib/new_relic/agent/configuration/high_security_source.rb +3 -5
  37. data/lib/new_relic/agent/configuration/manager.rb +15 -2
  38. data/lib/new_relic/agent/configuration/security_policy_source.rb +10 -26
  39. data/lib/new_relic/agent/configuration/server_source.rb +24 -24
  40. data/lib/new_relic/agent/configuration/yaml_source.rb +4 -4
  41. data/lib/new_relic/agent/connect/request_builder.rb +1 -1
  42. data/lib/new_relic/agent/connect/response_handler.rb +1 -1
  43. data/lib/new_relic/agent/custom_event_aggregator.rb +4 -4
  44. data/lib/new_relic/agent/database/explain_plan_helpers.rb +1 -1
  45. data/lib/new_relic/agent/database/obfuscation_helpers.rb +2 -2
  46. data/lib/new_relic/agent/database/obfuscator.rb +2 -2
  47. data/lib/new_relic/agent/database.rb +4 -18
  48. data/lib/new_relic/agent/datastores/metric_helper.rb +5 -5
  49. data/lib/new_relic/agent/datastores/mongo/metric_translator.rb +11 -11
  50. data/lib/new_relic/agent/datastores/redis.rb +6 -6
  51. data/lib/new_relic/agent/distributed_tracing/cross_app_tracing.rb +8 -10
  52. data/lib/new_relic/agent/distributed_tracing/distributed_trace_attributes.rb +10 -10
  53. data/lib/new_relic/agent/distributed_tracing/distributed_trace_metrics.rb +7 -7
  54. data/lib/new_relic/agent/distributed_tracing/distributed_trace_payload.rb +1 -1
  55. data/lib/new_relic/agent/distributed_tracing/distributed_trace_transport_type.rb +6 -6
  56. data/lib/new_relic/agent/distributed_tracing/trace_context.rb +7 -7
  57. data/lib/new_relic/agent/distributed_tracing/trace_context_payload.rb +4 -4
  58. data/lib/new_relic/agent/distributed_tracing.rb +5 -5
  59. data/lib/new_relic/agent/error_collector.rb +36 -8
  60. data/lib/new_relic/agent/error_filter.rb +5 -5
  61. data/lib/new_relic/agent/error_trace_aggregator.rb +5 -4
  62. data/lib/new_relic/agent/event_loop.rb +3 -3
  63. data/lib/new_relic/agent/external.rb +1 -1
  64. data/lib/new_relic/agent/harvester.rb +1 -3
  65. data/lib/new_relic/agent/heap.rb +2 -1
  66. data/lib/new_relic/agent/hostname.rb +1 -1
  67. data/lib/new_relic/agent/http_clients/abstract.rb +9 -21
  68. data/lib/new_relic/agent/http_clients/curb_wrappers.rb +7 -3
  69. data/lib/new_relic/agent/http_clients/excon_wrappers.rb +7 -5
  70. data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +4 -0
  71. data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +6 -2
  72. data/lib/new_relic/agent/http_clients/net_http_wrappers.rb +5 -1
  73. data/lib/new_relic/agent/http_clients/typhoeus_wrappers.rb +8 -5
  74. data/lib/new_relic/agent/http_clients/uri_util.rb +2 -2
  75. data/lib/new_relic/agent/instrumentation/action_controller_other_subscriber.rb +5 -2
  76. data/lib/new_relic/agent/instrumentation/action_controller_subscriber.rb +3 -2
  77. data/lib/new_relic/agent/instrumentation/action_view_subscriber.rb +3 -3
  78. data/lib/new_relic/agent/instrumentation/active_job.rb +2 -2
  79. data/lib/new_relic/agent/instrumentation/active_merchant.rb +3 -3
  80. data/lib/new_relic/agent/instrumentation/active_record.rb +3 -2
  81. data/lib/new_relic/agent/instrumentation/active_record_helper.rb +38 -35
  82. data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +3 -3
  83. data/lib/new_relic/agent/instrumentation/active_record_prepend.rb +2 -2
  84. data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +3 -2
  85. data/lib/new_relic/agent/instrumentation/bunny/chain.rb +1 -1
  86. data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +3 -3
  87. data/lib/new_relic/agent/instrumentation/bunny.rb +1 -1
  88. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +6 -4
  89. data/lib/new_relic/agent/instrumentation/curb/chain.rb +1 -1
  90. data/lib/new_relic/agent/instrumentation/curb/instrumentation.rb +5 -5
  91. data/lib/new_relic/agent/instrumentation/curb.rb +1 -1
  92. data/lib/new_relic/agent/instrumentation/custom_events_subscriber.rb +2 -1
  93. data/lib/new_relic/agent/instrumentation/delayed_job/chain.rb +1 -0
  94. data/lib/new_relic/agent/instrumentation/delayed_job/instrumentation.rb +1 -1
  95. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +2 -1
  96. data/lib/new_relic/agent/instrumentation/elasticsearch/chain.rb +2 -2
  97. data/lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb +4 -3
  98. data/lib/new_relic/agent/instrumentation/elasticsearch.rb +2 -2
  99. data/lib/new_relic/agent/instrumentation/excon/middleware.rb +2 -1
  100. data/lib/new_relic/agent/instrumentation/excon.rb +3 -3
  101. data/lib/new_relic/agent/instrumentation/fiber/chain.rb +20 -0
  102. data/lib/new_relic/agent/instrumentation/fiber/instrumentation.rb +24 -0
  103. data/lib/new_relic/agent/instrumentation/fiber/prepend.rb +18 -0
  104. data/lib/new_relic/agent/instrumentation/fiber.rb +25 -0
  105. data/lib/new_relic/agent/instrumentation/grape/instrumentation.rb +4 -4
  106. data/lib/new_relic/agent/instrumentation/grape.rb +4 -4
  107. data/lib/new_relic/agent/instrumentation/grpc/client/chain.rb +1 -1
  108. data/lib/new_relic/agent/instrumentation/grpc/client/instrumentation.rb +3 -2
  109. data/lib/new_relic/agent/instrumentation/grpc/client/prepend.rb +1 -1
  110. data/lib/new_relic/agent/instrumentation/grpc/client/request_wrapper.rb +1 -1
  111. data/lib/new_relic/agent/instrumentation/grpc/server/instrumentation.rb +4 -4
  112. data/lib/new_relic/agent/instrumentation/grpc_client.rb +1 -1
  113. data/lib/new_relic/agent/instrumentation/grpc_server.rb +1 -1
  114. data/lib/new_relic/agent/instrumentation/httprb.rb +1 -1
  115. data/lib/new_relic/agent/instrumentation/ignore_actions.rb +1 -1
  116. data/lib/new_relic/agent/instrumentation/logger.rb +1 -1
  117. data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +3 -1
  118. data/lib/new_relic/agent/instrumentation/memcache/instrumentation.rb +2 -2
  119. data/lib/new_relic/agent/instrumentation/memcache/prepend.rb +3 -1
  120. data/lib/new_relic/agent/instrumentation/memcache.rb +10 -10
  121. data/lib/new_relic/agent/instrumentation/middleware_proxy.rb +3 -3
  122. data/lib/new_relic/agent/instrumentation/middleware_tracing.rb +1 -1
  123. data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +6 -6
  124. data/lib/new_relic/agent/instrumentation/net_http.rb +2 -2
  125. data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +1 -1
  126. data/lib/new_relic/agent/instrumentation/padrino/instrumentation.rb +3 -3
  127. data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +2 -2
  128. data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +1 -1
  129. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +3 -2
  130. data/lib/new_relic/agent/instrumentation/rails_middleware.rb +1 -1
  131. data/lib/new_relic/agent/instrumentation/rake/instrumentation.rb +8 -15
  132. data/lib/new_relic/agent/instrumentation/rake.rb +3 -3
  133. data/lib/new_relic/agent/instrumentation/redis/constants.rb +1 -1
  134. data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +2 -1
  135. data/lib/new_relic/agent/instrumentation/redis.rb +1 -1
  136. data/lib/new_relic/agent/instrumentation/resque/helper.rb +1 -1
  137. data/lib/new_relic/agent/instrumentation/resque.rb +1 -1
  138. data/lib/new_relic/agent/instrumentation/sequel.rb +8 -9
  139. data/lib/new_relic/agent/instrumentation/sequel_helper.rb +10 -10
  140. data/lib/new_relic/agent/instrumentation/sidekiq/extensions/delayed_class.rb +1 -1
  141. data/lib/new_relic/agent/instrumentation/sidekiq/server.rb +1 -1
  142. data/lib/new_relic/agent/instrumentation/sidekiq.rb +1 -0
  143. data/lib/new_relic/agent/instrumentation/sinatra/ignorer.rb +1 -1
  144. data/lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb +6 -5
  145. data/lib/new_relic/agent/instrumentation/sinatra/transaction_namer.rb +1 -1
  146. data/lib/new_relic/agent/instrumentation/thread/instrumentation.rb +3 -7
  147. data/lib/new_relic/agent/instrumentation/tilt/instrumentation.rb +2 -1
  148. data/lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb +5 -5
  149. data/lib/new_relic/agent/javascript_instrumentor.rb +29 -24
  150. data/lib/new_relic/agent/linking_metadata.rb +2 -2
  151. data/lib/new_relic/agent/log_event_aggregator.rb +15 -15
  152. data/lib/new_relic/agent/logging.rb +73 -33
  153. data/lib/new_relic/agent/messaging.rb +7 -5
  154. data/lib/new_relic/agent/method_tracer.rb +7 -7
  155. data/lib/new_relic/agent/method_tracer_helpers.rb +1 -1
  156. data/lib/new_relic/agent/monitors/cross_app_monitor.rb +4 -5
  157. data/lib/new_relic/agent/monitors/distributed_tracing_monitor.rb +1 -1
  158. data/lib/new_relic/agent/new_relic_service/encoders.rb +1 -1
  159. data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +2 -2
  160. data/lib/new_relic/agent/new_relic_service/security_policy_settings.rb +0 -1
  161. data/lib/new_relic/agent/new_relic_service.rb +15 -16
  162. data/lib/new_relic/agent/obfuscator.rb +1 -1
  163. data/lib/new_relic/agent/parameter_filtering.rb +6 -6
  164. data/lib/new_relic/agent/pipe_channel_manager.rb +7 -6
  165. data/lib/new_relic/agent/pipe_service.rb +5 -3
  166. data/lib/new_relic/agent/priority_sampled_buffer.rb +1 -1
  167. data/lib/new_relic/agent/rules_engine/segment_terms_rule.rb +0 -1
  168. data/lib/new_relic/agent/sampler.rb +2 -1
  169. data/lib/new_relic/agent/sampler_collection.rb +1 -1
  170. data/lib/new_relic/agent/samplers/cpu_sampler.rb +5 -5
  171. data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +9 -9
  172. data/lib/new_relic/agent/samplers/memory_sampler.rb +9 -9
  173. data/lib/new_relic/agent/samplers/object_sampler.rb +1 -1
  174. data/lib/new_relic/agent/span_event_aggregator.rb +4 -4
  175. data/lib/new_relic/agent/span_event_primitive.rb +2 -2
  176. data/lib/new_relic/agent/sql_sampler.rb +2 -2
  177. data/lib/new_relic/agent/stats.rb +1 -1
  178. data/lib/new_relic/agent/synthetics_event_aggregator.rb +1 -1
  179. data/lib/new_relic/agent/system_info.rb +10 -10
  180. data/lib/new_relic/agent/threading/agent_thread.rb +1 -1
  181. data/lib/new_relic/agent/threading/backtrace_node.rb +3 -3
  182. data/lib/new_relic/agent/threading/backtrace_service.rb +3 -7
  183. data/lib/new_relic/agent/threading/thread_profile.rb +5 -5
  184. data/lib/new_relic/agent/timestamp_sampled_buffer.rb +1 -1
  185. data/lib/new_relic/agent/tracer.rb +19 -9
  186. data/lib/new_relic/agent/transaction/abstract_segment.rb +54 -48
  187. data/lib/new_relic/agent/transaction/datastore_segment.rb +1 -1
  188. data/lib/new_relic/agent/transaction/distributed_tracer.rb +7 -6
  189. data/lib/new_relic/agent/transaction/distributed_tracing.rb +13 -14
  190. data/lib/new_relic/agent/transaction/external_request_segment.rb +11 -11
  191. data/lib/new_relic/agent/transaction/message_broker_segment.rb +1 -1
  192. data/lib/new_relic/agent/transaction/request_attributes.rb +2 -2
  193. data/lib/new_relic/agent/transaction/segment.rb +1 -1
  194. data/lib/new_relic/agent/transaction/synthetics_sample_buffer.rb +1 -1
  195. data/lib/new_relic/agent/transaction/trace.rb +1 -1
  196. data/lib/new_relic/agent/transaction/trace_context.rb +4 -4
  197. data/lib/new_relic/agent/transaction/trace_node.rb +8 -7
  198. data/lib/new_relic/agent/transaction/tracing.rb +10 -4
  199. data/lib/new_relic/agent/transaction/transaction_sample_buffer.rb +1 -1
  200. data/lib/new_relic/agent/transaction.rb +60 -52
  201. data/lib/new_relic/agent/transaction_error_primitive.rb +5 -5
  202. data/lib/new_relic/agent/transaction_event_aggregator.rb +4 -4
  203. data/lib/new_relic/agent/transaction_event_primitive.rb +3 -3
  204. data/lib/new_relic/agent/transaction_sampler.rb +3 -3
  205. data/lib/new_relic/agent/transaction_time_aggregator.rb +7 -3
  206. data/lib/new_relic/agent/utilization/aws.rb +1 -1
  207. data/lib/new_relic/agent/utilization/azure.rb +3 -3
  208. data/lib/new_relic/agent/utilization/gcp.rb +3 -3
  209. data/lib/new_relic/agent/utilization/pcf.rb +1 -1
  210. data/lib/new_relic/agent/utilization/vendor.rb +1 -1
  211. data/lib/new_relic/agent/vm/monotonic_gc_profiler.rb +1 -1
  212. data/lib/new_relic/agent/vm/mri_vm.rb +9 -8
  213. data/lib/new_relic/agent/worker_loop.rb +1 -1
  214. data/lib/new_relic/agent.rb +79 -35
  215. data/lib/new_relic/cli/command.rb +3 -3
  216. data/lib/new_relic/cli/commands/deployments.rb +26 -25
  217. data/lib/new_relic/cli/commands/install.rb +23 -23
  218. data/lib/new_relic/collection_helper.rb +2 -2
  219. data/lib/new_relic/constants.rb +7 -8
  220. data/lib/new_relic/control/class_methods.rb +3 -3
  221. data/lib/new_relic/control/frameworks/rails.rb +30 -18
  222. data/lib/new_relic/control/instance_methods.rb +6 -6
  223. data/lib/new_relic/control/instrumentation.rb +1 -15
  224. data/lib/new_relic/control/private_instance_methods.rb +1 -1
  225. data/lib/new_relic/dependency_detection.rb +14 -18
  226. data/lib/new_relic/environment_report.rb +4 -4
  227. data/lib/new_relic/helper.rb +2 -1
  228. data/lib/new_relic/language_support.rb +1 -1
  229. data/lib/new_relic/latest_changes.rb +5 -5
  230. data/lib/new_relic/local_environment.rb +0 -10
  231. data/lib/new_relic/noticed_error.rb +20 -18
  232. data/lib/new_relic/rack/browser_monitoring.rb +20 -16
  233. data/lib/new_relic/recipes/capistrano3.rb +1 -1
  234. data/lib/new_relic/recipes/capistrano_legacy.rb +6 -6
  235. data/lib/new_relic/recipes/helpers/send_deployment.rb +5 -5
  236. data/lib/new_relic/supportability_helper.rb +2 -1
  237. data/lib/new_relic/version.rb +3 -3
  238. data/lib/newrelic_rpm.rb +4 -4
  239. data/lib/sequel/extensions/{newrelic_instrumentation.rb → new_relic_instrumentation.rb} +5 -5
  240. data/lib/sequel/plugins/{newrelic_instrumentation.rb → new_relic_instrumentation.rb} +4 -4
  241. data/lib/tasks/config.rake +12 -12
  242. data/lib/tasks/coverage_report.rake +4 -4
  243. data/lib/tasks/helpers/format.rb +10 -10
  244. data/lib/tasks/helpers/removers.rb +5 -5
  245. data/lib/tasks/install.rake +4 -4
  246. data/lib/tasks/instrumentation_generator/instrumentation.thor +15 -18
  247. data/lib/tasks/instrumentation_generator/templates/Envfile.tt +1 -1
  248. data/lib/tasks/instrumentation_generator/templates/chain.tt +1 -1
  249. data/lib/tasks/instrumentation_generator/templates/dependency_detection.tt +1 -1
  250. data/lib/tasks/multiverse.rb +13 -6
  251. data/lib/tasks/newrelic.rb +1 -0
  252. data/lib/tasks/tests.rake +6 -6
  253. data/newrelic.yml +10 -13
  254. data/newrelic_rpm.gemspec +29 -26
  255. data/test/agent_helper.rb +25 -24
  256. metadata +84 -16
  257. data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +0 -83
  258. data/lib/new_relic/agent/instrumentation/authlogic.rb +0 -33
  259. data/lib/new_relic/agent/instrumentation/data_mapper.rb +0 -215
  260. data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +0 -36
  261. data/lib/new_relic/agent/instrumentation/sunspot.rb +0 -41
  262. data/lib/new_relic/agent/range_extensions.rb +0 -27
@@ -6,27 +6,27 @@ module NewRelic
6
6
  module Agent
7
7
  module AgentHelpers
8
8
  module Transmit
9
- TRANSACTION_EVENT = "TransactionEvent".freeze
9
+ TRANSACTION_EVENT = 'TransactionEvent'.freeze
10
10
  def transmit_analytic_event_data
11
11
  transmit_single_data_type(:harvest_and_send_analytic_event_data, TRANSACTION_EVENT)
12
12
  end
13
13
 
14
- CUSTOM_EVENT = "CustomEvent".freeze
14
+ CUSTOM_EVENT = 'CustomEvent'.freeze
15
15
  def transmit_custom_event_data
16
16
  transmit_single_data_type(:harvest_and_send_custom_event_data, CUSTOM_EVENT)
17
17
  end
18
18
 
19
- ERROR_EVENT = "ErrorEvent".freeze
19
+ ERROR_EVENT = 'ErrorEvent'.freeze
20
20
  def transmit_error_event_data
21
21
  transmit_single_data_type(:harvest_and_send_error_event_data, ERROR_EVENT)
22
22
  end
23
23
 
24
- SPAN_EVENT = "SpanEvent".freeze
24
+ SPAN_EVENT = 'SpanEvent'.freeze
25
25
  def transmit_span_event_data
26
26
  transmit_single_data_type(:harvest_and_send_span_event_data, SPAN_EVENT)
27
27
  end
28
28
 
29
- LOG_EVENT = "LogEvent".freeze
29
+ LOG_EVENT = 'LogEvent'.freeze
30
30
  def transmit_log_event_data
31
31
  transmit_single_data_type(:harvest_and_send_log_event_data, LOG_EVENT)
32
32
  end
@@ -47,7 +47,7 @@ module NewRelic
47
47
 
48
48
  def transmit_data
49
49
  now = Process.clock_gettime(Process::CLOCK_MONOTONIC)
50
- ::NewRelic::Agent.logger.debug("Sending data to New Relic Service")
50
+ ::NewRelic::Agent.logger.debug('Sending data to New Relic Service')
51
51
 
52
52
  @events.notify(:before_harvest)
53
53
  @service.session do # use http keep-alive
@@ -13,7 +13,7 @@ module NewRelic
13
13
  class AgentLogger
14
14
  include LogOnce
15
15
 
16
- def initialize(root = "", override_logger = nil)
16
+ def initialize(root = '', override_logger = nil)
17
17
  @already_logged_lock = Mutex.new
18
18
  clear_already_logged
19
19
  create_log(root, override_logger)
@@ -53,13 +53,13 @@ module NewRelic
53
53
  # default behavior of backtraces logged at debug, use one of the methods
54
54
  # above and pass an Exception as one of the args.
55
55
  def log_exception(level, e, backtrace_level = level)
56
- @log.send(level, "%p: %s" % [e.class, e.message])
56
+ @log.send(level, '%p: %s' % [e.class, e.message])
57
57
  @log.send(backtrace_level) do
58
58
  backtrace = backtrace_from_exception(e)
59
59
  if backtrace
60
60
  "Debugging backtrace:\n" + backtrace.join("\n ")
61
61
  else
62
- "No backtrace available."
62
+ 'No backtrace available.'
63
63
  end
64
64
  end
65
65
  end
@@ -150,11 +150,11 @@ module NewRelic
150
150
  end
151
151
 
152
152
  LOG_LEVELS = {
153
- "debug" => ::Logger::DEBUG,
154
- "info" => ::Logger::INFO,
155
- "warn" => ::Logger::WARN,
156
- "error" => ::Logger::ERROR,
157
- "fatal" => ::Logger::FATAL
153
+ 'debug' => ::Logger::DEBUG,
154
+ 'info' => ::Logger::INFO,
155
+ 'warn' => ::Logger::WARN,
156
+ 'error' => ::Logger::ERROR,
157
+ 'fatal' => ::Logger::FATAL
158
158
  }
159
159
 
160
160
  def self.log_level_for(level)
@@ -165,7 +165,7 @@ module NewRelic
165
165
  @hostname = NewRelic::Agent::Hostname.get
166
166
  @prefix = wants_stdout? ? '** [NewRelic]' : ''
167
167
  @log.formatter = proc do |severity, timestamp, progname, msg|
168
- "#{@prefix}[#{timestamp.strftime("%F %H:%M:%S %z")} #{@hostname} (#{$$})] #{severity} : #{msg}\n"
168
+ "#{@prefix}[#{timestamp.strftime('%F %H:%M:%S %z')} #{@hostname} (#{$$})] #{severity} : #{msg}\n"
169
169
  end
170
170
  end
171
171
 
@@ -124,8 +124,6 @@ module NewRelic
124
124
 
125
125
  def prep_capture_params_rules(config)
126
126
  build_rule(['request.parameters.*'], include_destinations_for_capture_params(config[:capture_params]), true)
127
- build_rule(['job.resque.args.*'], include_destinations_for_capture_params(config[:'resque.capture_params']), true)
128
- build_rule(['job.sidekiq.args.*'], include_destinations_for_capture_params(config[:'sidekiq.capture_params']), true)
129
127
  end
130
128
 
131
129
  def prep_datastore_rules(config)
@@ -275,8 +273,8 @@ module NewRelic
275
273
  attr_reader :attribute_name, :destinations, :is_include, :wildcard
276
274
 
277
275
  def initialize(attribute_name, destinations, is_include)
278
- @attribute_name = attribute_name.sub(/\*$/, "")
279
- @wildcard = attribute_name.end_with?("*")
276
+ @attribute_name = attribute_name.sub(/\*$/, '')
277
+ @wildcard = attribute_name.end_with?('*')
280
278
  @is_include = is_include
281
279
  @destinations = is_include ? destinations : ~destinations
282
280
  end
@@ -7,8 +7,8 @@ module NewRelic
7
7
  module AttributeProcessing
8
8
  module_function
9
9
 
10
- EMPTY_HASH_STRING_LITERAL = "{}".freeze
11
- EMPTY_ARRAY_STRING_LITERAL = "[]".freeze
10
+ EMPTY_HASH_STRING_LITERAL = '{}'.freeze
11
+ EMPTY_ARRAY_STRING_LITERAL = '[]'.freeze
12
12
 
13
13
  def flatten_and_coerce(object, prefix = nil, result = {}, &blk)
14
14
  if object.is_a?(Hash)
@@ -32,9 +32,9 @@ module NewRelic
32
32
 
33
33
  @log.info("REQUEST HEADERS: #{headers}")
34
34
  rescue StandardError, SystemStackError, SystemCallError => e
35
- ::NewRelic::Agent.logger.warn("Failed writing request headers to audit log", e)
35
+ ::NewRelic::Agent.logger.warn('Failed writing request headers to audit log', e)
36
36
  rescue Exception => e
37
- ::NewRelic::Agent.logger.warn("Failed writing request headers to audit log with exception. Re-raising in case of interrupt.", e)
37
+ ::NewRelic::Agent.logger.warn('Failed writing request headers to audit log with exception. Re-raising in case of interrupt.', e)
38
38
  raise
39
39
  end
40
40
 
@@ -50,9 +50,9 @@ module NewRelic
50
50
  @log.info("REQUEST: #{uri}")
51
51
  @log.info("REQUEST BODY: #{request_body}")
52
52
  rescue StandardError, SystemStackError, SystemCallError => e
53
- ::NewRelic::Agent.logger.warn("Failed writing to audit log", e)
53
+ ::NewRelic::Agent.logger.warn('Failed writing to audit log', e)
54
54
  rescue Exception => e
55
- ::NewRelic::Agent.logger.warn("Failed writing to audit log with exception. Re-raising in case of interrupt.", e)
55
+ ::NewRelic::Agent.logger.warn('Failed writing to audit log with exception. Re-raising in case of interrupt.', e)
56
56
  raise
57
57
  end
58
58
 
@@ -64,7 +64,7 @@ module NewRelic
64
64
  if wants_stdout?
65
65
  # Using $stdout global for easier reassignment in testing
66
66
  @log = ::Logger.new($stdout)
67
- ::NewRelic::Agent.logger.info("Audit log enabled to STDOUT")
67
+ ::NewRelic::Agent.logger.info('Audit log enabled to STDOUT')
68
68
  elsif path = ensure_log_path
69
69
  @log = ::Logger.new(path)
70
70
  ::NewRelic::Agent.logger.info("Audit log enabled at '#{path}'")
@@ -28,7 +28,7 @@ module NewRelic
28
28
  !in_denylisted_rake_task?
29
29
  end
30
30
 
31
- COMMA = ",".freeze
31
+ COMMA = ','.freeze
32
32
 
33
33
  def denylisted_constants?
34
34
  denylisted?(NewRelic::Agent.config[:'autostart.denylisted_constants']) do |name|
@@ -10,8 +10,8 @@ module NewRelic
10
10
 
11
11
  def initialize(raw_collector_command)
12
12
  @id = raw_collector_command[0]
13
- @name = raw_collector_command[1]["name"]
14
- @arguments = raw_collector_command[1]["arguments"]
13
+ @name = raw_collector_command[1]['name']
14
+ @arguments = raw_collector_command[1]['arguments']
15
15
  end
16
16
  end
17
17
  end
@@ -29,7 +29,8 @@ module NewRelic
29
29
  @handlers['start_profiler'] = proc { |cmd| thread_profiler_session.handle_start_command(cmd) }
30
30
  @handlers['stop_profiler'] = proc { |cmd| thread_profiler_session.handle_stop_command(cmd) }
31
31
 
32
- if event_listener
32
+ # the following statement needs else branch coverage
33
+ if event_listener # rubocop:disable Style/SafeNavigation
33
34
  event_listener.subscribe(:before_shutdown, &method(:on_before_shutdown))
34
35
  end
35
36
  end
@@ -77,10 +78,10 @@ module NewRelic
77
78
 
78
79
  def log_profiles(profiles)
79
80
  if profiles.empty?
80
- ::NewRelic::Agent.logger.debug("No thread profiles with data found to send.")
81
+ ::NewRelic::Agent.logger.debug('No thread profiles with data found to send.')
81
82
  else
82
83
  profile_descriptions = profiles.map { |p| p.to_log_description }
83
- ::NewRelic::Agent.logger.debug("Sending thread profiles [#{profile_descriptions.join(", ")}]")
84
+ ::NewRelic::Agent.logger.debug("Sending thread profiles [#{profile_descriptions.join(', ')}]")
84
85
  end
85
86
  end
86
87
 
@@ -114,7 +115,7 @@ module NewRelic
114
115
  end
115
116
 
116
117
  SUCCESS_RESULT = NewRelic::EMPTY_HASH
117
- ERROR_KEY = "error"
118
+ ERROR_KEY = 'error'
118
119
 
119
120
  def success
120
121
  SUCCESS_RESULT
@@ -25,12 +25,12 @@ module NewRelic
25
25
  end
26
26
 
27
27
  def handle_stop_command(agent_command)
28
- report_data = agent_command.arguments.fetch("report_data", true)
28
+ report_data = agent_command.arguments.fetch('report_data', true)
29
29
  stop(report_data)
30
30
  end
31
31
 
32
32
  def start(agent_command)
33
- NewRelic::Agent.logger.debug("Starting Thread Profiler.")
33
+ NewRelic::Agent.logger.debug('Starting Thread Profiler.')
34
34
  profile = @backtrace_service.subscribe(
35
35
  NewRelic::Agent::Threading::BacktraceService::ALL_TRANSACTIONS,
36
36
  agent_command.arguments
@@ -43,7 +43,7 @@ module NewRelic
43
43
  def stop(report_data)
44
44
  return unless running?
45
45
 
46
- NewRelic::Agent.logger.debug("Stopping Thread Profiler.")
46
+ NewRelic::Agent.logger.debug('Stopping Thread Profiler.')
47
47
  @finished_profile = @backtrace_service.harvest(NewRelic::Agent::Threading::BacktraceService::ALL_TRANSACTIONS)
48
48
  @backtrace_service.unsubscribe(NewRelic::Agent::Threading::BacktraceService::ALL_TRANSACTIONS)
49
49
  @finished_profile = nil if !report_data
@@ -51,7 +51,7 @@ module NewRelic
51
51
 
52
52
  def harvest
53
53
  NewRelic::Agent.logger.debug(
54
- "Harvesting from Thread Profiler #{@finished_profile.to_log_description unless @finished_profile.nil?}"
54
+ "Harvesting from Thread Profiler #{@finished_profile&.to_log_description}"
55
55
  )
56
56
  profile = @finished_profile
57
57
  @backtrace_service.profile_agent_code = false
@@ -89,9 +89,9 @@ module NewRelic
89
89
  end
90
90
 
91
91
  def raise_unsupported_error
92
- msg = <<-EOF
93
- Thread profiling is not supported for Resque processes. If you did not intend to
94
- profile a Resque process, profiling again might select an appropriate agent.
92
+ msg = <<~EOF
93
+ Thread profiling is not supported for Resque processes. If you did not intend to
94
+ profile a Resque process, profiling again might select an appropriate agent.
95
95
  EOF
96
96
  raise_command_error(msg)
97
97
  end
@@ -102,7 +102,7 @@ profile a Resque process, profiling again might select an appropriate agent.
102
102
  end
103
103
 
104
104
  def raise_already_started_error
105
- msg = "Profile already in progress. Ignoring agent command to start another."
105
+ msg = 'Profile already in progress. Ignoring agent command to start another.'
106
106
  raise_command_error(msg)
107
107
  end
108
108
  end