newrelic_rpm 6.7.0.359 → 6.12.0.367

Sign up to get free protection for your applications and to get access to all the features.
Files changed (297) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -0
  3. data/.travis.yml +72 -7
  4. data/CHANGELOG.md +306 -4
  5. data/CODE_OF_CONDUCT.md +46 -0
  6. data/CONTRIBUTING.md +56 -12
  7. data/Gemfile +6 -2
  8. data/Guardfile +18 -1
  9. data/LICENSE +208 -38
  10. data/README.md +61 -89
  11. data/Rakefile +2 -0
  12. data/THIRD_PARTY_NOTICES.md +213 -0
  13. data/bin/nrdebug +1 -1
  14. data/init.rb +1 -1
  15. data/install.rb +1 -1
  16. data/lib/new_relic/agent.rb +49 -7
  17. data/lib/new_relic/agent/adaptive_sampler.rb +1 -1
  18. data/lib/new_relic/agent/agent.rb +57 -40
  19. data/lib/new_relic/agent/agent_logger.rb +5 -1
  20. data/lib/new_relic/agent/attribute_filter.rb +8 -8
  21. data/lib/new_relic/agent/attribute_processing.rb +1 -1
  22. data/lib/new_relic/agent/attributes.rb +152 -0
  23. data/lib/new_relic/agent/audit_logger.rb +1 -1
  24. data/lib/new_relic/agent/autostart.rb +20 -15
  25. data/lib/new_relic/agent/chained_call.rb +1 -1
  26. data/lib/new_relic/agent/commands/agent_command.rb +1 -1
  27. data/lib/new_relic/agent/commands/agent_command_router.rb +1 -1
  28. data/lib/new_relic/agent/commands/thread_profiler_session.rb +1 -1
  29. data/lib/new_relic/agent/configuration.rb +1 -1
  30. data/lib/new_relic/agent/configuration/default_source.rb +111 -16
  31. data/lib/new_relic/agent/configuration/dotted_hash.rb +1 -1
  32. data/lib/new_relic/agent/configuration/environment_source.rb +1 -1
  33. data/lib/new_relic/agent/configuration/event_harvest_config.rb +1 -1
  34. data/lib/new_relic/agent/configuration/high_security_source.rb +1 -1
  35. data/lib/new_relic/agent/configuration/manager.rb +1 -1
  36. data/lib/new_relic/agent/configuration/manual_source.rb +1 -1
  37. data/lib/new_relic/agent/configuration/mask_defaults.rb +1 -1
  38. data/lib/new_relic/agent/configuration/security_policy_source.rb +1 -1
  39. data/lib/new_relic/agent/configuration/server_source.rb +2 -2
  40. data/lib/new_relic/agent/configuration/yaml_source.rb +12 -7
  41. data/lib/new_relic/agent/connect/request_builder.rb +4 -12
  42. data/lib/new_relic/agent/connect/response_handler.rb +1 -1
  43. data/lib/new_relic/agent/custom_event_aggregator.rb +1 -1
  44. data/lib/new_relic/agent/database.rb +2 -3
  45. data/lib/new_relic/agent/database/explain_plan_helpers.rb +1 -1
  46. data/lib/new_relic/agent/database/obfuscation_helpers.rb +2 -2
  47. data/lib/new_relic/agent/database/obfuscator.rb +1 -1
  48. data/lib/new_relic/agent/database/postgres_explain_obfuscator.rb +1 -1
  49. data/lib/new_relic/agent/datastores.rb +1 -1
  50. data/lib/new_relic/agent/datastores/metric_helper.rb +1 -1
  51. data/lib/new_relic/agent/datastores/mongo.rb +2 -2
  52. data/lib/new_relic/agent/datastores/mongo/event_formatter.rb +3 -3
  53. data/lib/new_relic/agent/datastores/mongo/metric_translator.rb +1 -1
  54. data/lib/new_relic/agent/datastores/mongo/obfuscator.rb +9 -9
  55. data/lib/new_relic/agent/datastores/mongo/statement_formatter.rb +1 -1
  56. data/lib/new_relic/agent/datastores/redis.rb +1 -1
  57. data/lib/new_relic/agent/deprecator.rb +1 -1
  58. data/lib/new_relic/agent/distributed_tracing.rb +156 -7
  59. data/lib/new_relic/agent/{cross_app_payload.rb → distributed_tracing/cross_app_payload.rb} +3 -2
  60. data/lib/new_relic/agent/{cross_app_tracing.rb → distributed_tracing/cross_app_tracing.rb} +61 -46
  61. data/lib/new_relic/agent/distributed_tracing/distributed_trace_attributes.rb +84 -0
  62. data/lib/new_relic/agent/distributed_tracing/distributed_trace_metrics.rb +75 -0
  63. data/lib/new_relic/agent/{distributed_trace_payload.rb → distributed_tracing/distributed_trace_payload.rb} +25 -102
  64. data/lib/new_relic/agent/distributed_tracing/distributed_trace_transport_type.rb +39 -0
  65. data/lib/new_relic/agent/distributed_tracing/trace_context.rb +246 -0
  66. data/lib/new_relic/agent/distributed_tracing/trace_context_payload.rb +126 -0
  67. data/lib/new_relic/agent/encoding_normalizer.rb +1 -1
  68. data/lib/new_relic/agent/error_collector.rb +34 -17
  69. data/lib/new_relic/agent/error_event_aggregator.rb +8 -6
  70. data/lib/new_relic/agent/error_trace_aggregator.rb +1 -1
  71. data/lib/new_relic/agent/event_aggregator.rb +1 -1
  72. data/lib/new_relic/agent/event_buffer.rb +1 -1
  73. data/lib/new_relic/agent/event_listener.rb +1 -1
  74. data/lib/new_relic/agent/event_loop.rb +1 -1
  75. data/lib/new_relic/agent/external.rb +8 -8
  76. data/lib/new_relic/agent/guid_generator.rb +28 -0
  77. data/lib/new_relic/agent/harvester.rb +1 -1
  78. data/lib/new_relic/agent/heap.rb +1 -1
  79. data/lib/new_relic/agent/hostname.rb +8 -2
  80. data/lib/new_relic/agent/http_clients/abstract.rb +82 -0
  81. data/lib/new_relic/agent/http_clients/curb_wrappers.rb +25 -20
  82. data/lib/new_relic/agent/http_clients/excon_wrappers.rb +29 -14
  83. data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +18 -22
  84. data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +11 -12
  85. data/lib/new_relic/agent/http_clients/net_http_wrappers.rb +17 -5
  86. data/lib/new_relic/agent/http_clients/typhoeus_wrappers.rb +5 -7
  87. data/lib/new_relic/agent/http_clients/uri_util.rb +4 -3
  88. data/lib/new_relic/agent/instrumentation.rb +1 -1
  89. data/lib/new_relic/agent/instrumentation/action_cable_subscriber.rb +6 -8
  90. data/lib/new_relic/agent/instrumentation/action_controller_subscriber.rb +5 -1
  91. data/lib/new_relic/agent/instrumentation/action_view_subscriber.rb +12 -3
  92. data/lib/new_relic/agent/instrumentation/active_job.rb +1 -1
  93. data/lib/new_relic/agent/instrumentation/active_merchant.rb +1 -1
  94. data/lib/new_relic/agent/instrumentation/active_record.rb +85 -38
  95. data/lib/new_relic/agent/instrumentation/active_record_helper.rb +82 -24
  96. data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +1 -1
  97. data/lib/new_relic/agent/instrumentation/active_record_prepend.rb +92 -34
  98. data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +8 -3
  99. data/lib/new_relic/agent/instrumentation/active_storage.rb +1 -1
  100. data/lib/new_relic/agent/instrumentation/active_storage_subscriber.rb +9 -5
  101. data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +24 -8
  102. data/lib/new_relic/agent/instrumentation/authlogic.rb +1 -1
  103. data/lib/new_relic/agent/instrumentation/bunny.rb +115 -52
  104. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +1 -1
  105. data/lib/new_relic/agent/instrumentation/curb.rb +93 -28
  106. data/lib/new_relic/agent/instrumentation/data_mapper.rb +4 -2
  107. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +61 -25
  108. data/lib/new_relic/agent/instrumentation/excon.rb +2 -2
  109. data/lib/new_relic/agent/instrumentation/excon/connection.rb +7 -4
  110. data/lib/new_relic/agent/instrumentation/excon/middleware.rb +3 -2
  111. data/lib/new_relic/agent/instrumentation/grape.rb +6 -11
  112. data/lib/new_relic/agent/instrumentation/http.rb +7 -4
  113. data/lib/new_relic/agent/instrumentation/httpclient.rb +6 -4
  114. data/lib/new_relic/agent/instrumentation/ignore_actions.rb +1 -1
  115. data/lib/new_relic/agent/instrumentation/memcache.rb +4 -2
  116. data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +7 -3
  117. data/lib/new_relic/agent/instrumentation/merb/controller.rb +1 -1
  118. data/lib/new_relic/agent/instrumentation/merb/errors.rb +1 -1
  119. data/lib/new_relic/agent/instrumentation/middleware_proxy.rb +12 -4
  120. data/lib/new_relic/agent/instrumentation/middleware_tracing.rb +9 -7
  121. data/lib/new_relic/agent/instrumentation/mongo.rb +10 -4
  122. data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +36 -3
  123. data/lib/new_relic/agent/instrumentation/net.rb +60 -23
  124. data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +26 -2
  125. data/lib/new_relic/agent/instrumentation/padrino.rb +40 -16
  126. data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +1 -1
  127. data/lib/new_relic/agent/instrumentation/queue_time.rb +1 -1
  128. data/lib/new_relic/agent/instrumentation/rack.rb +36 -13
  129. data/lib/new_relic/agent/instrumentation/rails/action_controller.rb +1 -1
  130. data/lib/new_relic/agent/instrumentation/rails/action_web_service.rb +1 -1
  131. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +1 -1
  132. data/lib/new_relic/agent/instrumentation/rails_middleware.rb +1 -1
  133. data/lib/new_relic/agent/instrumentation/rails_notifications/action_cable.rb +1 -1
  134. data/lib/new_relic/agent/instrumentation/rails_notifications/action_controller.rb +1 -1
  135. data/lib/new_relic/agent/instrumentation/rails_notifications/action_view.rb +1 -1
  136. data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +1 -1
  137. data/lib/new_relic/agent/instrumentation/rake.rb +54 -20
  138. data/lib/new_relic/agent/instrumentation/redis.rb +141 -56
  139. data/lib/new_relic/agent/instrumentation/resque.rb +4 -1
  140. data/lib/new_relic/agent/instrumentation/sequel.rb +1 -1
  141. data/lib/new_relic/agent/instrumentation/sequel_helper.rb +1 -1
  142. data/lib/new_relic/agent/instrumentation/sidekiq.rb +48 -24
  143. data/lib/new_relic/agent/instrumentation/sinatra.rb +62 -23
  144. data/lib/new_relic/agent/instrumentation/sinatra/ignorer.rb +1 -1
  145. data/lib/new_relic/agent/instrumentation/sinatra/transaction_namer.rb +1 -1
  146. data/lib/new_relic/agent/instrumentation/sunspot.rb +1 -1
  147. data/lib/new_relic/agent/instrumentation/typhoeus.rb +24 -7
  148. data/lib/new_relic/agent/internal_agent_error.rb +1 -1
  149. data/lib/new_relic/agent/javascript_instrumentor.rb +1 -1
  150. data/lib/new_relic/agent/log_once.rb +1 -1
  151. data/lib/new_relic/agent/logging.rb +19 -5
  152. data/lib/new_relic/agent/memory_logger.rb +1 -1
  153. data/lib/new_relic/agent/messaging.rb +6 -74
  154. data/lib/new_relic/agent/method_tracer.rb +19 -7
  155. data/lib/new_relic/agent/method_tracer_helpers.rb +3 -3
  156. data/lib/new_relic/agent/monitors.rb +27 -0
  157. data/lib/new_relic/agent/monitors/cross_app_monitor.rb +110 -0
  158. data/lib/new_relic/agent/monitors/distributed_tracing_monitor.rb +27 -0
  159. data/lib/new_relic/agent/{inbound_request_monitor.rb → monitors/inbound_request_monitor.rb} +2 -2
  160. data/lib/new_relic/agent/{synthetics_monitor.rb → monitors/synthetics_monitor.rb} +3 -5
  161. data/lib/new_relic/agent/new_relic_service.rb +8 -7
  162. data/lib/new_relic/agent/new_relic_service/encoders.rb +1 -1
  163. data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +1 -1
  164. data/lib/new_relic/agent/new_relic_service/marshaller.rb +1 -1
  165. data/lib/new_relic/agent/new_relic_service/security_policy_settings.rb +1 -1
  166. data/lib/new_relic/agent/noticible_error.rb +22 -0
  167. data/lib/new_relic/agent/null_logger.rb +1 -1
  168. data/lib/new_relic/agent/obfuscator.rb +1 -1
  169. data/lib/new_relic/agent/parameter_filtering.rb +1 -1
  170. data/lib/new_relic/agent/payload_metric_mapping.rb +1 -1
  171. data/lib/new_relic/agent/pipe_channel_manager.rb +1 -1
  172. data/lib/new_relic/agent/pipe_service.rb +1 -1
  173. data/lib/new_relic/agent/prepend_supportability.rb +1 -1
  174. data/lib/new_relic/agent/priority_sampled_buffer.rb +8 -5
  175. data/lib/new_relic/agent/range_extensions.rb +1 -1
  176. data/lib/new_relic/agent/rules_engine.rb +1 -1
  177. data/lib/new_relic/agent/rules_engine/replacement_rule.rb +1 -1
  178. data/lib/new_relic/agent/rules_engine/segment_terms_rule.rb +1 -1
  179. data/lib/new_relic/agent/sampler.rb +1 -1
  180. data/lib/new_relic/agent/sampler_collection.rb +1 -1
  181. data/lib/new_relic/agent/samplers/cpu_sampler.rb +1 -1
  182. data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +1 -1
  183. data/lib/new_relic/agent/samplers/memory_sampler.rb +1 -1
  184. data/lib/new_relic/agent/samplers/object_sampler.rb +1 -1
  185. data/lib/new_relic/agent/samplers/vm_sampler.rb +1 -1
  186. data/lib/new_relic/agent/span_event_aggregator.rb +2 -1
  187. data/lib/new_relic/agent/span_event_primitive.rb +106 -54
  188. data/lib/new_relic/agent/sql_sampler.rb +6 -6
  189. data/lib/new_relic/agent/stats.rb +1 -1
  190. data/lib/new_relic/agent/stats_engine.rb +1 -1
  191. data/lib/new_relic/agent/stats_engine/gc_profiler.rb +1 -1
  192. data/lib/new_relic/agent/stats_engine/stats_hash.rb +1 -1
  193. data/lib/new_relic/agent/supported_versions.rb +3 -3
  194. data/lib/new_relic/agent/synthetics_event_aggregator.rb +1 -1
  195. data/lib/new_relic/agent/system_info.rb +13 -4
  196. data/lib/new_relic/agent/threading/agent_thread.rb +1 -1
  197. data/lib/new_relic/agent/threading/backtrace_node.rb +1 -1
  198. data/lib/new_relic/agent/threading/backtrace_service.rb +1 -1
  199. data/lib/new_relic/agent/threading/thread_profile.rb +1 -1
  200. data/lib/new_relic/agent/timestamp_sampled_buffer.rb +1 -1
  201. data/lib/new_relic/agent/tracer.rb +34 -19
  202. data/lib/new_relic/agent/transaction.rb +104 -82
  203. data/lib/new_relic/agent/transaction/abstract_segment.rb +31 -4
  204. data/lib/new_relic/agent/transaction/datastore_segment.rb +1 -1
  205. data/lib/new_relic/agent/transaction/distributed_tracer.rb +171 -0
  206. data/lib/new_relic/agent/transaction/distributed_tracing.rb +58 -147
  207. data/lib/new_relic/agent/transaction/external_request_segment.rb +30 -37
  208. data/lib/new_relic/agent/transaction/message_broker_segment.rb +4 -12
  209. data/lib/new_relic/agent/transaction/request_attributes.rb +1 -1
  210. data/lib/new_relic/agent/transaction/segment.rb +24 -2
  211. data/lib/new_relic/agent/transaction/slowest_sample_buffer.rb +1 -1
  212. data/lib/new_relic/agent/transaction/synthetics_sample_buffer.rb +1 -1
  213. data/lib/new_relic/agent/transaction/trace.rb +3 -5
  214. data/lib/new_relic/agent/transaction/trace_builder.rb +1 -1
  215. data/lib/new_relic/agent/transaction/trace_context.rb +168 -0
  216. data/lib/new_relic/agent/transaction/trace_node.rb +11 -9
  217. data/lib/new_relic/agent/transaction/tracing.rb +1 -1
  218. data/lib/new_relic/agent/transaction/transaction_sample_buffer.rb +1 -1
  219. data/lib/new_relic/agent/transaction_error_primitive.rb +11 -16
  220. data/lib/new_relic/agent/transaction_event_aggregator.rb +1 -1
  221. data/lib/new_relic/agent/transaction_event_primitive.rb +29 -40
  222. data/lib/new_relic/agent/transaction_event_recorder.rb +1 -1
  223. data/lib/new_relic/agent/transaction_metrics.rb +1 -1
  224. data/lib/new_relic/agent/transaction_sampler.rb +1 -1
  225. data/lib/new_relic/agent/transaction_time_aggregator.rb +1 -1
  226. data/lib/new_relic/agent/utilization/aws.rb +1 -1
  227. data/lib/new_relic/agent/utilization/azure.rb +1 -1
  228. data/lib/new_relic/agent/utilization/gcp.rb +1 -1
  229. data/lib/new_relic/agent/utilization/pcf.rb +1 -1
  230. data/lib/new_relic/agent/utilization/vendor.rb +1 -1
  231. data/lib/new_relic/agent/utilization_data.rb +1 -1
  232. data/lib/new_relic/agent/vm.rb +1 -1
  233. data/lib/new_relic/agent/vm/jruby_vm.rb +1 -1
  234. data/lib/new_relic/agent/vm/monotonic_gc_profiler.rb +1 -1
  235. data/lib/new_relic/agent/vm/mri_vm.rb +1 -1
  236. data/lib/new_relic/agent/vm/snapshot.rb +1 -1
  237. data/lib/new_relic/agent/worker_loop.rb +1 -1
  238. data/lib/new_relic/cli/command.rb +1 -1
  239. data/lib/new_relic/cli/commands/deployments.rb +1 -1
  240. data/lib/new_relic/cli/commands/install.rb +4 -3
  241. data/lib/new_relic/coerce.rb +32 -7
  242. data/lib/new_relic/collection_helper.rb +1 -1
  243. data/lib/new_relic/constants.rb +38 -0
  244. data/lib/new_relic/control.rb +1 -1
  245. data/lib/new_relic/control/class_methods.rb +1 -1
  246. data/lib/new_relic/control/frameworks.rb +1 -1
  247. data/lib/new_relic/control/frameworks/external.rb +1 -1
  248. data/lib/new_relic/control/frameworks/merb.rb +1 -1
  249. data/lib/new_relic/control/frameworks/rails.rb +1 -1
  250. data/lib/new_relic/control/frameworks/rails3.rb +1 -1
  251. data/lib/new_relic/control/frameworks/rails4.rb +1 -1
  252. data/lib/new_relic/control/frameworks/rails_notifications.rb +1 -1
  253. data/lib/new_relic/control/frameworks/ruby.rb +1 -1
  254. data/lib/new_relic/control/frameworks/sinatra.rb +1 -1
  255. data/lib/new_relic/control/instance_methods.rb +11 -2
  256. data/lib/new_relic/control/instrumentation.rb +1 -1
  257. data/lib/new_relic/control/server_methods.rb +1 -1
  258. data/lib/new_relic/delayed_job_injection.rb +1 -1
  259. data/lib/new_relic/dependency_detection.rb +5 -5
  260. data/lib/new_relic/environment_report.rb +6 -2
  261. data/lib/new_relic/helper.rb +1 -1
  262. data/lib/new_relic/language_support.rb +1 -1
  263. data/lib/new_relic/latest_changes.rb +2 -2
  264. data/lib/new_relic/local_environment.rb +1 -1
  265. data/lib/new_relic/metric_data.rb +1 -1
  266. data/lib/new_relic/metric_spec.rb +1 -1
  267. data/lib/new_relic/metrics.rb +1 -1
  268. data/lib/new_relic/noticed_error.rb +39 -18
  269. data/lib/new_relic/rack.rb +1 -1
  270. data/lib/new_relic/rack/agent_hooks.rb +1 -1
  271. data/lib/new_relic/rack/agent_middleware.rb +1 -1
  272. data/lib/new_relic/rack/browser_monitoring.rb +6 -1
  273. data/lib/new_relic/recipes.rb +1 -1
  274. data/lib/new_relic/recipes/capistrano3.rb +1 -1
  275. data/lib/new_relic/recipes/capistrano_legacy.rb +1 -1
  276. data/lib/new_relic/supportability_helper.rb +15 -1
  277. data/lib/new_relic/version.rb +2 -2
  278. data/lib/newrelic_rpm.rb +1 -1
  279. data/lib/sequel/extensions/newrelic_instrumentation.rb +1 -1
  280. data/lib/sequel/plugins/newrelic_instrumentation.rb +1 -1
  281. data/lib/tasks/all.rb +1 -1
  282. data/lib/tasks/multiverse.rb +26 -1
  283. data/lib/tasks/newrelic.rb +1 -1
  284. data/lib/tasks/tests.rake +6 -1
  285. data/newrelic_rpm.gemspec +19 -13
  286. data/recipes/newrelic.rb +1 -1
  287. data/test/agent_helper.rb +332 -72
  288. metadata +103 -38
  289. data/lib/new_relic/agent/cross_app_monitor.rb +0 -110
  290. data/lib/new_relic/agent/distributed_trace_monitor.rb +0 -40
  291. data/lib/new_relic/agent/http_clients/abstract_request.rb +0 -31
  292. data/lib/new_relic/agent/transaction/attributes.rb +0 -154
  293. data/lib/tasks/versions.html.erb +0 -28
  294. data/lib/tasks/versions.postface.html +0 -8
  295. data/lib/tasks/versions.preface.html +0 -9
  296. data/lib/tasks/versions.rake +0 -65
  297. data/lib/tasks/versions.txt.erb +0 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e0981d305747247f1ac56c96ff7268cfd8b9bd7d419e8b800f2daf9193ae1dee
4
- data.tar.gz: 9b4ca44ed6641fe4ea5f71296d8042f3ed5024a9d8d1dc3230241f02cab529fd
3
+ metadata.gz: efe710ed6af08e45e611d34471d346723637357202d478afa086aac1f253516f
4
+ data.tar.gz: b184b7a749f8f64810aa39955c05d598ad5f747d90eb4f847b135e52024e8123
5
5
  SHA512:
6
- metadata.gz: 8596846993859508c5acf8fc54155572332a75258f1970b01b9d89974ec7a4f935d5f728f2826bbac8190e49f368e51d961b6754f2742248a228458fa225763d
7
- data.tar.gz: b07bc5d7dbd98faec43a76514ac6314f5f9c8667941db20b68ac4f13fddbf69656c7b75d1d3b02f4c1d46873aecf528bd5062c96f4895bf2a4234bd48da5999d
6
+ metadata.gz: 107f74976e67377a0a620ad71fa29f236d7c8325a124c702fa13d7a3687cd8210b162a8fb460f4ab4462b5badb53b2ef8082c6be47d66cd5032a915a59600ea6
7
+ data.tar.gz: 76108939cf031153994e9b914a7952fab254bf457609bb521d2c095693558f686ed153331fb8d5a37cf9a2023ad77293152633407087b86ce91b1c9055372422
data/.gitignore CHANGED
@@ -1,4 +1,5 @@
1
1
  Gemfile.lock
2
+ Guard*
2
3
  .DS\_Store
3
4
  .svn/
4
5
  *~
@@ -27,3 +28,6 @@ lib/new_relic/build.rb
27
28
  artifacts/
28
29
  test/performance/log/
29
30
  test/performance/script/log/
31
+ infinite_tracing/log/
32
+ infinite_tracing/test/new_relic/infinite_tracing/log
33
+ test/fixtures/cross_agent_tests/*/README.md
@@ -4,6 +4,10 @@ services:
4
4
  - memcached
5
5
  - rabbitmq
6
6
 
7
+ notifications:
8
+ slack:
9
+ secure: Ziq6vzXmc1S+SZnJF7DyjprRgzZKvVK5TXtnNJAoH4EFchziCqko+75hMxDZ/6Y2kShcijgbzZSkIIVSiuYyx0Jgxdsmwed7yrs91uv2WsUw2/l+taOTBIAMa/m9PZppsRqmkywxWeeTPL6cf65Vg3PYRuqzj83nczUFJo4UNrA=
10
+
7
11
  language: ruby
8
12
 
9
13
  dist: precise
@@ -16,19 +20,19 @@ before_install:
16
20
  - jdk_switcher use oraclejdk8
17
21
  - sudo rm -f /etc/apt/sources.list.d/travis_ci_zeromq3.list
18
22
  - gem --version
19
- - ./test/script/before_install/update_rubygems.sh
20
- - rvm @global do gem uninstall bundler --all --executables || true
21
- - gem uninstall bundler --all --executables || true
22
- - gem install bundler -v=1.17.3
23
+ - "echo 'gem: --no-rdoc --no-ri --no-document' > ~/.gemrc"
24
+ - ./test/script/before_install/conditionally_upgrade_rubygems.sh
23
25
  - ./test/script/before_install/gemstash_mirror.sh
26
+ - "echo GEMSTASH_MIRROR: $GEMSTASH_MIRROR"
24
27
  - bundle --version
25
28
 
26
- install: bundle install
29
+ install: bundle install --jobs 4
27
30
 
28
31
  addons:
29
32
  apt:
30
33
  update: true
31
34
  packages:
35
+ - libgmp3-dev
32
36
  - openssl
33
37
  - libssl-dev
34
38
  - build-essential
@@ -40,13 +44,14 @@ script: ./test/script/ci.sh
40
44
 
41
45
  branches:
42
46
  only:
43
- - master
47
+ - main
44
48
  - dev
45
49
  - release
46
50
 
47
51
  rvm:
48
52
  # Run slowest builds first to try and optimize overall cycle time.
49
53
  - jruby-9.2.6.0
54
+ - 2.7.0
50
55
  - 2.6.1
51
56
  - 2.5.3
52
57
  - 2.4.2
@@ -62,7 +67,7 @@ env:
62
67
  global:
63
68
  - BUNDLE_PATH=/home/travis/bundle
64
69
  - MONGODB=2.6.11
65
- - JAVA_OPTS="-XX:+TieredCompilation -XX:TieredStopAtLevel=1 -Xmx640m"
70
+ - JAVA_OPTS="-XX:+TieredCompilation -XX:TieredStopAtLevel=1 -Xmx1024m -XX:CICompilerCount=1 -Xshare:auto"
66
71
  - JRUBY_OPTS="-Xcompile.invokedynamic=false -J-Djruby.compile.mode=OFF"
67
72
  - RBXOPT="-Xcompiler.no_rbc -Xint"
68
73
  - SERIALIZE=1
@@ -77,6 +82,7 @@ env:
77
82
  - TYPE=UNIT ENVIRONMENT=rails42
78
83
  - TYPE=UNIT ENVIRONMENT=rails50
79
84
  - TYPE=UNIT ENVIRONMENT=rails51
85
+ - TYPE=UNIT ENVIRONMENT=rails52
80
86
  - TYPE=UNIT ENVIRONMENT=rails60
81
87
  - TYPE=UNIT ENVIRONMENT=norails
82
88
  - TYPE=FUNCTIONAL GROUP=agent
@@ -89,6 +95,7 @@ env:
89
95
  - TYPE=FUNCTIONAL GROUP=sinatra
90
96
  - TYPE=FUNCTIONAL GROUP=rest
91
97
  - TYPE=FUNCTIONAL GROUP=background_2
98
+ - TYPE=FUNCTIONAL GROUP=infinite_tracing
92
99
  - TYPE=NULLVERSE
93
100
 
94
101
  matrix:
@@ -98,6 +105,44 @@ matrix:
98
105
  fast_finish: true
99
106
  exclude:
100
107
  # Unsupported Rails/Ruby combinations
108
+ # 2.7
109
+ - rvm: 2.7.0
110
+ env: TYPE=UNIT ENVIRONMENT=rails30
111
+ - rvm: 2.7.0
112
+ env: TYPE=UNIT ENVIRONMENT=rails31
113
+ - rvm: 2.7.0
114
+ env: TYPE=UNIT ENVIRONMENT=rails32
115
+ - rvm: 2.7.0
116
+ env: TYPE=UNIT ENVIRONMENT=rails40
117
+ - rvm: 2.7.0
118
+ env: TYPE=UNIT ENVIRONMENT=rails41
119
+
120
+ - rvm: 2.7.0
121
+ env: TYPE=UNIT ENVIRONMENT=rails42 # rails (= 4.2.11) depends on bundler (< 2.0, >= 1.3.0)
122
+ - rvm: 2.7.0
123
+ env: TYPE=UNIT ENVIRONMENT=rails50 # rails (= 5.0.0) depends on bundler (< 2.0, >= 1.3.0)
124
+ - rvm: 2.7.0
125
+ env: TYPE=UNIT ENVIRONMENT=rails51 # rails (= 5.1.0) depends on bundler (< 2.0, >= 1.3.0)
126
+ - rvm: 2.7.0
127
+ env: TYPE=UNIT ENVIRONMENT=rails52 # rails (= 5.2.0) depends on bundler (< 2.0, >= 1.3.0)
128
+ - rvm: 2.7.0
129
+ env: TYPE=FUNCTIONAL GROUP=api # blocked: https://github.com/solnic/coercible/issues/27
130
+ - rvm: 2.7.0
131
+ env: TYPE=FUNCTIONAL GROUP=sinatra # padrino (~> 0.14.0) depends on bundler (~> 1.0)
132
+
133
+ - rvm: 2.7.0
134
+ env: TYPE=UNIT ENVIRONMENT=rails42 # rails (= 4.2.11) depends on bundler (< 2.0, >= 1.3.0)
135
+ - rvm: 2.7.0
136
+ env: TYPE=UNIT ENVIRONMENT=rails50 # rails (= 5.0.0) depends on bundler (< 2.0, >= 1.3.0)
137
+ - rvm: 2.7.0
138
+ env: TYPE=UNIT ENVIRONMENT=rails51 # rails (= 5.1.0) depends on bundler (< 2.0, >= 1.3.0)
139
+ - rvm: 2.7.0
140
+ env: TYPE=UNIT ENVIRONMENT=rails52 # rails (= 5.2.0) depends on bundler (< 2.0, >= 1.3.0)
141
+ - rvm: 2.7.0
142
+ env: TYPE=FUNCTIONAL GROUP=api # blocked: https://github.com/solnic/coercible/issues/27
143
+ - rvm: 2.7.0
144
+ env: TYPE=FUNCTIONAL GROUP=sinatra # padrino (~> 0.14.0) depends on bundler (~> 1.0)
145
+
101
146
  # 2.6
102
147
  - rvm: 2.6.1
103
148
  env: TYPE=UNIT ENVIRONMENT=rails30
@@ -149,6 +194,8 @@ matrix:
149
194
  env: TYPE=UNIT ENVIRONMENT=rails50
150
195
  - rvm: 2.1.10
151
196
  env: TYPE=UNIT ENVIRONMENT=rails51
197
+ - rvm: 2.1.10
198
+ env: TYPE=UNIT ENVIRONMENT=rails52
152
199
  - rvm: 2.1.10
153
200
  env: TYPE=UNIT ENVIRONMENT=rails60
154
201
 
@@ -157,6 +204,8 @@ matrix:
157
204
  env: TYPE=UNIT ENVIRONMENT=rails50
158
205
  - rvm: 2.0.0-p648
159
206
  env: TYPE=UNIT ENVIRONMENT=rails51
207
+ - rvm: 2.0.0-p648
208
+ env: TYPE=UNIT ENVIRONMENT=rails52
160
209
  - rvm: 2.0.0-p648
161
210
  env: TYPE=UNIT ENVIRONMENT=rails60
162
211
 
@@ -173,3 +222,19 @@ matrix:
173
222
  env: TYPE=UNIT ENVIRONMENT=rails41
174
223
  - rvm: jruby-9.2.6.0
175
224
  env: TYPE=UNIT ENVIRONMENT=rails60
225
+ - rvm: jruby-9.2.6.0
226
+ env: TYPE=UNIT ENVIRONMENT=rails52
227
+
228
+ # Excluding unsupported Rubies for grpc
229
+ - rvm: 2.0.0-p648
230
+ env: TYPE=FUNCTIONAL GROUP=infinite_tracing
231
+ - rvm: 2.1.10
232
+ env: TYPE=FUNCTIONAL GROUP=infinite_tracing
233
+ - rvm: 2.2.8
234
+ env: TYPE=FUNCTIONAL GROUP=infinite_tracing
235
+ - rvm: 2.3.5
236
+ env: TYPE=FUNCTIONAL GROUP=infinite_tracing
237
+ - rvm: 2.4.2
238
+ env: TYPE=FUNCTIONAL GROUP=infinite_tracing
239
+ - rvm: jruby-9.2.6.0
240
+ env: TYPE=FUNCTIONAL GROUP=infinite_tracing
@@ -1,14 +1,316 @@
1
1
  # New Relic Ruby Agent Release Notes #
2
2
 
3
+ ## v6.12.0
4
+
5
+ * **Security: Updated all uses of Rake to >= 12.3.3**
6
+
7
+ All versions of Rake testing prior to 12.3.3 were removed to address
8
+ [CVE-2020-8130](https://nvd.nist.gov/vuln/detail/CVE-2020-8130).
9
+ No functionality in the agent was removed nor deprecated with this change, and older versions
10
+ of rake are expected to continue to work as they have in the past. However, versions of
11
+ rake < 12.3.3 are no longer tested nor supported.
12
+
13
+ * **Bugfix: fixes an error capturing content length in middleware on multi-part responses**
14
+
15
+ In the middleware tracing, the `Content-Length` header is sometimes returned as an array of
16
+ values when content is a multi-part response. Previously, the agent would fail with
17
+ "NoMethodError: undefined method `to_i` for Array" Error. This bug is now fixed and
18
+ multi-part content lengths are summed for a total when an `Array` is present.
19
+
20
+ * **Added support for auto-instrumenting Mongo gem versions 2.6 to 2.12**
21
+
22
+ * **Bugfix: MongoDB instrumentation did not handle CommandFailed events when noticing errors**
23
+
24
+ The mongo gem sometimes returns a CommandFailed object instead of a CommandSucceeded object with
25
+ error attributes populated. The instrumentation did not handle noticing errors on CommandFailed
26
+ objects and resulted in logging an error and backtrace to the log file.
27
+
28
+ Additionally, a bug in recording the metric for "findAndModify" as all lowercased "findandmodify"
29
+ for versions 2.1 through 2.5 was fixed.
30
+
31
+ * **Bugfix: Priority Sampler causes crash in high throughput environents in rare cases**
32
+
33
+ Previously, the priority sampling buffer would, in rare cases, generate an error in high-throughput
34
+ environments once capacity is reached and the sampling algorthym engages. This issue is fixed.
35
+
36
+ * **Additional Transaction Information applied to Span Events**
37
+
38
+ When Distributed Tracing and/or Infinite Tracing are enabled, the Agent will now incorporate additional information from the Transaction Event on to the root Span Event of the transaction.
39
+
40
+ The following items are affected:
41
+ * Custom attribute values applied to the Transaction via our [add_custom_attributes](http://www.rubydoc.info/github/newrelic/newrelic-ruby-agent/NewRelic/Agent#add_custom_attributes-instance_method) API method.
42
+ * Request parameters: `request.parameters.*`
43
+ * Request headers: `request.headers.*`
44
+ * Response headers: `response.headers.*`
45
+ * Resque job arguments: `job.resque.args.*`
46
+ * Sidekiq job arguments: `job.sidekiq.args.*`
47
+ * Messaging arguments: `message.*`
48
+ * `httpResponseCode` (deprecated in this version; see note below)/`http.statusCode`
49
+ * `response.status`
50
+ * `request.uri`
51
+ * `request.method`
52
+ * `host.displayName`
53
+
54
+ * **Security Recommendation**
55
+
56
+ Review your Transaction attributes [include](https://docs.newrelic.com/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby#transaction_events-attributes-include) and [exclude](https://docs.newrelic.com/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby#transaction_events-attributes-exclude) configurations. Any attribute include or exclude settings specific to Transaction Events should be applied
57
+ to your Span attributes [include](https://docs.newrelic.com/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby#span-events-attributes-include) and [exclude](https://docs.newrelic.com/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby#span-events-attributes-exclude) configuration or your global attributes [include](https://docs.newrelic.com/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby#attributes-include) and [exclude](https://docs.newrelic.com/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby#attributes-exclude) configuration.
58
+
59
+ * **Agent attribute deprecation: httpResponseCode**
60
+
61
+ Starting in this agent version, the [agent attribute](https://docs.newrelic.com/docs/agents/ruby-agent/attributes/ruby-agent-attributes#attributes) `httpResponseCode` (string value) has been deprecated. Customers can begin using `http.statusCode`
62
+ (integer value) immediately, and `httpResponseCode` will be removed in the agent's next major version update.
63
+
64
+ * **Bugfix: Eliminate warnings for distributed tracing when using sidekiq**
65
+
66
+ Previously, using sidekiq with distributed tracing disabled resulted in warning messages\
67
+ `WARN : Not configured to accept distributed trace headers`\
68
+ ` WARN : Not configured to insert distributed trace headers`\
69
+ These messages no longer appear.
70
+
71
+ ## v6.11.0
72
+
73
+ * **Infinite Tracing**
74
+
75
+ This release adds support for [Infinite Tracing](https://docs.newrelic.com/docs/understand-dependencies/distributed-tracing/enable-configure/enable-distributed-tracing). Infinite Tracing observes 100% of your distributed traces and provides visualizations for the most actionable data. With Infinite Tracing, you get examples of errors and long-running traces so you can better diagnose and troubleshoot your systems.
76
+
77
+ Configure your agent to send traces to a trace observer in New Relic Edge. View distributed traces through New Relic’s UI. There is no need to install a collector on your network.
78
+
79
+ Infinite Tracing is currently available on a sign-up basis. If you would like to participate, please contact your sales representative.
80
+
81
+ * **Bugfix: Cross Application Tracing (CAT) adds a missing field to response**
82
+
83
+ Previously, the Ruby agent's Cross Application Tracing header was missing a reserved field that would lead to an error
84
+ in the Go agent's processing of incoming headers from the Ruby agent. This fix adds that missing field to the headers, eliminating
85
+ the issue with traces involving the Ruby agent and the Go agent.
86
+
87
+ * **Bugfix: Environment Report now supports Rails >= 6.1**
88
+
89
+ Previously, users of Rails 6.1 would see the following deprecation warning appear when the Ruby agent attempted to
90
+ collect enviroment data: `DEPRECATION WARNING: [] is deprecated and will be removed from Rails 6.2`. These deprecation methods
91
+ no longer appear.
92
+
93
+ Thanks to Sébastien Dubois (sedubois) for reporting this issue and for the contribution!
94
+
95
+ * **Added distributed tracing to Sidekiq jobs**
96
+
97
+ Previously, Sidekiq jobs were not included in portions of <a href="https://docs.newrelic.com/docs/understand-dependencies/distributed-tracing/get-started/introduction-distributed-tracing">distributed traces</a> captured by the Ruby agent. Now you can view distributed
98
+ traces that include Sidekiq jobs instrumented by the Ruby agent.
99
+
100
+ Thanks to andreaseger for the contribution!
101
+
102
+ * **Bugfix: Eliminate warnings appearing when using `add_method_tracer` with Ruby 2.7**
103
+
104
+ Previously, using `add_method_tracer` with Ruby 2.7 to trace a method that included keyword arguments resulted in warning messages:
105
+ `warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call`. These messages no
106
+ longer appear.
107
+
108
+ Thanks to Harm de Wit and Atsuo Fukaya for reporting the issue!
109
+
110
+ ## v6.10.0
111
+
112
+ * **Error attributes now added to each span that exits with an error or exception**
113
+
114
+ Error attributes `error.class` and `error.message` are now included on the span event in which an error
115
+ or exception was noticed, and, in the case of unhandled exceptions, on any ancestor spans that also exit with an error.
116
+ The public API method `notice_error` now attaches these error attributes to the currently executing span.
117
+
118
+ <a href="https://docs.newrelic.com/docs/apm/distributed-tracing/ui-data/understand-use-distributed-tracing-data#rules-limits">Spans with error details are now highlighted red in the Distributed Tracing UI</a>, and error details will expose the associated
119
+ `error.class` and `error.message`. It is also now possible to see when an exception leaves the boundary of the span,
120
+ and if it is caught in an ancestor span without reaching the entry span. NOTE: This “bubbling up” of exceptions will impact
121
+ the error count when compared to prior behavior for the same trace. It is possible to have a trace that now has span errors
122
+ without the trace level showing an error.
123
+
124
+ If multiple errors occur on the same span, only the most recent error information is added to the attributes. Prior errors on the same span are overwritten.
125
+
126
+ These span event attributes conform to <a href="https://docs.newrelic.com/docs/agents/manage-apm-agents/agent-data/manage-errors-apm-collect-ignore-or-mark-expected#ignore">ignored errors</a> and <a href="https://docs.newrelic.com/docs/agents/manage-apm-agents/agent-data/manage-errors-apm-collect-ignore-or-mark-expected#expected">expected errors</a>.
127
+
128
+ * **Added tests for latest Grape / Rack combination**
129
+
130
+ For a short period of time, the latest versions of Grape and Rack had compatibility issues.
131
+ Generally, Rack 2.1.0 should be avoided in all cases due to breaking changes in many gems
132
+ reliant on Rack. We recommend using either Rack <= 2.0.9, or using latest Rack when using Grape
133
+ (2.2.2 at the time of this writing).
134
+
135
+ * **Bugfix: Calculate Content-Length in bytes**
136
+
137
+ Previously, the Content-Length HTTP header would be incorrect after injecting the Browser Monitoring
138
+ JS when the response contained Unicode characters because the value was not calculated in bytes.
139
+ The Content-Length is now correctly updated.
140
+
141
+ Thanks to thaim for the contribution!
142
+
143
+ * **Bugfix: Fix Content-Length calculation when response is nil**
144
+
145
+ Previously, calculating the Content-Length HTTP header would result in a `NoMethodError` in the case of
146
+ a nil response. These errors will no longer occur in such a case.
147
+
148
+ Thanks to Johan Van Ryseghem for the contribution!
149
+
150
+ * **Bugfix: DecoratingFormatter now logs timestamps as millisecond Integers**
151
+
152
+ Previously the agent sent timestamps as a Float with milliseconds as part of the
153
+ fractional value. Logs in Context was changed to only accept Integer values and this
154
+ release changes DecoratingFormatter to match.
155
+
156
+ * **Added --force option to `newrelic install` cli command to allow overwriting newrelic.yml**
157
+
158
+ * **Bugfix: The fully qualified hostname now works correctly for BSD and Solaris**
159
+
160
+ Previously, when running on systems such as BSD and Solaris, the agent was unable to determine the fully
161
+ qualified domain name, which is used to help link Ruby agent data with data from New Relic Infrastructure.
162
+ This information is now successfully collected on various BSD distros and Solaris.
163
+
164
+
165
+ ## v6.9.0
166
+
167
+ * **Added support for W3C Trace Context, with easy upgrade from New Relic trace context**
168
+
169
+ * [Distributed Tracing now supports W3C Trace Context headers](https://docs.newrelic.com/docs/understand-dependencies/distributed-tracing/get-started/introduction-distributed-tracing#w3c-support) for HTTP protocols when distributed tracing is enabled. Our implementation can accept and emit both
170
+ the W3C trace header format and the New Relic trace header format. This simplifies
171
+ agent upgrades, allowing trace context to be propagated between services with older
172
+ and newer releases of New Relic agents. W3C trace header format will always be
173
+ accepted and emitted. New Relic trace header format will be accepted, and you can
174
+ optionally disable emission of the New Relic trace header format.
175
+
176
+ * When distributed tracing is enabled by setting `distributed_tracing.enabled` to `true`,
177
+ the Ruby agent will now accept W3C's `traceparent` and `tracestate` headers when
178
+ calling `DistributedTracing.accept_distributed_trace_headers` or automatically via
179
+ `http` instrumentation. When calling `DistributedTracing.insert_distributed_trace_headers`,
180
+ or automatically via `http` instrumentation, the Ruby agent will include the W3C
181
+ headers along with the New Relic distributed tracing header, unless the New Relic
182
+ trace header format is disabled by setting `exclude_newrelic_header` setting to `true`.
183
+
184
+ * Added `DistributedTracing.accept_distributed_trace_headers` API for accepting both
185
+ New Relic and W3C TraceContext distributed traces.
186
+
187
+ * Deprecated `DistributedTracing.accept_distributed_trace_payload` which will be removed
188
+ in a future major release.
189
+
190
+ * Added `DistributedTracing.insert_distributed_trace_headers` API for adding outbound
191
+ distributed trace headers. Both W3C TraceContext and New Relic formats will be
192
+ included unless `distributed_tracing.exclude_newrelic_header: true`.
193
+
194
+ * Deprecated `DistributedTracing.create_distributed_trace_payload` which will be removed
195
+ in a future major release.
196
+
197
+ Known Issues and Workarounds
198
+
199
+ * If a .NET agent is initiating traces as the root service, do not upgrade your
200
+ downstream Ruby New Relic agents to this agent release.
201
+
202
+ * **Official Ruby 2.7 support**
203
+
204
+ The Ruby agent has been verified to run with Ruby 2.7.0.
205
+
206
+ * **Reduced allocations when tracing transactions using API calls**
207
+
208
+ Default empty hashes for `options` parameter were not frozen, leading to
209
+ excessive and unnecessary allocations when calling APIs for tracing transactions.
210
+
211
+ Thanks to Joel Turkel (jturkel) for the contribution!
212
+
213
+ * **Bugfix for Resque worker thread race conditions**
214
+
215
+ Recent changes in Rack surfaced issues marshalling data for resque, surfaced a potential race-condition with closing out the worker-threads before flushing the data pipe. This
216
+ is now fixed.
217
+
218
+ Thanks to Bertrand Paquet (bpaquet) for the contribution!
219
+
220
+ * **Bugfix for Content-Length when injecting Browser Monitoring JS**
221
+
222
+ The Content-Length HTTP header would be incorrect after injecting the Browser Monitoring
223
+ JS into the HEAD tag of the HTML source with Content-Length and lead to the HTML BODY content
224
+ being truncated in some cases. The Content-Length is now correctly updated after injecting the
225
+ Browser Monitoring JS script.
226
+
227
+ Thanks to Slava Kardakov (ojab) for the contribution!
228
+
229
+ ## v6.8.0
230
+
231
+ * **Initial Ruby 2.7 support**
232
+
233
+ The Ruby agent has been verified to run with Ruby 2.7.0-preview1.
234
+
235
+ * **New API method to add custom attributes to Spans**
236
+
237
+ New API method for adding custom attributes to spans. Previously, custom
238
+ attributes were only available at the Transaction level. Now, with Span
239
+ level custom attributes, more granular tagging of events is possible for
240
+ easier isolation and review of trace events. For more information:
241
+
242
+ * [`Agent#add_custom_span_attributes`](https://www.rubydoc.info/github/newrelic/newrelic-ruby-agent/NewRelic/Agent#add_custom_span_attributes)
243
+
244
+ * **Enables ability to migrate to Configurable Security Policies (CSP) on a per agent
245
+ basis for accounts already using High Security Mode (HSM).**
246
+
247
+ When both [HSM](https://docs.newrelic.com/docs/agents/manage-apm-agents/configuration/high-security-mode) and [CSP](https://docs.newrelic.com/docs/agents/manage-apm-agents/configuration/enable-configurable-security-policies) are enabled for an account, an agent (this version or later)
248
+ can successfully connect with either `high_security: true` or the appropriate
249
+ `security_policies_token` configured. `high_security` has been added as part of
250
+ the preconnect payload.
251
+
252
+ * **Bugfix for Logs in Context combined with act-fluent-logger-rails**
253
+
254
+ Previously, when using the Ruby agent's Logs in Context logger
255
+ to link logging data with trace and entity metadata for an
256
+ improved experience in the UI, customers who were also using
257
+ the `act-fluent-logger-rails` gem would see a `NoMethodError`
258
+ for `clear_tags!` that would interfere with the use of this
259
+ feature. This error no longer appears, allowing customers to
260
+ combine the use of Logs in Context with the use of this gem.
261
+
262
+ Please note that the Logs in Context logger does not support
263
+ tagged logging; if you are initializing your logger with a
264
+ `log_tags` argument, your custom tags may not appear on the
265
+ final version of your logs.
266
+
267
+ * **Bugfix for parsing invalid newrelic.yml**
268
+
269
+ Previously, if the newrelic.yml configuration file was invalid, and the agent
270
+ could not start as a result, the agent would not log any indication of
271
+ the problem.
272
+
273
+ This version of the agent will emit a FATAL message to STDOUT when this scenario
274
+ occurs so that customers can address issues with newrelic.yml that prevent startup.
275
+
276
+ * **Configuration options containing the terms "whitelist" and "blacklist" deprecated**
277
+
278
+ The following local configuration settings have been deprecated:
279
+
280
+ * `autostart.blacklisted_constants`: use `autostart.denylisted_constants` instead.
281
+ * `autostart.blacklisted_executables`: use `autostart.denylisted_executables` instead.
282
+ * `autostart.blacklisted_rake_tasks`: use `autostart.denylisted_rake_tasks` instead.
283
+ * `strip_exception_messages.whitelist`: use `strip_exception_messages.allowed_classes` instead.
284
+
285
+ * **Bugfix for module loading and constant resolution in Rails**
286
+
287
+ Starting in version 6.3, the Ruby agent has caused module loading and constant
288
+ resolution to sometimes fail, which caused errors in some Rails applications.
289
+ These errors were generally `NoMethodError` exceptions or I18n errors
290
+ `translation missing` or `invalid locale`. These errors would not appear if the agent
291
+ was removed from the application's Gemfile.
292
+ This version of the agent fixes these issues with module loading and constant
293
+ resolution, so these errors no longer occur.
294
+
295
+ * **Bugfix: failed to get urandom**
296
+
297
+ Previous versions of the agent would fail unexpectedly when the Ruby process used
298
+ every available file descriptor. The failures would include this message:
299
+ ```
300
+ ERROR : RuntimeError: failed to get urandom
301
+ ```
302
+ This version of the agent uses a different strategy for generating random IDs, and
303
+ will not fail in the same way when no file descriptors are available.
304
+
3
305
  ## v6.7.0
4
306
 
5
307
  * **Trace and Entity Metadata API**
6
308
 
7
309
  Several new API methods have been added to the agent:
8
- * [`Agent#linking_metadata`](https://www.rubydoc.info/github/newrelic/rpm/NewRelic/Agent#linking_metadata-instance_method)
9
- * [`Tracer#trace_id`](https://www.rubydoc.info/github/newrelic/rpm/NewRelic/Agent/Tracer#trace_id-class_method)
10
- * [`Tracer#span_id`](https://www.rubydoc.info/github/newrelic/rpm/NewRelic/Agent/Tracer#span_id-class_method)
11
- * [`Tracer#sampled?`](https://www.rubydoc.info/github/newrelic/rpm/NewRelic/Agent/Tracer#sampled?-class_method)
310
+ * [`Agent#linking_metadata`](https://www.rubydoc.info/github/newrelic/newrelic-ruby-agent/NewRelic/Agent#linking_metadata-instance_method)
311
+ * [`Tracer#trace_id`](https://www.rubydoc.info/github/newrelic/newrelic-ruby-agent/NewRelic/Agent/Tracer#trace_id-class_method)
312
+ * [`Tracer#span_id`](https://www.rubydoc.info/github/newrelic/newrelic-ruby-agent/NewRelic/Agent/Tracer#span_id-class_method)
313
+ * [`Tracer#sampled?`](https://www.rubydoc.info/github/newrelic/newrelic-ruby-agent/NewRelic/Agent/Tracer#sampled?-class_method)
12
314
 
13
315
  These API methods allow you to access information that can be used to link data of your choosing to a trace or entity.
14
316