newrelic_rpm 9.2.0 → 9.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/.build_ignore +26 -0
  3. data/CHANGELOG.md +197 -2
  4. data/README.md +8 -4
  5. data/lib/new_relic/agent/attribute_pre_filtering.rb +109 -0
  6. data/lib/new_relic/agent/configuration/default_source.rb +218 -63
  7. data/lib/new_relic/agent/configuration/environment_source.rb +1 -1
  8. data/lib/new_relic/agent/configuration/manager.rb +14 -0
  9. data/lib/new_relic/agent/configuration/yaml_source.rb +13 -0
  10. data/lib/new_relic/agent/distributed_tracing.rb +1 -1
  11. data/lib/new_relic/agent/error_collector.rb +1 -1
  12. data/lib/new_relic/agent/instrumentation/action_controller_other_subscriber.rb +1 -1
  13. data/lib/new_relic/agent/instrumentation/active_record.rb +1 -1
  14. data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +2 -1
  15. data/lib/new_relic/agent/instrumentation/active_support_logger/instrumentation.rb +4 -0
  16. data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +9 -0
  17. data/lib/new_relic/agent/instrumentation/concurrent_ruby/chain.rb +1 -1
  18. data/lib/new_relic/agent/instrumentation/concurrent_ruby/instrumentation.rb +3 -4
  19. data/lib/new_relic/agent/instrumentation/concurrent_ruby/prepend.rb +1 -1
  20. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +1 -2
  21. data/lib/new_relic/agent/instrumentation/curb/instrumentation.rb +4 -0
  22. data/lib/new_relic/agent/instrumentation/delayed_job/instrumentation.rb +3 -0
  23. data/lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb +4 -1
  24. data/lib/new_relic/agent/instrumentation/excon/middleware.rb +3 -0
  25. data/lib/new_relic/agent/instrumentation/fiber/chain.rb +10 -3
  26. data/lib/new_relic/agent/instrumentation/fiber/instrumentation.rb +1 -2
  27. data/lib/new_relic/agent/instrumentation/fiber/prepend.rb +10 -3
  28. data/lib/new_relic/agent/instrumentation/grape/instrumentation.rb +4 -0
  29. data/lib/new_relic/agent/instrumentation/grpc/client/instrumentation.rb +4 -0
  30. data/lib/new_relic/agent/instrumentation/grpc/server/instrumentation.rb +4 -0
  31. data/lib/new_relic/agent/instrumentation/grpc_client.rb +1 -1
  32. data/lib/new_relic/agent/instrumentation/grpc_server.rb +1 -1
  33. data/lib/new_relic/agent/instrumentation/httpclient/instrumentation.rb +4 -0
  34. data/lib/new_relic/agent/instrumentation/httprb/instrumentation.rb +4 -0
  35. data/lib/new_relic/agent/instrumentation/logger/instrumentation.rb +3 -0
  36. data/lib/new_relic/agent/instrumentation/memcache/instrumentation.rb +12 -3
  37. data/lib/new_relic/agent/instrumentation/memcache.rb +2 -2
  38. data/lib/new_relic/agent/instrumentation/net_http/instrumentation.rb +4 -0
  39. data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +4 -0
  40. data/lib/new_relic/agent/instrumentation/padrino/instrumentation.rb +4 -0
  41. data/lib/new_relic/agent/instrumentation/queue_time.rb +1 -1
  42. data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +6 -0
  43. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +4 -0
  44. data/lib/new_relic/agent/instrumentation/rails_notifications/action_cable.rb +1 -1
  45. data/lib/new_relic/agent/instrumentation/rake/instrumentation.rb +4 -0
  46. data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +4 -0
  47. data/lib/new_relic/agent/instrumentation/resque/instrumentation.rb +4 -0
  48. data/lib/new_relic/agent/instrumentation/roda/chain.rb +43 -0
  49. data/lib/new_relic/agent/instrumentation/roda/instrumentation.rb +56 -0
  50. data/lib/new_relic/agent/instrumentation/roda/prepend.rb +24 -0
  51. data/lib/new_relic/agent/instrumentation/roda/roda_transaction_namer.rb +30 -0
  52. data/lib/new_relic/agent/instrumentation/roda.rb +34 -0
  53. data/lib/new_relic/agent/instrumentation/sequel.rb +1 -1
  54. data/lib/new_relic/agent/instrumentation/sidekiq/client.rb +4 -0
  55. data/lib/new_relic/agent/instrumentation/sidekiq/server.rb +26 -3
  56. data/lib/new_relic/agent/instrumentation/sidekiq.rb +2 -2
  57. data/lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb +4 -0
  58. data/lib/new_relic/agent/instrumentation/stripe.rb +28 -0
  59. data/lib/new_relic/agent/instrumentation/stripe_subscriber.rb +77 -0
  60. data/lib/new_relic/agent/instrumentation/thread/chain.rb +1 -1
  61. data/lib/new_relic/agent/instrumentation/thread/instrumentation.rb +0 -1
  62. data/lib/new_relic/agent/instrumentation/thread/prepend.rb +1 -1
  63. data/lib/new_relic/agent/instrumentation/tilt/instrumentation.rb +4 -0
  64. data/lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb +5 -1
  65. data/lib/new_relic/agent/log_event_aggregator.rb +49 -2
  66. data/lib/new_relic/agent/log_event_attributes.rb +115 -0
  67. data/lib/new_relic/agent/logging.rb +4 -4
  68. data/lib/new_relic/agent/method_tracer_helpers.rb +26 -5
  69. data/lib/new_relic/agent/new_relic_service.rb +33 -17
  70. data/lib/new_relic/agent/pipe_service.rb +1 -1
  71. data/lib/new_relic/agent/tracer.rb +7 -6
  72. data/lib/new_relic/agent/transaction/abstract_segment.rb +52 -0
  73. data/lib/new_relic/agent/transaction/request_attributes.rb +45 -7
  74. data/lib/new_relic/agent/transaction/tracing.rb +6 -0
  75. data/lib/new_relic/agent/transaction.rb +9 -4
  76. data/lib/new_relic/agent/utilization/vendor.rb +5 -7
  77. data/lib/new_relic/agent.rb +50 -1
  78. data/lib/new_relic/cli/command.rb +1 -0
  79. data/lib/new_relic/control/class_methods.rb +1 -7
  80. data/lib/new_relic/control/frameworks/roda.rb +20 -0
  81. data/lib/new_relic/control/instrumentation.rb +0 -14
  82. data/lib/new_relic/dependency_detection.rb +16 -1
  83. data/lib/new_relic/language_support.rb +5 -0
  84. data/lib/new_relic/latest_changes.rb +1 -1
  85. data/lib/new_relic/noticed_error.rb +5 -2
  86. data/lib/new_relic/rack/agent_hooks.rb +1 -1
  87. data/lib/new_relic/rack/agent_middleware.rb +0 -16
  88. data/lib/new_relic/rack/browser_monitoring.rb +1 -1
  89. data/lib/new_relic/supportability_helper.rb +2 -0
  90. data/lib/new_relic/traced_thread.rb +2 -3
  91. data/lib/new_relic/version.rb +1 -1
  92. data/lib/sequel/extensions/new_relic_instrumentation.rb +1 -1
  93. data/lib/tasks/bump_version.rake +21 -0
  94. data/lib/tasks/config.rake +3 -2
  95. data/lib/tasks/helpers/config.html.erb +93 -0
  96. data/lib/tasks/helpers/format.rb +11 -7
  97. data/lib/tasks/helpers/newrelicyml.rb +144 -0
  98. data/lib/tasks/helpers/version_bump.rb +62 -0
  99. data/lib/tasks/newrelicyml.rake +13 -0
  100. data/newrelic.yml +364 -267
  101. data/newrelic_rpm.gemspec +11 -7
  102. metadata +36 -25
  103. data/.gitignore +0 -43
  104. data/.project +0 -23
  105. data/.rubocop.yml +0 -1845
  106. data/.rubocop_todo.yml +0 -61
  107. data/.simplecov +0 -16
  108. data/.snyk +0 -11
  109. data/.yardopts +0 -27
  110. data/Brewfile +0 -13
  111. data/DOCKER.md +0 -167
  112. data/Dockerfile +0 -10
  113. data/Guardfile +0 -27
  114. data/config/database.yml +0 -5
  115. data/config.dot +0 -278
  116. data/docker-compose.yml +0 -107
  117. data/lefthook.yml +0 -9
  118. data/lib/tasks/helpers/removers.rb +0 -33
  119. data/lib/tasks/multiverse.rake +0 -6
  120. data/lib/tasks/multiverse.rb +0 -84
@@ -3,6 +3,7 @@
3
3
  # frozen_string_literal: true
4
4
 
5
5
  require 'forwardable'
6
+ require_relative '../../constants'
6
7
 
7
8
  module NewRelic
8
9
  module Agent
@@ -24,7 +25,7 @@ module NewRelic
24
25
  # Does not appear in logs.
25
26
  def self.deprecated_description(new_setting, description)
26
27
  link_ref = new_setting.to_s.tr('.', '-')
27
- %{Please see: [#{new_setting}](docs/agents/ruby-agent/configuration/ruby-agent-configuration##{link_ref}). \n\n#{description}}
28
+ %{Please see: [#{new_setting}](##{link_ref}). \n\n#{description}}
28
29
  end
29
30
 
30
31
  class Boolean
@@ -115,6 +116,7 @@ module NewRelic
115
116
  :rails_notifications
116
117
  end
117
118
  when defined?(::Sinatra) && defined?(::Sinatra::Base) then :sinatra
119
+ when defined?(::Roda) then :roda
118
120
  when defined?(::NewRelic::IA) then :external
119
121
  else :ruby
120
122
  end
@@ -211,6 +213,22 @@ module NewRelic
211
213
  end
212
214
  end
213
215
 
216
+ def self.convert_to_hash(value)
217
+ return value if value.is_a?(Hash)
218
+
219
+ if value.is_a?(String)
220
+ return value.split(',').each_with_object({}) do |item, hash|
221
+ key, value = item.split('=')
222
+ hash[key] = value
223
+ end
224
+ end
225
+
226
+ raise ArgumentError.new(
227
+ "Config value '#{value}' of " \
228
+ "class #{value.class} couldn't be turned into a Hash."
229
+ )
230
+ end
231
+
214
232
  SEMICOLON = ';'.freeze
215
233
  def self.convert_to_list_on_semicolon(value)
216
234
  case value
@@ -318,7 +336,7 @@ module NewRelic
318
336
  :public => true,
319
337
  :type => String,
320
338
  :allowed_from_server => false,
321
- :description => 'Your New Relic <LicenseKey />.'
339
+ :description => 'Your New Relic <InlinePopover type="licenseKey" />.'
322
340
  },
323
341
  :log_level => {
324
342
  :default => 'info',
@@ -353,7 +371,7 @@ module NewRelic
353
371
  :public => true,
354
372
  :type => String,
355
373
  :allowed_from_server => false,
356
- :description => 'Your New Relic [user key](/docs/apis/intro-apis/new-relic-api-keys/#overview-keys). Required when using the New Relic REST API v2 to record deployments using the `newrelic deployments` command.'
374
+ :description => 'Your New Relic <InlinePopover type="userKey" />. Required when using the New Relic REST API v2 to record deployments using the `newrelic deployments` command.'
357
375
  },
358
376
  :backport_fast_active_record_connection_lookup => {
359
377
  :default => false,
@@ -386,7 +404,7 @@ module NewRelic
386
404
  When `true`, the agent captures HTTP request parameters and attaches them to transaction traces, traced errors, and [`TransactionError` events](/attribute-dictionary?attribute_name=&events_tids%5B%5D=8241).
387
405
 
388
406
  <Callout variant="caution">
389
- When using the `capture_params` setting, the Ruby agent will not attempt to filter secret information. <b>Recommendation:</b> To filter secret information from request parameters, use the [`attributes.include` setting](/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby) instead. For more information, see the <a href="/docs/agents/ruby-agent/attributes/ruby-attribute-examples#ex_req_params">Ruby attribute examples</a>.
407
+ When using the `capture_params` setting, the Ruby agent will not attempt to filter secret information. `Recommendation:` To filter secret information from request parameters, use the [`attributes.include` setting](/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby) instead. For more information, see the <a href="/docs/agents/ruby-agent/attributes/ruby-attribute-examples#ex_req_params">Ruby attribute examples</a>.
390
408
  </Callout>
391
409
  DESCRIPTION
392
410
  },
@@ -402,7 +420,13 @@ module NewRelic
402
420
  :public => true,
403
421
  :type => String,
404
422
  :allowed_from_server => false,
405
- :description => 'Path to <b>newrelic.yml</b>. If undefined, the agent checks the following directories (in order): <b>config/newrelic.yml</b>, <b>newrelic.yml</b>, <b>$HOME/.newrelic/newrelic.yml</b> and <b>$HOME/newrelic.yml</b>.'
423
+ :description => <<~DESC
424
+ Path to `newrelic.yml`. If undefined, the agent checks the following directories (in order):
425
+ * `config/newrelic.yml`
426
+ * `newrelic.yml`
427
+ * `$HOME/.newrelic/newrelic.yml`
428
+ * `$HOME/newrelic.yml`
429
+ DESC
406
430
  },
407
431
  :'exclude_newrelic_header' => {
408
432
  :default => false,
@@ -421,7 +445,7 @@ module NewRelic
421
445
  'Known use-case for this option is where Sinatra is running as an embedded service within another framework ' \
422
446
  'and the agent is detecting the Sinatra app and skipping the `at_exit` handler as a result. Sinatra classically ' \
423
447
  'runs the entire application in an `at_exit` block and would otherwise misbehave if the Agent\'s `at_exit` handler ' \
424
- 'was also installed in those circumstances. Note: `send_data_on_exit` should also be set to `true` in tandem with this setting.'
448
+ 'was also installed in those circumstances. Note: `send_data_on_exit` should also be set to `true` in tandem with this setting.'
425
449
  },
426
450
  :high_security => {
427
451
  :default => false,
@@ -582,8 +606,7 @@ module NewRelic
582
606
 
583
607
  - If you do not want the agent to capture query information, set this to `none`.
584
608
  - If you want the agent to capture all query information in its original form, set this to `raw`.
585
- - When you enable [high security mode](/docs/agents/manage-apm-agents/configuration/high-security-mode), this is automatically set to `obfuscated`.
586
- '
609
+ - When you enable [high security mode](/docs/agents/manage-apm-agents/configuration/high-security-mode), this is automatically set to `obfuscated`.'
587
610
  },
588
611
 
589
612
  :'transaction_tracer.stack_trace_threshold' => {
@@ -622,7 +645,7 @@ module NewRelic
622
645
  :type => Boolean,
623
646
  :allowed_from_server => true,
624
647
  :dynamic_name => true,
625
- :description => 'If `true`, the agent collects [TransactionError events](/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights).'
648
+ :description => 'If `true`, the agent collects [`TransactionError` events](/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights).'
626
649
  },
627
650
  :'error_collector.enabled' => {
628
651
  :default => true,
@@ -702,7 +725,7 @@ module NewRelic
702
725
  :public => true,
703
726
  :type => Integer,
704
727
  :allowed_from_server => true,
705
- :description => 'Defines the maximum number of [TransactionError events](/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights) reported per harvest cycle.'
728
+ :description => 'Defines the maximum number of [`TransactionError` events](/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights) reported per harvest cycle.'
706
729
  },
707
730
  # Browser monitoring
708
731
  :'browser_monitoring.auto_instrument' => {
@@ -743,6 +766,37 @@ module NewRelic
743
766
  :allowed_from_server => false,
744
767
  :description => 'If `true`, the agent captures log records emitted by your application.'
745
768
  },
769
+ :'application_logging.forwarding.log_level' => {
770
+ :default => 'debug',
771
+ :public => true,
772
+ :type => String,
773
+ :allowed_from_server => false,
774
+ :description => <<~DESCRIPTION
775
+ Sets the minimum level a log event must have to be forwarded to New Relic.
776
+
777
+ This is based on the integer values of Ruby's `Logger::Severity` constants: https://github.com/ruby/ruby/blob/master/lib/logger/severity.rb
778
+
779
+ The intention is to forward logs with the level given to the configuration, as well as any logs with a higher level of severity.
780
+
781
+ For example, setting this value to "debug" will forward all log events to New Relic. Setting this value to "error" will only forward log events with the levels "error", "fatal", and "unknown".
782
+
783
+ Valid values (ordered lowest to highest):
784
+ * "debug"
785
+ * "info"
786
+ * "warn"
787
+ * "error"
788
+ * "fatal"
789
+ * "unknown"
790
+ DESCRIPTION
791
+ },
792
+ :'application_logging.forwarding.custom_attributes' => {
793
+ :default => {},
794
+ :public => true,
795
+ :type => Hash,
796
+ :transform => DefaultSource.method(:convert_to_hash),
797
+ :allowed_from_server => false,
798
+ :description => 'A hash with key/value pairs to add as custom attributes to all log events forwarded to New Relic. If sending using an environment variable, the value must be formatted like: "key1=value1,key2=value2"'
799
+ },
746
800
  :'application_logging.forwarding.max_samples_stored' => {
747
801
  :default => 10000,
748
802
  :public => true,
@@ -766,6 +820,13 @@ module NewRelic
766
820
  :description => 'If `true`, the agent captures metrics related to logging for your application.'
767
821
  },
768
822
  # Attributes
823
+ :'allow_all_headers' => {
824
+ :default => false,
825
+ :public => true,
826
+ :type => Boolean,
827
+ :allowed_from_server => false,
828
+ :description => 'If `true`, enables capture of all HTTP request headers for all destinations.'
829
+ },
769
830
  :'attributes.enabled' => {
770
831
  :default => true,
771
832
  :public => true,
@@ -941,11 +1002,11 @@ module NewRelic
941
1002
  :type => Array,
942
1003
  :allowed_from_server => false,
943
1004
  :transform => DefaultSource.method(:convert_to_regexp_list),
944
- :description => 'List of allowed endpoints to include in audit log'
1005
+ :description => 'List of allowed endpoints to include in audit log.'
945
1006
  },
946
1007
  :'audit_log.path' => {
947
1008
  :default => DefaultSource.audit_log_path,
948
- :documentation_default => 'config/newrelic_audit.log',
1009
+ :documentation_default => 'log/newrelic_audit.log',
949
1010
  :public => true,
950
1011
  :type => String,
951
1012
  :allowed_from_server => false,
@@ -957,21 +1018,21 @@ module NewRelic
957
1018
  :public => true,
958
1019
  :type => String,
959
1020
  :allowed_from_server => false,
960
- :description => 'Specify a list of constants that should prevent the agent from starting automatically. Separate individual constants with a comma `,`. For example, `Rails::Console,UninstrumentedBackgroundJob`.'
1021
+ :description => 'Specify a list of constants that should prevent the agent from starting automatically. Separate individual constants with a comma `,`. For example, `"Rails::Console,UninstrumentedBackgroundJob"`.'
961
1022
  },
962
1023
  :'autostart.denylisted_executables' => {
963
1024
  :default => 'irb,rspec',
964
1025
  :public => true,
965
1026
  :type => String,
966
1027
  :allowed_from_server => false,
967
- :description => 'Defines a comma-delimited list of executables that the agent should not instrument. For example, `rake,my_ruby_script.rb`.'
1028
+ :description => 'Defines a comma-delimited list of executables that the agent should not instrument. For example, `"rake,my_ruby_script.rb"`.'
968
1029
  },
969
1030
  :'autostart.denylisted_rake_tasks' => {
970
1031
  :default => AUTOSTART_DENYLISTED_RAKE_TASKS,
971
1032
  :public => true,
972
1033
  :type => String,
973
1034
  :allowed_from_server => false,
974
- :description => 'Defines a comma-delimited list of Rake tasks that the agent should not instrument. For example, `assets:precompile,db:migrate`.'
1035
+ :description => 'Defines a comma-delimited list of Rake tasks that the agent should not instrument. For example, `"assets:precompile,db:migrate"`.'
975
1036
  },
976
1037
  # Code level metrics
977
1038
  :'code_level_metrics.enabled' => {
@@ -990,7 +1051,7 @@ module NewRelic
990
1051
  :allowed_from_server => true,
991
1052
  :deprecated => true,
992
1053
  :description => deprecated_description(
993
- :'distributed_tracing-enabled',
1054
+ :'distributed_tracing.enabled',
994
1055
  'If `true`, enables [cross-application tracing](/docs/agents/ruby-agent/features/cross-application-tracing-ruby/) when `distributed_tracing.enabled` is set to `false`.'
995
1056
  )
996
1057
  },
@@ -1098,11 +1159,12 @@ module NewRelic
1098
1159
  :allowed_from_server => false,
1099
1160
  :description => 'If `true`, disables Active Support instrumentation.'
1100
1161
  },
1101
- :disable_activerecord_instrumentation => {
1162
+ :disable_active_record_instrumentation => {
1102
1163
  :default => value_of(:skip_ar_instrumentation),
1103
1164
  :documentation_default => false,
1104
1165
  :public => true,
1105
1166
  :type => Boolean,
1167
+ :aliases => %i[disable_activerecord_instrumentation],
1106
1168
  :allowed_from_server => false,
1107
1169
  :description => 'If `true`, disables Active Record instrumentation.'
1108
1170
  },
@@ -1111,6 +1173,7 @@ module NewRelic
1111
1173
  :public => true,
1112
1174
  :type => Boolean,
1113
1175
  :dynamic_name => true,
1176
+ :aliases => %i[disable_activerecord_notifications],
1114
1177
  :allowed_from_server => false,
1115
1178
  :description => 'If `true`, disables instrumentation for Active Record 4+'
1116
1179
  },
@@ -1135,7 +1198,7 @@ module NewRelic
1135
1198
  :public => true,
1136
1199
  :type => Boolean,
1137
1200
  :allowed_from_server => false,
1138
- :description => 'If `true`, disables the use of GC::Profiler to measure time spent in garbage collection'
1201
+ :description => 'If `true`, disables the use of `GC::Profiler` to measure time spent in garbage collection'
1139
1202
  },
1140
1203
  :disable_memory_sampler => {
1141
1204
  :default => false,
@@ -1150,7 +1213,13 @@ module NewRelic
1150
1213
  :public => true,
1151
1214
  :type => Boolean,
1152
1215
  :allowed_from_server => false,
1153
- :description => 'If `true`, the agent won\'t wrap third-party middlewares in instrumentation (regardless of whether they are installed via Rack::Builder or Rails).'
1216
+ :description => <<~DESCRIPTION
1217
+ If `true`, the agent won't wrap third-party middlewares in instrumentation (regardless of whether they are installed via `Rack::Builder` or Rails).
1218
+
1219
+ <Callout variant="important">
1220
+ When middleware instrumentation is disabled, if an application is using middleware that could alter the response code, the HTTP status code reported on the transaction may not reflect the altered value.
1221
+ </Callout>
1222
+ DESCRIPTION
1154
1223
  },
1155
1224
  :disable_samplers => {
1156
1225
  :default => false,
@@ -1173,6 +1242,13 @@ module NewRelic
1173
1242
  :allowed_from_server => false,
1174
1243
  :description => 'If `true`, disables [Sidekiq instrumentation](/docs/agents/ruby-agent/background-jobs/sidekiq-instrumentation).'
1175
1244
  },
1245
+ :disable_roda_auto_middleware => {
1246
+ :default => false,
1247
+ :public => true,
1248
+ :type => Boolean,
1249
+ :allowed_from_server => false,
1250
+ :description => 'If `true`, disables agent middleware for Roda. This middleware is responsible for advanced feature support such as [page load timing](/docs/browser/new-relic-browser/getting-started/new-relic-browser) and [error collection](/docs/apm/applications-menu/events/view-apm-error-analytics).'
1251
+ },
1176
1252
  :disable_sinatra_auto_middleware => {
1177
1253
  :default => false,
1178
1254
  :public => true,
@@ -1186,7 +1262,7 @@ module NewRelic
1186
1262
 
1187
1263
  To continue using cross application tracing, update the following options in your `newrelic.yml` configuration file:
1188
1264
 
1189
- ```
1265
+ ```yaml
1190
1266
  # newrelic.yml
1191
1267
 
1192
1268
  cross_application_tracer:
@@ -1249,7 +1325,7 @@ module NewRelic
1249
1325
  :type => Array,
1250
1326
  :allowed_from_server => false,
1251
1327
  :transform => DefaultSource.method(:convert_to_list),
1252
- :description => 'Ordinarily the agent reports dyno names with a trailing dot and process ID (for example, <b>worker.3</b>). You can remove this trailing data by specifying the prefixes you want to report without trailing data (for example, <b>worker</b>).'
1328
+ :description => 'Ordinarily the agent reports dyno names with a trailing dot and process ID (for example, `worker.3`). You can remove this trailing data by specifying the prefixes you want to report without trailing data (for example, `worker`).'
1253
1329
  },
1254
1330
  # Infinite tracing
1255
1331
  :'infinite_tracing.trace_observer.host' => {
@@ -1279,7 +1355,7 @@ module NewRelic
1279
1355
  :public => true,
1280
1356
  :type => String,
1281
1357
  :allowed_from_server => false,
1282
- :description => 'Controls auto-instrumentation of ActiveSupport::Logger at start up. May be one of [auto|prepend|chain|disabled].'
1358
+ :description => 'Controls auto-instrumentation of `ActiveSupport::Logger` at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1283
1359
  },
1284
1360
  :'instrumentation.bunny' => {
1285
1361
  :default => 'auto',
@@ -1287,7 +1363,7 @@ module NewRelic
1287
1363
  :type => String,
1288
1364
  :dynamic_name => true,
1289
1365
  :allowed_from_server => false,
1290
- :description => 'Controls auto-instrumentation of bunny at start up. May be one of [auto|prepend|chain|disabled].'
1366
+ :description => 'Controls auto-instrumentation of bunny at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1291
1367
  },
1292
1368
  :'instrumentation.fiber' => {
1293
1369
  :default => 'auto',
@@ -1295,7 +1371,7 @@ module NewRelic
1295
1371
  :type => String,
1296
1372
  :dynamic_name => true,
1297
1373
  :allowed_from_server => false,
1298
- :description => 'Controls auto-instrumentation of the Fiber class at start up. May be one of [auto|prepend|chain|disabled].'
1374
+ :description => 'Controls auto-instrumentation of the Fiber class at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1299
1375
  },
1300
1376
  :'instrumentation.concurrent_ruby' => {
1301
1377
  :default => 'auto',
@@ -1303,7 +1379,7 @@ module NewRelic
1303
1379
  :type => String,
1304
1380
  :dynamic_name => true,
1305
1381
  :allowed_from_server => false,
1306
- :description => 'Controls auto-instrumentation of the concurrent-ruby library at start up. May be one of [auto|prepend|chain|disabled].'
1382
+ :description => 'Controls auto-instrumentation of the concurrent-ruby library at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1307
1383
  },
1308
1384
  :'instrumentation.curb' => {
1309
1385
  :default => 'auto',
@@ -1312,7 +1388,7 @@ module NewRelic
1312
1388
  :type => String,
1313
1389
  :dynamic_name => true,
1314
1390
  :allowed_from_server => false,
1315
- :description => 'Controls auto-instrumentation of Curb at start up. May be one of [auto|prepend|chain|disabled].'
1391
+ :description => 'Controls auto-instrumentation of Curb at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1316
1392
  },
1317
1393
  :'instrumentation.delayed_job' => {
1318
1394
  :default => 'auto',
@@ -1321,7 +1397,7 @@ module NewRelic
1321
1397
  :type => String,
1322
1398
  :dynamic_name => true,
1323
1399
  :allowed_from_server => false,
1324
- :description => 'Controls auto-instrumentation of Delayed Job at start up. May be one of [auto|prepend|chain|disabled].'
1400
+ :description => 'Controls auto-instrumentation of Delayed Job at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1325
1401
  },
1326
1402
  :'instrumentation.elasticsearch' => {
1327
1403
  :default => 'auto',
@@ -1329,7 +1405,7 @@ module NewRelic
1329
1405
  :type => String,
1330
1406
  :dynamic_name => true,
1331
1407
  :allowed_from_server => false,
1332
- :description => 'Controls auto-instrumentation of the elasticsearch library at start up. May be one of [auto|prepend|chain|disabled].'
1408
+ :description => 'Controls auto-instrumentation of the elasticsearch library at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1333
1409
  },
1334
1410
  :'instrumentation.excon' => {
1335
1411
  :default => 'enabled',
@@ -1338,7 +1414,7 @@ module NewRelic
1338
1414
  :type => String,
1339
1415
  :dynamic_name => true,
1340
1416
  :allowed_from_server => false,
1341
- :description => 'Controls auto-instrumentation of Excon at start up. May be one of [enabled|disabled].'
1417
+ :description => 'Controls auto-instrumentation of Excon at start up. May be one of: `enabled`, `disabled`.'
1342
1418
  },
1343
1419
  :'instrumentation.grape' => {
1344
1420
  :default => 'auto',
@@ -1346,7 +1422,7 @@ module NewRelic
1346
1422
  :type => String,
1347
1423
  :dynamic_name => true,
1348
1424
  :allowed_from_server => false,
1349
- :description => 'Controls auto-instrumentation of Grape at start up. May be one of [auto|prepend|chain|disabled].'
1425
+ :description => 'Controls auto-instrumentation of Grape at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1350
1426
  },
1351
1427
  :'instrumentation.grpc_client' => {
1352
1428
  :default => 'auto',
@@ -1355,7 +1431,7 @@ module NewRelic
1355
1431
  :type => String,
1356
1432
  :dynamic_name => true,
1357
1433
  :allowed_from_server => false,
1358
- :description => 'Controls auto-instrumentation of gRPC clients at start up. May be one of [auto|prepend|chain|disabled].'
1434
+ :description => 'Controls auto-instrumentation of gRPC clients at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1359
1435
  },
1360
1436
  :'instrumentation.grpc.host_denylist' => {
1361
1437
  :default => [],
@@ -1363,7 +1439,7 @@ module NewRelic
1363
1439
  :type => Array,
1364
1440
  :allowed_from_server => false,
1365
1441
  :transform => DefaultSource.method(:convert_to_regexp_list),
1366
- :description => %Q(Specifies a list of hostname patterns separated by commas that will match gRPC hostnames that traffic is to be ignored by New Relic for. New Relic's gRPC client instrumentation will ignore traffic streamed to a host matching any of these patterns, and New Relic's gRPC server instrumentation will ignore traffic for a server running on a host whose hostname matches any of these patterns. By default, no traffic is ignored when gRPC instrumentation is itself enabled. For example, "private.com$,exception.*")
1442
+ :description => %Q(Specifies a list of hostname patterns separated by commas that will match gRPC hostnames that traffic is to be ignored by New Relic for. New Relic's gRPC client instrumentation will ignore traffic streamed to a host matching any of these patterns, and New Relic's gRPC server instrumentation will ignore traffic for a server running on a host whose hostname matches any of these patterns. By default, no traffic is ignored when gRPC instrumentation is itself enabled. For example, `"private.com$,exception.*"`)
1367
1443
  },
1368
1444
  :'instrumentation.grpc_server' => {
1369
1445
  :default => 'auto',
@@ -1372,7 +1448,7 @@ module NewRelic
1372
1448
  :type => String,
1373
1449
  :dynamic_name => true,
1374
1450
  :allowed_from_server => false,
1375
- :description => 'Controls auto-instrumentation of gRPC servers at start up. May be one of [auto|prepend|chain|disabled].'
1451
+ :description => 'Controls auto-instrumentation of gRPC servers at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1376
1452
  },
1377
1453
  :'instrumentation.httpclient' => {
1378
1454
  :default => 'auto',
@@ -1381,7 +1457,7 @@ module NewRelic
1381
1457
  :type => String,
1382
1458
  :dynamic_name => true,
1383
1459
  :allowed_from_server => false,
1384
- :description => 'Controls auto-instrumentation of HTTPClient at start up. May be one of [auto|prepend|chain|disabled].'
1460
+ :description => 'Controls auto-instrumentation of HTTPClient at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1385
1461
  },
1386
1462
  :'instrumentation.httprb' => {
1387
1463
  :default => 'auto',
@@ -1390,7 +1466,7 @@ module NewRelic
1390
1466
  :type => String,
1391
1467
  :dynamic_name => true,
1392
1468
  :allowed_from_server => false,
1393
- :description => 'Controls auto-instrumentation of http.rb gem at start up. May be one of [auto|prepend|chain|disabled].'
1469
+ :description => 'Controls auto-instrumentation of http.rb gem at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1394
1470
  },
1395
1471
  :'instrumentation.logger' => {
1396
1472
  :default => instrumentation_value_from_boolean(:'application_logging.enabled'),
@@ -1399,7 +1475,7 @@ module NewRelic
1399
1475
  :type => String,
1400
1476
  :dynamic_name => true,
1401
1477
  :allowed_from_server => false,
1402
- :description => 'Controls auto-instrumentation of Ruby standard library Logger at start up. May be one of [auto|prepend|chain|disabled].'
1478
+ :description => 'Controls auto-instrumentation of Ruby standard library Logger at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1403
1479
  },
1404
1480
  :'instrumentation.memcache' => {
1405
1481
  :default => 'auto',
@@ -1407,7 +1483,7 @@ module NewRelic
1407
1483
  :type => String,
1408
1484
  :dynamic_name => true,
1409
1485
  :allowed_from_server => false,
1410
- :description => 'Controls auto-instrumentation of dalli gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
1486
+ :description => 'Controls auto-instrumentation of dalli gem for Memcache at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1411
1487
  },
1412
1488
  :'instrumentation.memcached' => {
1413
1489
  :default => 'auto',
@@ -1416,7 +1492,7 @@ module NewRelic
1416
1492
  :type => String,
1417
1493
  :dynamic_name => true,
1418
1494
  :allowed_from_server => false,
1419
- :description => 'Controls auto-instrumentation of memcached gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
1495
+ :description => 'Controls auto-instrumentation of memcached gem for Memcache at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1420
1496
  },
1421
1497
  :'instrumentation.memcache_client' => {
1422
1498
  :default => 'auto',
@@ -1425,7 +1501,7 @@ module NewRelic
1425
1501
  :type => String,
1426
1502
  :dynamic_name => true,
1427
1503
  :allowed_from_server => false,
1428
- :description => 'Controls auto-instrumentation of memcache-client gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
1504
+ :description => 'Controls auto-instrumentation of memcache-client gem for Memcache at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1429
1505
  },
1430
1506
  :'instrumentation.mongo' => {
1431
1507
  :default => 'enabled',
@@ -1434,7 +1510,7 @@ module NewRelic
1434
1510
  :type => String,
1435
1511
  :dynamic_name => true,
1436
1512
  :allowed_from_server => false,
1437
- :description => 'Controls auto-instrumentation of Mongo at start up. May be one of [enabled|disabled].'
1513
+ :description => 'Controls auto-instrumentation of Mongo at start up. May be one of: `enabled`, `disabled`.'
1438
1514
  },
1439
1515
  :'instrumentation.net_http' => {
1440
1516
  :default => 'auto',
@@ -1443,7 +1519,7 @@ module NewRelic
1443
1519
  :type => String,
1444
1520
  :dynamic_name => true,
1445
1521
  :allowed_from_server => false,
1446
- :description => 'Controls auto-instrumentation of Net::HTTP at start up. May be one of [auto|prepend|chain|disabled].'
1522
+ :description => 'Controls auto-instrumentation of `Net::HTTP` at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1447
1523
  },
1448
1524
  :'instrumentation.puma_rack' => {
1449
1525
  :default => value_of(:'instrumentation.rack'),
@@ -1452,9 +1528,9 @@ module NewRelic
1452
1528
  :type => String,
1453
1529
  :dynamic_name => true,
1454
1530
  :allowed_from_server => false,
1455
- :description => 'Controls auto-instrumentation of Puma::Rack. When enabled, the agent hooks into the ' \
1456
- '`to_app` method in Puma::Rack::Builder to find gems to instrument during ' \
1457
- 'application startup. May be one of [auto|prepend|chain|disabled].'
1531
+ :description => 'Controls auto-instrumentation of `Puma::Rack`. When enabled, the agent hooks into the ' \
1532
+ '`to_app` method in `Puma::Rack::Builder` to find gems to instrument during ' \
1533
+ 'application startup. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1458
1534
  },
1459
1535
  :'instrumentation.puma_rack_urlmap' => {
1460
1536
  :default => value_of(:'instrumentation.rack_urlmap'),
@@ -1463,7 +1539,7 @@ module NewRelic
1463
1539
  :type => String,
1464
1540
  :dynamic_name => true,
1465
1541
  :allowed_from_server => false,
1466
- :description => 'Controls auto-instrumentation of Puma::Rack::URLMap at start up. May be one of [auto|prepend|chain|disabled].'
1542
+ :description => 'Controls auto-instrumentation of `Puma::Rack::URLMap` at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1467
1543
  },
1468
1544
  :'instrumentation.rack' => {
1469
1545
  :default => 'auto',
@@ -1473,8 +1549,8 @@ module NewRelic
1473
1549
  :dynamic_name => true,
1474
1550
  :allowed_from_server => false,
1475
1551
  :description => 'Controls auto-instrumentation of Rack. When enabled, the agent hooks into the ' \
1476
- '`to_app` method in Rack::Builder to find gems to instrument during ' \
1477
- 'application startup. May be one of [auto|prepend|chain|disabled].'
1552
+ '`to_app` method in `Rack::Builder` to find gems to instrument during ' \
1553
+ 'application startup. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1478
1554
  },
1479
1555
  :'instrumentation.rack_urlmap' => {
1480
1556
  :default => 'auto',
@@ -1483,7 +1559,7 @@ module NewRelic
1483
1559
  :type => String,
1484
1560
  :dynamic_name => true,
1485
1561
  :allowed_from_server => false,
1486
- :description => 'Controls auto-instrumentation of Rack::URLMap at start up. May be one of [auto|prepend|chain|disabled].'
1562
+ :description => 'Controls auto-instrumentation of `Rack::URLMap` at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1487
1563
  },
1488
1564
  :'instrumentation.rake' => {
1489
1565
  :default => 'auto',
@@ -1491,7 +1567,7 @@ module NewRelic
1491
1567
  :type => String,
1492
1568
  :dynamic_name => true,
1493
1569
  :allowed_from_server => false,
1494
- :description => 'Controls auto-instrumentation of rake at start up. May be one of [auto|prepend|chain|disabled].'
1570
+ :description => 'Controls auto-instrumentation of rake at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1495
1571
  },
1496
1572
  :'instrumentation.redis' => {
1497
1573
  :default => 'auto',
@@ -1499,7 +1575,7 @@ module NewRelic
1499
1575
  :type => String,
1500
1576
  :dynamic_name => true,
1501
1577
  :allowed_from_server => false,
1502
- :description => 'Controls auto-instrumentation of Redis at start up. May be one of [auto|prepend|chain|disabled].'
1578
+ :description => 'Controls auto-instrumentation of Redis at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1503
1579
  },
1504
1580
  :'instrumentation.resque' => {
1505
1581
  :default => 'auto',
@@ -1508,7 +1584,15 @@ module NewRelic
1508
1584
  :type => String,
1509
1585
  :dynamic_name => true,
1510
1586
  :allowed_from_server => false,
1511
- :description => 'Controls auto-instrumentation of resque at start up. May be one of [auto|prepend|chain|disabled].'
1587
+ :description => 'Controls auto-instrumentation of resque at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1588
+ },
1589
+ :'instrumentation.roda' => {
1590
+ :default => 'auto',
1591
+ :public => true,
1592
+ :type => String,
1593
+ :dynamic_name => true,
1594
+ :allowed_from_server => false,
1595
+ :description => 'Controls auto-instrumentation of Roda at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1512
1596
  },
1513
1597
  :'instrumentation.sinatra' => {
1514
1598
  :default => 'auto',
@@ -1516,7 +1600,42 @@ module NewRelic
1516
1600
  :type => String,
1517
1601
  :dynamic_name => true,
1518
1602
  :allowed_from_server => false,
1519
- :description => 'Controls auto-instrumentation of Sinatra at start up. May be one of [auto|prepend|chain|disabled].'
1603
+ :description => 'Controls auto-instrumentation of Sinatra at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1604
+ },
1605
+ :'instrumentation.stripe' => {
1606
+ :default => 'enabled',
1607
+ :public => true,
1608
+ :type => String,
1609
+ :allowed_from_server => false,
1610
+ :description => 'Controls auto-instrumentation of Stripe at startup. May be one of: `enabled`, `disabled`.'
1611
+ },
1612
+ :'stripe.user_data.include' => {
1613
+ default: NewRelic::EMPTY_ARRAY,
1614
+ public: true,
1615
+ type: Array,
1616
+ dynamic_name: true,
1617
+ allowed_from_server: false,
1618
+ :transform => DefaultSource.method(:convert_to_list),
1619
+ :description => <<~DESCRIPTION
1620
+ An array of strings to specify which keys inside a Stripe event's `user_data` hash should be reported
1621
+ to New Relic. Each string in this array will be turned into a regular expression via `Regexp.new` to
1622
+ permit advanced matching. Setting the value to `["."]` will report all `user_data`.
1623
+ DESCRIPTION
1624
+ },
1625
+ :'stripe.user_data.exclude' => {
1626
+ default: NewRelic::EMPTY_ARRAY,
1627
+ public: true,
1628
+ type: Array,
1629
+ dynamic_name: true,
1630
+ allowed_from_server: false,
1631
+ :transform => DefaultSource.method(:convert_to_list),
1632
+ :description => <<~DESCRIPTION
1633
+ An array of strings to specify which keys and/or values inside a Stripe event's `user_data` hash should
1634
+ not be reported to New Relic. Each string in this array will be turned into a regular expression via
1635
+ `Regexp.new` to permit advanced matching. For each hash pair, if either the key or value is matched the
1636
+ pair will not be reported. By default, no `user_data` is reported, so this option should only be used if
1637
+ the `stripe.user_data.include` option is being used.
1638
+ DESCRIPTION
1520
1639
  },
1521
1640
  :'instrumentation.thread' => {
1522
1641
  :default => 'auto',
@@ -1524,7 +1643,7 @@ module NewRelic
1524
1643
  :type => String,
1525
1644
  :dynamic_name => true,
1526
1645
  :allowed_from_server => false,
1527
- :description => 'Controls auto-instrumentation of the Thread class at start up to allow the agent to correctly nest spans inside of an asynchronous transaction. This does not enable the agent to automatically trace all threads created (see `instrumentation.thread.tracing`). May be one of [auto|prepend|chain|disabled].'
1646
+ :description => 'Controls auto-instrumentation of the Thread class at start up to allow the agent to correctly nest spans inside of an asynchronous transaction. This does not enable the agent to automatically trace all threads created (see `instrumentation.thread.tracing`). May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1528
1647
  },
1529
1648
  :'instrumentation.thread.tracing' => {
1530
1649
  :default => true,
@@ -1546,7 +1665,7 @@ module NewRelic
1546
1665
  :type => String,
1547
1666
  :dynamic_name => true,
1548
1667
  :allowed_from_server => false,
1549
- :description => 'Controls auto-instrumentation of the Tilt template rendering library at start up. May be one of [auto|prepend|chain|disabled].'
1668
+ :description => 'Controls auto-instrumentation of the Tilt template rendering library at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1550
1669
  },
1551
1670
  :'instrumentation.typhoeus' => {
1552
1671
  :default => 'auto',
@@ -1555,7 +1674,7 @@ module NewRelic
1555
1674
  :type => String,
1556
1675
  :dynamic_name => true,
1557
1676
  :allowed_from_server => false,
1558
- :description => 'Controls auto-instrumentation of Typhoeus at start up. May be one of [auto|prepend|chain|disabled].'
1677
+ :description => 'Controls auto-instrumentation of Typhoeus at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1559
1678
  },
1560
1679
  # Message tracer
1561
1680
  :'message_tracer.segment_parameters.enabled' => {
@@ -1614,7 +1733,7 @@ module NewRelic
1614
1733
  'This configuration option converts the Array to a RegEx list. If you\'d like ' \
1615
1734
  'to allow all tasks by default, use `rake.tasks: [.+]`. No rake tasks will be ' \
1616
1735
  'instrumented unless they\'re added to this list. For more information, ' \
1617
- 'visit the (New Relic Rake Instrumentation docs)[/docs/apm/agents/ruby-agent/background-jobs/rake-instrumentation].'
1736
+ 'visit the [New Relic Rake Instrumentation docs](/docs/apm/agents/ruby-agent/background-jobs/rake-instrumentation).'
1618
1737
  },
1619
1738
  :'rake.connect_timeout' => {
1620
1739
  :default => 10,
@@ -1632,6 +1751,37 @@ module NewRelic
1632
1751
  :transform => DefaultSource.method(:convert_to_regexp_list),
1633
1752
  :description => 'Define transactions you want the agent to ignore, by specifying a list of patterns matching the URI you want to ignore. For more detail, see [the docs on ignoring specific transactions](/docs/agents/ruby-agent/api-guides/ignoring-specific-transactions/#config-ignoring).'
1634
1753
  },
1754
+ # Sidekiq
1755
+ :'sidekiq.args.include' => {
1756
+ default: NewRelic::EMPTY_ARRAY,
1757
+ public: true,
1758
+ type: Array,
1759
+ dynamic_name: true,
1760
+ allowed_from_server: false,
1761
+ description: <<~SIDEKIQ_ARGS_INCLUDE.chomp.tr("\n", ' ')
1762
+ An array of strings that will collectively serve as an allowlist for filtering which Sidekiq
1763
+ job arguments get reported to New Relic. To capture any Sidekiq arguments,
1764
+ 'job.sidekiq.args.*' must be added to the separate `:'attributes.include'` configuration option. Each
1765
+ string in this array will be turned into a regular expression via `Regexp.new` to permit advanced
1766
+ matching. For job argument hashes, if either a key or value matches the pair will be included. All
1767
+ matching job argument array elements and job argument scalars will be included.
1768
+ SIDEKIQ_ARGS_INCLUDE
1769
+ },
1770
+ :'sidekiq.args.exclude' => {
1771
+ default: NewRelic::EMPTY_ARRAY,
1772
+ public: true,
1773
+ type: Array,
1774
+ dynamic_name: true,
1775
+ allowed_from_server: false,
1776
+ description: <<~SIDEKIQ_ARGS_EXCLUDE.chomp.tr("\n", ' ')
1777
+ An array of strings that will collectively serve as a denylist for filtering which Sidekiq
1778
+ job arguments get reported to New Relic. To capture any Sidekiq arguments,
1779
+ 'job.sidekiq.args.*' must be added to the separate `:'attributes.include'` configuration option. Each string
1780
+ in this array will be turned into a regular expression via `Regexp.new` to permit advanced matching.
1781
+ For job argument hashes, if either a key or value matches the pair will be excluded. All matching job
1782
+ argument array elements and job argument scalars will be excluded.
1783
+ SIDEKIQ_ARGS_EXCLUDE
1784
+ },
1635
1785
  # Slow SQL
1636
1786
  :'slow_sql.enabled' => {
1637
1787
  :default => value_of(:'transaction_tracer.enabled'),
@@ -1663,14 +1813,14 @@ module NewRelic
1663
1813
  :public => true,
1664
1814
  :type => String,
1665
1815
  :allowed_from_server => true,
1666
- :description => 'Defines an obfuscation level for slow SQL queries. Valid options are `obfuscated`, `raw`, or `none`).'
1816
+ :description => 'Defines an obfuscation level for slow SQL queries. Valid options are `obfuscated`, `raw`, or `none`.'
1667
1817
  },
1668
1818
  :'slow_sql.use_longer_sql_id' => {
1669
1819
  :default => false,
1670
1820
  :public => true,
1671
1821
  :type => Boolean,
1672
1822
  :allowed_from_server => true,
1673
- :description => 'Generate a longer sql_id for slow SQL traces. sql_id is used for aggregation of similar queries.'
1823
+ :description => 'Generate a longer `sql_id` for slow SQL traces. `sql_id` is used for aggregation of similar queries.'
1674
1824
  },
1675
1825
  # Span events
1676
1826
  :'span_events.enabled' => {
@@ -1693,7 +1843,7 @@ module NewRelic
1693
1843
  :public => true,
1694
1844
  :type => Integer,
1695
1845
  :allowed_from_server => true,
1696
- :description => 'Defines the maximum number of span events reported from a single harvest. Any Integer between 1 and 10000 is valid.'
1846
+ :description => 'Defines the maximum number of span events reported from a single harvest. Any Integer between `1` and `10000` is valid.'
1697
1847
  },
1698
1848
  # Strip exception messages
1699
1849
  :'strip_exception_messages.enabled' => {
@@ -2001,8 +2151,8 @@ module NewRelic
2001
2151
  :type => Boolean,
2002
2152
  :allowed_from_server => false,
2003
2153
  :external => :infinite_tracing,
2004
- :description => "If `true` (the default), data sent to the trace observer is batched\ninstead of sending " \
2005
- 'each span individually.'
2154
+ :description => 'If `true` (the default), data sent to the trace observer is batched instead of ' \
2155
+ 'sending each span individually.'
2006
2156
  },
2007
2157
  :'infinite_tracing.compression_level' => {
2008
2158
  :default => :high,
@@ -2010,8 +2160,13 @@ module NewRelic
2010
2160
  :type => Symbol,
2011
2161
  :allowed_from_server => false,
2012
2162
  :external => :infinite_tracing,
2013
- :description => "Configure the compression level for data sent to the trace observer\nMay be one of " \
2014
- "[none|low|medium|high]\n'high' is the default. Set the level to 'none' to disable compression"
2163
+ :description => <<~DESC
2164
+ Configure the compression level for data sent to the trace observer.
2165
+
2166
+ May be one of: `:none`, `:low`, `:medium`, `:high`.
2167
+
2168
+ Set the level to `:none` to disable compression.
2169
+ DESC
2015
2170
  },
2016
2171
  :js_agent_file => {
2017
2172
  :default => '',