newrelic_rpm 6.9.0.363 → 6.12.0.367

Sign up to get free protection for your applications and to get access to all the features.
Files changed (289) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/.travis.yml +32 -2
  4. data/CHANGELOG.md +172 -10
  5. data/CODE_OF_CONDUCT.md +46 -0
  6. data/CONTRIBUTING.md +56 -12
  7. data/Gemfile +6 -2
  8. data/LICENSE +208 -38
  9. data/README.md +61 -89
  10. data/Rakefile +2 -0
  11. data/THIRD_PARTY_NOTICES.md +213 -0
  12. data/bin/nrdebug +1 -1
  13. data/init.rb +1 -1
  14. data/install.rb +1 -1
  15. data/lib/new_relic/agent.rb +15 -5
  16. data/lib/new_relic/agent/adaptive_sampler.rb +1 -1
  17. data/lib/new_relic/agent/agent.rb +11 -6
  18. data/lib/new_relic/agent/agent_logger.rb +1 -1
  19. data/lib/new_relic/agent/attribute_filter.rb +1 -1
  20. data/lib/new_relic/agent/attribute_processing.rb +1 -1
  21. data/lib/new_relic/agent/attributes.rb +3 -1
  22. data/lib/new_relic/agent/audit_logger.rb +1 -1
  23. data/lib/new_relic/agent/autostart.rb +1 -1
  24. data/lib/new_relic/agent/chained_call.rb +1 -1
  25. data/lib/new_relic/agent/commands/agent_command.rb +1 -1
  26. data/lib/new_relic/agent/commands/agent_command_router.rb +1 -1
  27. data/lib/new_relic/agent/commands/thread_profiler_session.rb +1 -1
  28. data/lib/new_relic/agent/configuration.rb +1 -1
  29. data/lib/new_relic/agent/configuration/default_source.rb +28 -1
  30. data/lib/new_relic/agent/configuration/dotted_hash.rb +1 -1
  31. data/lib/new_relic/agent/configuration/environment_source.rb +1 -1
  32. data/lib/new_relic/agent/configuration/event_harvest_config.rb +1 -1
  33. data/lib/new_relic/agent/configuration/high_security_source.rb +1 -1
  34. data/lib/new_relic/agent/configuration/manager.rb +1 -1
  35. data/lib/new_relic/agent/configuration/manual_source.rb +1 -1
  36. data/lib/new_relic/agent/configuration/mask_defaults.rb +1 -1
  37. data/lib/new_relic/agent/configuration/security_policy_source.rb +1 -1
  38. data/lib/new_relic/agent/configuration/server_source.rb +1 -1
  39. data/lib/new_relic/agent/configuration/yaml_source.rb +1 -1
  40. data/lib/new_relic/agent/connect/request_builder.rb +1 -1
  41. data/lib/new_relic/agent/connect/response_handler.rb +1 -1
  42. data/lib/new_relic/agent/custom_event_aggregator.rb +1 -1
  43. data/lib/new_relic/agent/database.rb +1 -1
  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 +1 -1
  47. data/lib/new_relic/agent/database/postgres_explain_obfuscator.rb +1 -1
  48. data/lib/new_relic/agent/datastores.rb +1 -1
  49. data/lib/new_relic/agent/datastores/metric_helper.rb +1 -1
  50. data/lib/new_relic/agent/datastores/mongo.rb +2 -2
  51. data/lib/new_relic/agent/datastores/mongo/event_formatter.rb +1 -1
  52. data/lib/new_relic/agent/datastores/mongo/metric_translator.rb +1 -1
  53. data/lib/new_relic/agent/datastores/mongo/obfuscator.rb +1 -1
  54. data/lib/new_relic/agent/datastores/mongo/statement_formatter.rb +1 -1
  55. data/lib/new_relic/agent/datastores/redis.rb +1 -1
  56. data/lib/new_relic/agent/deprecator.rb +1 -1
  57. data/lib/new_relic/agent/distributed_tracing.rb +1 -1
  58. data/lib/new_relic/agent/distributed_tracing/cross_app_payload.rb +3 -2
  59. data/lib/new_relic/agent/distributed_tracing/cross_app_tracing.rb +1 -1
  60. data/lib/new_relic/agent/distributed_tracing/{distributed_trace_intrinsics.rb → distributed_trace_attributes.rb} +9 -5
  61. data/lib/new_relic/agent/distributed_tracing/distributed_trace_metrics.rb +1 -1
  62. data/lib/new_relic/agent/distributed_tracing/distributed_trace_payload.rb +3 -4
  63. data/lib/new_relic/agent/distributed_tracing/distributed_trace_transport_type.rb +1 -1
  64. data/lib/new_relic/agent/distributed_tracing/trace_context.rb +1 -1
  65. data/lib/new_relic/agent/distributed_tracing/trace_context_payload.rb +2 -2
  66. data/lib/new_relic/agent/encoding_normalizer.rb +1 -1
  67. data/lib/new_relic/agent/error_collector.rb +31 -12
  68. data/lib/new_relic/agent/error_event_aggregator.rb +5 -5
  69. data/lib/new_relic/agent/error_trace_aggregator.rb +1 -1
  70. data/lib/new_relic/agent/event_aggregator.rb +1 -1
  71. data/lib/new_relic/agent/event_buffer.rb +1 -1
  72. data/lib/new_relic/agent/event_listener.rb +1 -1
  73. data/lib/new_relic/agent/event_loop.rb +1 -1
  74. data/lib/new_relic/agent/external.rb +1 -1
  75. data/lib/new_relic/agent/guid_generator.rb +1 -1
  76. data/lib/new_relic/agent/harvester.rb +1 -1
  77. data/lib/new_relic/agent/heap.rb +1 -1
  78. data/lib/new_relic/agent/hostname.rb +8 -2
  79. data/lib/new_relic/agent/http_clients/abstract.rb +82 -0
  80. data/lib/new_relic/agent/http_clients/curb_wrappers.rb +25 -20
  81. data/lib/new_relic/agent/http_clients/excon_wrappers.rb +29 -14
  82. data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +18 -22
  83. data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +11 -12
  84. data/lib/new_relic/agent/http_clients/net_http_wrappers.rb +17 -5
  85. data/lib/new_relic/agent/http_clients/typhoeus_wrappers.rb +5 -7
  86. data/lib/new_relic/agent/http_clients/uri_util.rb +4 -3
  87. data/lib/new_relic/agent/instrumentation.rb +1 -1
  88. data/lib/new_relic/agent/instrumentation/action_cable_subscriber.rb +5 -6
  89. data/lib/new_relic/agent/instrumentation/action_controller_subscriber.rb +5 -1
  90. data/lib/new_relic/agent/instrumentation/action_view_subscriber.rb +12 -3
  91. data/lib/new_relic/agent/instrumentation/active_job.rb +1 -1
  92. data/lib/new_relic/agent/instrumentation/active_merchant.rb +1 -1
  93. data/lib/new_relic/agent/instrumentation/active_record.rb +85 -38
  94. data/lib/new_relic/agent/instrumentation/active_record_helper.rb +82 -24
  95. data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +1 -1
  96. data/lib/new_relic/agent/instrumentation/active_record_prepend.rb +92 -34
  97. data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +8 -3
  98. data/lib/new_relic/agent/instrumentation/active_storage.rb +1 -1
  99. data/lib/new_relic/agent/instrumentation/active_storage_subscriber.rb +9 -5
  100. data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +24 -8
  101. data/lib/new_relic/agent/instrumentation/authlogic.rb +1 -1
  102. data/lib/new_relic/agent/instrumentation/bunny.rb +114 -51
  103. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +1 -1
  104. data/lib/new_relic/agent/instrumentation/curb.rb +92 -27
  105. data/lib/new_relic/agent/instrumentation/data_mapper.rb +4 -2
  106. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +61 -25
  107. data/lib/new_relic/agent/instrumentation/excon.rb +1 -1
  108. data/lib/new_relic/agent/instrumentation/excon/connection.rb +7 -4
  109. data/lib/new_relic/agent/instrumentation/excon/middleware.rb +3 -2
  110. data/lib/new_relic/agent/instrumentation/grape.rb +1 -1
  111. data/lib/new_relic/agent/instrumentation/http.rb +6 -3
  112. data/lib/new_relic/agent/instrumentation/httpclient.rb +5 -3
  113. data/lib/new_relic/agent/instrumentation/ignore_actions.rb +1 -1
  114. data/lib/new_relic/agent/instrumentation/memcache.rb +4 -2
  115. data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +7 -3
  116. data/lib/new_relic/agent/instrumentation/merb/controller.rb +1 -1
  117. data/lib/new_relic/agent/instrumentation/merb/errors.rb +1 -1
  118. data/lib/new_relic/agent/instrumentation/middleware_proxy.rb +12 -4
  119. data/lib/new_relic/agent/instrumentation/middleware_tracing.rb +9 -7
  120. data/lib/new_relic/agent/instrumentation/mongo.rb +10 -4
  121. data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +36 -3
  122. data/lib/new_relic/agent/instrumentation/net.rb +59 -22
  123. data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +26 -2
  124. data/lib/new_relic/agent/instrumentation/padrino.rb +40 -16
  125. data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +1 -1
  126. data/lib/new_relic/agent/instrumentation/queue_time.rb +1 -1
  127. data/lib/new_relic/agent/instrumentation/rack.rb +36 -13
  128. data/lib/new_relic/agent/instrumentation/rails/action_controller.rb +1 -1
  129. data/lib/new_relic/agent/instrumentation/rails/action_web_service.rb +1 -1
  130. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +1 -1
  131. data/lib/new_relic/agent/instrumentation/rails_middleware.rb +1 -1
  132. data/lib/new_relic/agent/instrumentation/rails_notifications/action_cable.rb +1 -1
  133. data/lib/new_relic/agent/instrumentation/rails_notifications/action_controller.rb +1 -1
  134. data/lib/new_relic/agent/instrumentation/rails_notifications/action_view.rb +1 -1
  135. data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +1 -1
  136. data/lib/new_relic/agent/instrumentation/rake.rb +54 -20
  137. data/lib/new_relic/agent/instrumentation/redis.rb +141 -56
  138. data/lib/new_relic/agent/instrumentation/resque.rb +1 -1
  139. data/lib/new_relic/agent/instrumentation/sequel.rb +1 -1
  140. data/lib/new_relic/agent/instrumentation/sequel_helper.rb +1 -1
  141. data/lib/new_relic/agent/instrumentation/sidekiq.rb +48 -24
  142. data/lib/new_relic/agent/instrumentation/sinatra.rb +62 -23
  143. data/lib/new_relic/agent/instrumentation/sinatra/ignorer.rb +1 -1
  144. data/lib/new_relic/agent/instrumentation/sinatra/transaction_namer.rb +1 -1
  145. data/lib/new_relic/agent/instrumentation/sunspot.rb +1 -1
  146. data/lib/new_relic/agent/instrumentation/typhoeus.rb +23 -6
  147. data/lib/new_relic/agent/internal_agent_error.rb +1 -1
  148. data/lib/new_relic/agent/javascript_instrumentor.rb +1 -1
  149. data/lib/new_relic/agent/log_once.rb +1 -1
  150. data/lib/new_relic/agent/logging.rb +2 -2
  151. data/lib/new_relic/agent/memory_logger.rb +1 -1
  152. data/lib/new_relic/agent/messaging.rb +1 -1
  153. data/lib/new_relic/agent/method_tracer.rb +16 -5
  154. data/lib/new_relic/agent/method_tracer_helpers.rb +2 -2
  155. data/lib/new_relic/agent/monitors.rb +1 -1
  156. data/lib/new_relic/agent/monitors/cross_app_monitor.rb +1 -1
  157. data/lib/new_relic/agent/monitors/distributed_tracing_monitor.rb +1 -1
  158. data/lib/new_relic/agent/monitors/inbound_request_monitor.rb +1 -1
  159. data/lib/new_relic/agent/monitors/synthetics_monitor.rb +1 -1
  160. data/lib/new_relic/agent/new_relic_service.rb +1 -2
  161. data/lib/new_relic/agent/new_relic_service/encoders.rb +1 -1
  162. data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +1 -1
  163. data/lib/new_relic/agent/new_relic_service/marshaller.rb +1 -1
  164. data/lib/new_relic/agent/new_relic_service/security_policy_settings.rb +1 -1
  165. data/lib/new_relic/agent/noticible_error.rb +22 -0
  166. data/lib/new_relic/agent/null_logger.rb +1 -1
  167. data/lib/new_relic/agent/obfuscator.rb +1 -1
  168. data/lib/new_relic/agent/parameter_filtering.rb +1 -1
  169. data/lib/new_relic/agent/payload_metric_mapping.rb +1 -1
  170. data/lib/new_relic/agent/pipe_channel_manager.rb +1 -1
  171. data/lib/new_relic/agent/pipe_service.rb +1 -1
  172. data/lib/new_relic/agent/prepend_supportability.rb +1 -1
  173. data/lib/new_relic/agent/priority_sampled_buffer.rb +8 -5
  174. data/lib/new_relic/agent/range_extensions.rb +1 -1
  175. data/lib/new_relic/agent/rules_engine.rb +1 -1
  176. data/lib/new_relic/agent/rules_engine/replacement_rule.rb +1 -1
  177. data/lib/new_relic/agent/rules_engine/segment_terms_rule.rb +1 -1
  178. data/lib/new_relic/agent/sampler.rb +1 -1
  179. data/lib/new_relic/agent/sampler_collection.rb +1 -1
  180. data/lib/new_relic/agent/samplers/cpu_sampler.rb +1 -1
  181. data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +1 -1
  182. data/lib/new_relic/agent/samplers/memory_sampler.rb +1 -1
  183. data/lib/new_relic/agent/samplers/object_sampler.rb +1 -1
  184. data/lib/new_relic/agent/samplers/vm_sampler.rb +1 -1
  185. data/lib/new_relic/agent/span_event_aggregator.rb +1 -1
  186. data/lib/new_relic/agent/span_event_primitive.rb +71 -37
  187. data/lib/new_relic/agent/sql_sampler.rb +4 -4
  188. data/lib/new_relic/agent/stats.rb +1 -1
  189. data/lib/new_relic/agent/stats_engine.rb +1 -1
  190. data/lib/new_relic/agent/stats_engine/gc_profiler.rb +1 -1
  191. data/lib/new_relic/agent/stats_engine/stats_hash.rb +1 -1
  192. data/lib/new_relic/agent/supported_versions.rb +1 -1
  193. data/lib/new_relic/agent/synthetics_event_aggregator.rb +1 -1
  194. data/lib/new_relic/agent/system_info.rb +13 -4
  195. data/lib/new_relic/agent/threading/agent_thread.rb +1 -1
  196. data/lib/new_relic/agent/threading/backtrace_node.rb +1 -1
  197. data/lib/new_relic/agent/threading/backtrace_service.rb +1 -1
  198. data/lib/new_relic/agent/threading/thread_profile.rb +1 -1
  199. data/lib/new_relic/agent/timestamp_sampled_buffer.rb +1 -1
  200. data/lib/new_relic/agent/tracer.rb +31 -16
  201. data/lib/new_relic/agent/transaction.rb +67 -46
  202. data/lib/new_relic/agent/transaction/abstract_segment.rb +29 -2
  203. data/lib/new_relic/agent/transaction/datastore_segment.rb +1 -1
  204. data/lib/new_relic/agent/transaction/distributed_tracer.rb +3 -3
  205. data/lib/new_relic/agent/transaction/distributed_tracing.rb +2 -2
  206. data/lib/new_relic/agent/transaction/external_request_segment.rb +26 -10
  207. data/lib/new_relic/agent/transaction/message_broker_segment.rb +1 -1
  208. data/lib/new_relic/agent/transaction/request_attributes.rb +1 -1
  209. data/lib/new_relic/agent/transaction/segment.rb +18 -2
  210. data/lib/new_relic/agent/transaction/slowest_sample_buffer.rb +1 -1
  211. data/lib/new_relic/agent/transaction/synthetics_sample_buffer.rb +1 -1
  212. data/lib/new_relic/agent/transaction/trace.rb +1 -1
  213. data/lib/new_relic/agent/transaction/trace_builder.rb +1 -1
  214. data/lib/new_relic/agent/transaction/trace_context.rb +1 -1
  215. data/lib/new_relic/agent/transaction/trace_node.rb +1 -1
  216. data/lib/new_relic/agent/transaction/tracing.rb +1 -1
  217. data/lib/new_relic/agent/transaction/transaction_sample_buffer.rb +1 -1
  218. data/lib/new_relic/agent/transaction_error_primitive.rb +8 -6
  219. data/lib/new_relic/agent/transaction_event_aggregator.rb +1 -1
  220. data/lib/new_relic/agent/transaction_event_primitive.rb +3 -3
  221. data/lib/new_relic/agent/transaction_event_recorder.rb +1 -1
  222. data/lib/new_relic/agent/transaction_metrics.rb +1 -1
  223. data/lib/new_relic/agent/transaction_sampler.rb +1 -1
  224. data/lib/new_relic/agent/transaction_time_aggregator.rb +1 -1
  225. data/lib/new_relic/agent/utilization/aws.rb +1 -1
  226. data/lib/new_relic/agent/utilization/azure.rb +1 -1
  227. data/lib/new_relic/agent/utilization/gcp.rb +1 -1
  228. data/lib/new_relic/agent/utilization/pcf.rb +1 -1
  229. data/lib/new_relic/agent/utilization/vendor.rb +1 -1
  230. data/lib/new_relic/agent/utilization_data.rb +1 -1
  231. data/lib/new_relic/agent/vm.rb +1 -1
  232. data/lib/new_relic/agent/vm/jruby_vm.rb +1 -1
  233. data/lib/new_relic/agent/vm/monotonic_gc_profiler.rb +1 -1
  234. data/lib/new_relic/agent/vm/mri_vm.rb +1 -1
  235. data/lib/new_relic/agent/vm/snapshot.rb +1 -1
  236. data/lib/new_relic/agent/worker_loop.rb +1 -1
  237. data/lib/new_relic/cli/command.rb +1 -1
  238. data/lib/new_relic/cli/commands/deployments.rb +1 -1
  239. data/lib/new_relic/cli/commands/install.rb +4 -3
  240. data/lib/new_relic/coerce.rb +1 -1
  241. data/lib/new_relic/collection_helper.rb +1 -1
  242. data/lib/new_relic/constants.rb +5 -1
  243. data/lib/new_relic/control.rb +1 -1
  244. data/lib/new_relic/control/class_methods.rb +1 -1
  245. data/lib/new_relic/control/frameworks.rb +1 -1
  246. data/lib/new_relic/control/frameworks/external.rb +1 -1
  247. data/lib/new_relic/control/frameworks/merb.rb +1 -1
  248. data/lib/new_relic/control/frameworks/rails.rb +1 -1
  249. data/lib/new_relic/control/frameworks/rails3.rb +1 -1
  250. data/lib/new_relic/control/frameworks/rails4.rb +1 -1
  251. data/lib/new_relic/control/frameworks/rails_notifications.rb +1 -1
  252. data/lib/new_relic/control/frameworks/ruby.rb +1 -1
  253. data/lib/new_relic/control/frameworks/sinatra.rb +1 -1
  254. data/lib/new_relic/control/instance_methods.rb +1 -1
  255. data/lib/new_relic/control/instrumentation.rb +1 -1
  256. data/lib/new_relic/control/server_methods.rb +1 -1
  257. data/lib/new_relic/delayed_job_injection.rb +1 -1
  258. data/lib/new_relic/dependency_detection.rb +1 -1
  259. data/lib/new_relic/environment_report.rb +6 -2
  260. data/lib/new_relic/helper.rb +1 -1
  261. data/lib/new_relic/language_support.rb +1 -1
  262. data/lib/new_relic/latest_changes.rb +2 -2
  263. data/lib/new_relic/local_environment.rb +1 -1
  264. data/lib/new_relic/metric_data.rb +1 -1
  265. data/lib/new_relic/metric_spec.rb +1 -1
  266. data/lib/new_relic/metrics.rb +1 -1
  267. data/lib/new_relic/noticed_error.rb +29 -10
  268. data/lib/new_relic/rack.rb +1 -1
  269. data/lib/new_relic/rack/agent_hooks.rb +1 -1
  270. data/lib/new_relic/rack/agent_middleware.rb +1 -1
  271. data/lib/new_relic/rack/browser_monitoring.rb +3 -2
  272. data/lib/new_relic/recipes.rb +1 -1
  273. data/lib/new_relic/recipes/capistrano3.rb +1 -1
  274. data/lib/new_relic/recipes/capistrano_legacy.rb +1 -1
  275. data/lib/new_relic/supportability_helper.rb +1 -1
  276. data/lib/new_relic/version.rb +2 -2
  277. data/lib/newrelic_rpm.rb +1 -1
  278. data/lib/sequel/extensions/newrelic_instrumentation.rb +1 -1
  279. data/lib/sequel/plugins/newrelic_instrumentation.rb +1 -1
  280. data/lib/tasks/all.rb +1 -1
  281. data/lib/tasks/multiverse.rb +26 -1
  282. data/lib/tasks/newrelic.rb +1 -1
  283. data/lib/tasks/tests.rake +1 -1
  284. data/newrelic_rpm.gemspec +11 -9
  285. data/recipes/newrelic.rb +1 -1
  286. data/test/agent_helper.rb +231 -70
  287. metadata +18 -15
  288. data/lib/new_relic/agent/http_clients/abstract_request.rb +0 -31
  289. data/true +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3eb269d5c36e6139c7b617d3083418a8c8acf85e94c4f1005b1241aafc9471dd
4
- data.tar.gz: da6387b811e5402cd2a0da7b80acc5b88338768cf36e01b1c86d7576c2592f3d
3
+ metadata.gz: efe710ed6af08e45e611d34471d346723637357202d478afa086aac1f253516f
4
+ data.tar.gz: b184b7a749f8f64810aa39955c05d598ad5f747d90eb4f847b135e52024e8123
5
5
  SHA512:
6
- metadata.gz: 077d136a9c8e3771f506ee67422983ae4782e23b9118e9cb070f35fdf3af7b8a9d9ed125725db34945d8195529c0c22bbde0a7ab313d1fae9488485e40f7398d
7
- data.tar.gz: c577d7a04fac1e22f043156635d4d2eeb3674707a2f50f7b11756855f4b4ae7e3479a6783d45decdc1a4950ce2b69e8d1d691bad6ebe67b504b098838fa6c86f
6
+ metadata.gz: 107f74976e67377a0a620ad71fa29f236d7c8325a124c702fa13d7a3687cd8210b162a8fb460f4ab4462b5badb53b2ef8082c6be47d66cd5032a915a59600ea6
7
+ data.tar.gz: 76108939cf031153994e9b914a7952fab254bf457609bb521d2c095693558f686ed153331fb8d5a37cf9a2023ad77293152633407087b86ce91b1c9055372422
data/.gitignore CHANGED
@@ -28,3 +28,6 @@ lib/new_relic/build.rb
28
28
  artifacts/
29
29
  test/performance/log/
30
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
@@ -28,6 +32,7 @@ addons:
28
32
  apt:
29
33
  update: true
30
34
  packages:
35
+ - libgmp3-dev
31
36
  - openssl
32
37
  - libssl-dev
33
38
  - build-essential
@@ -39,10 +44,9 @@ script: ./test/script/ci.sh
39
44
 
40
45
  branches:
41
46
  only:
42
- - master
47
+ - main
43
48
  - dev
44
49
  - release
45
- - RUBY-2227_w3c_trace_context_poc
46
50
 
47
51
  rvm:
48
52
  # Run slowest builds first to try and optimize overall cycle time.
@@ -78,6 +82,7 @@ env:
78
82
  - TYPE=UNIT ENVIRONMENT=rails42
79
83
  - TYPE=UNIT ENVIRONMENT=rails50
80
84
  - TYPE=UNIT ENVIRONMENT=rails51
85
+ - TYPE=UNIT ENVIRONMENT=rails52
81
86
  - TYPE=UNIT ENVIRONMENT=rails60
82
87
  - TYPE=UNIT ENVIRONMENT=norails
83
88
  - TYPE=FUNCTIONAL GROUP=agent
@@ -90,6 +95,7 @@ env:
90
95
  - TYPE=FUNCTIONAL GROUP=sinatra
91
96
  - TYPE=FUNCTIONAL GROUP=rest
92
97
  - TYPE=FUNCTIONAL GROUP=background_2
98
+ - TYPE=FUNCTIONAL GROUP=infinite_tracing
93
99
  - TYPE=NULLVERSE
94
100
 
95
101
  matrix:
@@ -117,6 +123,8 @@ matrix:
117
123
  env: TYPE=UNIT ENVIRONMENT=rails50 # rails (= 5.0.0) depends on bundler (< 2.0, >= 1.3.0)
118
124
  - rvm: 2.7.0
119
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)
120
128
  - rvm: 2.7.0
121
129
  env: TYPE=FUNCTIONAL GROUP=api # blocked: https://github.com/solnic/coercible/issues/27
122
130
  - rvm: 2.7.0
@@ -128,6 +136,8 @@ matrix:
128
136
  env: TYPE=UNIT ENVIRONMENT=rails50 # rails (= 5.0.0) depends on bundler (< 2.0, >= 1.3.0)
129
137
  - rvm: 2.7.0
130
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)
131
141
  - rvm: 2.7.0
132
142
  env: TYPE=FUNCTIONAL GROUP=api # blocked: https://github.com/solnic/coercible/issues/27
133
143
  - rvm: 2.7.0
@@ -184,6 +194,8 @@ matrix:
184
194
  env: TYPE=UNIT ENVIRONMENT=rails50
185
195
  - rvm: 2.1.10
186
196
  env: TYPE=UNIT ENVIRONMENT=rails51
197
+ - rvm: 2.1.10
198
+ env: TYPE=UNIT ENVIRONMENT=rails52
187
199
  - rvm: 2.1.10
188
200
  env: TYPE=UNIT ENVIRONMENT=rails60
189
201
 
@@ -192,6 +204,8 @@ matrix:
192
204
  env: TYPE=UNIT ENVIRONMENT=rails50
193
205
  - rvm: 2.0.0-p648
194
206
  env: TYPE=UNIT ENVIRONMENT=rails51
207
+ - rvm: 2.0.0-p648
208
+ env: TYPE=UNIT ENVIRONMENT=rails52
195
209
  - rvm: 2.0.0-p648
196
210
  env: TYPE=UNIT ENVIRONMENT=rails60
197
211
 
@@ -208,3 +222,19 @@ matrix:
208
222
  env: TYPE=UNIT ENVIRONMENT=rails41
209
223
  - rvm: jruby-9.2.6.0
210
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,5 +1,167 @@
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
+
3
165
  ## v6.9.0
4
166
 
5
167
  * **Added support for W3C Trace Context, with easy upgrade from New Relic trace context**
@@ -34,7 +196,7 @@
34
196
 
35
197
  Known Issues and Workarounds
36
198
 
37
- * If a .NET agent is initiating traces as the root service, do not upgrade your
199
+ * If a .NET agent is initiating traces as the root service, do not upgrade your
38
200
  downstream Ruby New Relic agents to this agent release.
39
201
 
40
202
  * **Official Ruby 2.7 support**
@@ -43,10 +205,10 @@
43
205
 
44
206
  * **Reduced allocations when tracing transactions using API calls**
45
207
 
46
- Default empty hashes for `options` parameter were not frozen, leading to
208
+ Default empty hashes for `options` parameter were not frozen, leading to
47
209
  excessive and unnecessary allocations when calling APIs for tracing transactions.
48
210
 
49
- Thanks to Joel Turkel (jturkel) for the contribution!
211
+ Thanks to Joel Turkel (jturkel) for the contribution!
50
212
 
51
213
  * **Bugfix for Resque worker thread race conditions**
52
214
 
@@ -56,10 +218,10 @@
56
218
  Thanks to Bertrand Paquet (bpaquet) for the contribution!
57
219
 
58
220
  * **Bugfix for Content-Length when injecting Browser Monitoring JS**
59
-
221
+
60
222
  The Content-Length HTTP header would be incorrect after injecting the Browser Monitoring
61
223
  JS into the HEAD tag of the HTML source with Content-Length and lead to the HTML BODY content
62
- being truncated in some cases. The Content-Length is now correctly updated after injecting the
224
+ being truncated in some cases. The Content-Length is now correctly updated after injecting the
63
225
  Browser Monitoring JS script.
64
226
 
65
227
  Thanks to Slava Kardakov (ojab) for the contribution!
@@ -77,7 +239,7 @@
77
239
  level custom attributes, more granular tagging of events is possible for
78
240
  easier isolation and review of trace events. For more information:
79
241
 
80
- * [`Agent#add_custom_span_attributes`](https://www.rubydoc.info/github/newrelic/rpm/NewRelic/Agent#add_custom_span_attributes)
242
+ * [`Agent#add_custom_span_attributes`](https://www.rubydoc.info/github/newrelic/newrelic-ruby-agent/NewRelic/Agent#add_custom_span_attributes)
81
243
 
82
244
  * **Enables ability to migrate to Configurable Security Policies (CSP) on a per agent
83
245
  basis for accounts already using High Security Mode (HSM).**
@@ -145,10 +307,10 @@
145
307
  * **Trace and Entity Metadata API**
146
308
 
147
309
  Several new API methods have been added to the agent:
148
- * [`Agent#linking_metadata`](https://www.rubydoc.info/github/newrelic/rpm/NewRelic/Agent#linking_metadata-instance_method)
149
- * [`Tracer#trace_id`](https://www.rubydoc.info/github/newrelic/rpm/NewRelic/Agent/Tracer#trace_id-class_method)
150
- * [`Tracer#span_id`](https://www.rubydoc.info/github/newrelic/rpm/NewRelic/Agent/Tracer#span_id-class_method)
151
- * [`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)
152
314
 
153
315
  These API methods allow you to access information that can be used to link data of your choosing to a trace or entity.
154
316
 
@@ -0,0 +1,46 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
6
+
7
+ ## Our Standards
8
+
9
+ Examples of behavior that contributes to creating a positive environment include:
10
+
11
+ * Using welcoming and inclusive language
12
+ * Being respectful of differing viewpoints and experiences
13
+ * Gracefully accepting constructive criticism
14
+ * Focusing on what is best for the community
15
+ * Showing empathy towards other community members
16
+
17
+ Examples of unacceptable behavior by participants include:
18
+
19
+ * The use of sexualized language or imagery and unwelcome sexual attention or advances
20
+ * Trolling, insulting/derogatory comments, and personal or political attacks
21
+ * Public or private harassment
22
+ * Publishing others' private information, such as a physical or electronic address, without explicit permission
23
+ * Other conduct which could reasonably be considered inappropriate in a professional setting
24
+
25
+ ## Our Responsibilities
26
+
27
+ Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
28
+
29
+ Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
30
+
31
+ ## Scope
32
+
33
+ This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
34
+
35
+ ## Enforcement
36
+
37
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at opensource@newrelic.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
38
+
39
+ Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40
+
41
+ ## Attribution
42
+
43
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
44
+
45
+ [homepage]: http://contributor-covenant.org
46
+ [version]: http://contributor-covenant.org/version/1/4/
@@ -1,8 +1,8 @@
1
1
  # Guidelines for Contributing Code
2
2
 
3
- At New Relic we welcome community code contributions to the Ruby agent, and have
4
- taken effort to make this process easy for both contributors and our development
5
- team.
3
+ New Relic welcomes code contributions by the Ruby community, and
4
+ have taken effort to make this process easy for both contributors and our
5
+ development team.
6
6
 
7
7
  When contributing, keep in mind that the agent runs in a wide variety of Ruby
8
8
  language implementations (e.g. 2.x.x, jruby, etc.) as well as a wide variety of
@@ -15,10 +15,32 @@ projects. Syntax must be compatible with all supported Ruby implementations and
15
15
  we can't assume the presence of any specific libraries, including `ActiveSupport`,
16
16
  `ActiveRecord`, etc.
17
17
 
18
+ ## Process
19
+
20
+ ### Feature Requests
21
+
22
+ Feature requests should be submitted in the [Issue tracker](../../issues), with
23
+ a description of the expected behavior & use case. Before submitting an Issue,
24
+ please search for similar ones in the [closed
25
+ issues](../../issues?q=is%3Aissue+is%3Aclosed+label%3Aenhancement).
26
+
27
+ ### Pull Requests
28
+
29
+ We can only accept PRs for version v6.12.0 or greater due to open source
30
+ licensing restrictions.
31
+
32
+ ### Code of Conduct
33
+
34
+ Before contributing please read the [code of conduct](./CODE_OF_CONDUCT.md)
35
+
36
+ Note that our [code of conduct](./CODE_OF_CONDUCT.md) applies to all platforms
37
+ and venues related to this project; please follow it in all your interactions
38
+ with the project and its participants.
39
+
18
40
  ## Branches
19
41
 
20
- The head of master will generally have New Relic's latest release. However,
21
- New Relic reserves the ability to push an edge to the master. If you download a
42
+ The head of `main` will generally have New Relic's latest release. However,
43
+ New Relic reserves the ability to push an edge to the `main`. If you download a
22
44
  release from this repo, use the appropriate tag. New Relic usually pushes beta
23
45
  versions of a release to a working branch before tagging them for General
24
46
  Availability.
@@ -74,15 +96,37 @@ These tests can be run by invoking:
74
96
  bundle exec rake test:multiverse
75
97
 
76
98
  More details are available in
77
- [test/multiverse/README.md](https://github.com/newrelic/rpm/blob/master/test/multiverse/README.md).
99
+ [test/multiverse/README.md](https://github.com/newrelic/newrelic-ruby-agent/blob/main/test/multiverse/README.md).
100
+
101
+ ## Contributor License Agreement
102
+
103
+ Keep in mind that when you submit your Pull Request, you'll need to sign the CLA
104
+ via the click-through using CLA-Assistant. If you'd like to execute our
105
+ corporate CLA, or if you have any questions, please drop us an email at
106
+ opensource@newrelic.com.
107
+
108
+ For more information about CLAs, please check out Alex Russell’s excellent post,
109
+ [“Why Do I Need to Sign This?”](https://infrequently.org/2008/06/why-do-i-need-to-sign-this/).
110
+
111
+ ## Slack
112
+
113
+ We host a public Slack with a dedicated channel for contributors and maintainers
114
+ of open source projects hosted by New Relic. If you are contributing to this
115
+ project, you're welcome to request access to the #oss-contributors channel in
116
+ the newrelicusers.slack.com workspace. To request access, see
117
+ https://newrelicusers-signup.herokuapp.com/.
118
+
119
+ ## Explorer's Hub
120
+
121
+ New Relic hosts and moderates an online forum where customers can interact with
122
+ New Relic employees as well as other customers to get help and share best
123
+ practices. Like all official New Relic open source projects, there's a related
124
+ Community topic in the New Relic Explorers Hub. You can find this project's
125
+ topic/threads here:
78
126
 
79
- ### And Finally...
127
+ [Explorer's Hub](https://discuss.newrelic.com/c/support-products-agents/ruby-agent)
80
128
 
81
- You are welcome to send pull requests to us - however, by doing so you agree
82
- that you are granting New Relic a non-exclusive, non-revokable, no-cost license
83
- to use the code, algorithms, patents, and ideas in that code in our products if
84
- we so choose. Fortunately, you also agree the code is provided as-is and you provide no
85
- warranties as to its fitness or correctness for any purpose.
129
+ ## And Finally...
86
130
 
87
131
  If you have any feedback on how we can make contributing easier, please get in
88
132
  touch at [support.newrelic.com](http://support.newrelic.com) and let us know!