newrelic_rpm 8.11.0 → 8.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -3
  3. data/.rubocop_todo.yml +14 -7
  4. data/Brewfile +1 -0
  5. data/CHANGELOG.md +78 -16
  6. data/README.md +1 -1
  7. data/bin/nrdebug +2 -0
  8. data/docker-compose.yml +22 -0
  9. data/lib/new_relic/agent/agent/shutdown.rb +1 -0
  10. data/lib/new_relic/agent/agent/special_startup.rb +2 -0
  11. data/lib/new_relic/agent/agent/startup.rb +1 -0
  12. data/lib/new_relic/agent/agent_logger.rb +1 -1
  13. data/lib/new_relic/agent/attributes.rb +1 -0
  14. data/lib/new_relic/agent/audit_logger.rb +2 -1
  15. data/lib/new_relic/agent/commands/thread_profiler_session.rb +1 -0
  16. data/lib/new_relic/agent/configuration/default_source.rb +1415 -1359
  17. data/lib/new_relic/agent/configuration/dotted_hash.rb +1 -0
  18. data/lib/new_relic/agent/configuration/environment_source.rb +3 -2
  19. data/lib/new_relic/agent/configuration/high_security_source.rb +1 -0
  20. data/lib/new_relic/agent/configuration/manager.rb +3 -0
  21. data/lib/new_relic/agent/configuration/security_policy_source.rb +10 -0
  22. data/lib/new_relic/agent/configuration/yaml_source.rb +1 -0
  23. data/lib/new_relic/agent/connect/request_builder.rb +1 -0
  24. data/lib/new_relic/agent/database/obfuscation_helpers.rb +1 -0
  25. data/lib/new_relic/agent/database.rb +7 -0
  26. data/lib/new_relic/agent/database_adapter.rb +2 -0
  27. data/lib/new_relic/agent/datastores/mongo/event_formatter.rb +3 -2
  28. data/lib/new_relic/agent/datastores/mongo/metric_translator.rb +1 -1
  29. data/lib/new_relic/agent/datastores/nosql_obfuscator.rb +41 -0
  30. data/lib/new_relic/agent/distributed_tracing/cross_app_tracing.rb +3 -0
  31. data/lib/new_relic/agent/distributed_tracing/distributed_trace_attributes.rb +3 -0
  32. data/lib/new_relic/agent/distributed_tracing/distributed_trace_metrics.rb +1 -0
  33. data/lib/new_relic/agent/distributed_tracing/distributed_trace_payload.rb +1 -0
  34. data/lib/new_relic/agent/distributed_tracing/trace_context.rb +1 -0
  35. data/lib/new_relic/agent/encoding_normalizer.rb +2 -0
  36. data/lib/new_relic/agent/error_collector.rb +3 -0
  37. data/lib/new_relic/agent/error_filter.rb +1 -0
  38. data/lib/new_relic/agent/error_trace_aggregator.rb +1 -0
  39. data/lib/new_relic/agent/event_aggregator.rb +1 -0
  40. data/lib/new_relic/agent/event_loop.rb +2 -0
  41. data/lib/new_relic/agent/http_clients/abstract.rb +2 -0
  42. data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +1 -1
  43. data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +1 -1
  44. data/lib/new_relic/agent/http_clients/typhoeus_wrappers.rb +1 -0
  45. data/lib/new_relic/agent/instrumentation/active_merchant.rb +1 -2
  46. data/lib/new_relic/agent/instrumentation/active_storage_subscriber.rb +2 -0
  47. data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +1 -2
  48. data/lib/new_relic/agent/instrumentation/authlogic.rb +0 -2
  49. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +1 -0
  50. data/lib/new_relic/agent/instrumentation/data_mapper.rb +0 -1
  51. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +1 -2
  52. data/lib/new_relic/agent/instrumentation/elasticsearch/chain.rb +29 -0
  53. data/lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb +66 -0
  54. data/lib/new_relic/agent/instrumentation/elasticsearch/prepend.rb +13 -0
  55. data/lib/new_relic/agent/instrumentation/elasticsearch.rb +31 -0
  56. data/lib/new_relic/agent/instrumentation/excon.rb +17 -0
  57. data/lib/new_relic/agent/instrumentation/grape/instrumentation.rb +1 -0
  58. data/lib/new_relic/agent/instrumentation/logger/instrumentation.rb +4 -0
  59. data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +2 -0
  60. data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +2 -0
  61. data/lib/new_relic/agent/instrumentation/rack/chain.rb +10 -2
  62. data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +3 -0
  63. data/lib/new_relic/agent/instrumentation/rack/prepend.rb +9 -2
  64. data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +0 -1
  65. data/lib/new_relic/agent/instrumentation/rake/instrumentation.rb +1 -0
  66. data/lib/new_relic/agent/instrumentation/redis/chain.rb +18 -6
  67. data/lib/new_relic/agent/instrumentation/redis/constants.rb +17 -0
  68. data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +28 -18
  69. data/lib/new_relic/agent/instrumentation/redis/middleware.rb +16 -0
  70. data/lib/new_relic/agent/instrumentation/redis/prepend.rb +6 -0
  71. data/lib/new_relic/agent/instrumentation/redis.rb +6 -0
  72. data/lib/new_relic/agent/instrumentation/sidekiq/client.rb +20 -0
  73. data/lib/new_relic/agent/instrumentation/sidekiq/extensions/delayed_class.rb +30 -0
  74. data/lib/new_relic/agent/instrumentation/sidekiq/server.rb +37 -0
  75. data/lib/new_relic/agent/instrumentation/sidekiq.rb +7 -70
  76. data/lib/new_relic/agent/instrumentation/sinatra.rb +1 -2
  77. data/lib/new_relic/agent/instrumentation/sunspot.rb +0 -2
  78. data/lib/new_relic/agent/instrumentation/thread/instrumentation.rb +1 -0
  79. data/lib/new_relic/agent/instrumentation/tilt/instrumentation.rb +1 -0
  80. data/lib/new_relic/agent/javascript_instrumentor.rb +1 -0
  81. data/lib/new_relic/agent/local_log_decorator.rb +1 -0
  82. data/lib/new_relic/agent/log_event_aggregator.rb +1 -0
  83. data/lib/new_relic/agent/messaging.rb +1 -0
  84. data/lib/new_relic/agent/method_tracer.rb +4 -0
  85. data/lib/new_relic/agent/method_tracer_helpers.rb +1 -1
  86. data/lib/new_relic/agent/monitors/distributed_tracing_monitor.rb +1 -0
  87. data/lib/new_relic/agent/new_relic_service.rb +2 -0
  88. data/lib/new_relic/agent/parameter_filtering.rb +7 -1
  89. data/lib/new_relic/agent/pipe_channel_manager.rb +2 -0
  90. data/lib/new_relic/agent/rules_engine.rb +1 -0
  91. data/lib/new_relic/agent/samplers/cpu_sampler.rb +1 -0
  92. data/lib/new_relic/agent/samplers/memory_sampler.rb +5 -0
  93. data/lib/new_relic/agent/span_event_primitive.rb +1 -0
  94. data/lib/new_relic/agent/stats.rb +1 -0
  95. data/lib/new_relic/agent/stats_engine/gc_profiler.rb +1 -0
  96. data/lib/new_relic/agent/system_info.rb +3 -0
  97. data/lib/new_relic/agent/threading/agent_thread.rb +1 -0
  98. data/lib/new_relic/agent/threading/backtrace_service.rb +1 -0
  99. data/lib/new_relic/agent/threading/thread_profile.rb +3 -0
  100. data/lib/new_relic/agent/tracer.rb +5 -1
  101. data/lib/new_relic/agent/transaction/abstract_segment.rb +3 -0
  102. data/lib/new_relic/agent/transaction/datastore_segment.rb +3 -0
  103. data/lib/new_relic/agent/transaction/distributed_tracer.rb +4 -0
  104. data/lib/new_relic/agent/transaction/distributed_tracing.rb +1 -0
  105. data/lib/new_relic/agent/transaction/external_request_segment.rb +1 -0
  106. data/lib/new_relic/agent/transaction/message_broker_segment.rb +1 -0
  107. data/lib/new_relic/agent/transaction/segment.rb +1 -0
  108. data/lib/new_relic/agent/transaction/trace.rb +4 -0
  109. data/lib/new_relic/agent/transaction/trace_node.rb +1 -0
  110. data/lib/new_relic/agent/transaction/transaction_sample_buffer.rb +2 -0
  111. data/lib/new_relic/agent/transaction.rb +10 -0
  112. data/lib/new_relic/agent/transaction_event_aggregator.rb +1 -0
  113. data/lib/new_relic/agent/transaction_time_aggregator.rb +1 -0
  114. data/lib/new_relic/agent/utilization/pcf.rb +1 -0
  115. data/lib/new_relic/agent/utilization/vendor.rb +2 -0
  116. data/lib/new_relic/agent/utilization_data.rb +3 -0
  117. data/lib/new_relic/agent.rb +4 -2
  118. data/lib/new_relic/cli/commands/install.rb +1 -0
  119. data/lib/new_relic/coerce.rb +6 -0
  120. data/lib/new_relic/collection_helper.rb +1 -0
  121. data/lib/new_relic/constants.rb +2 -0
  122. data/lib/new_relic/control/frameworks/rails.rb +5 -0
  123. data/lib/new_relic/control/instrumentation.rb +6 -8
  124. data/lib/new_relic/dependency_detection.rb +2 -0
  125. data/lib/new_relic/helper.rb +1 -0
  126. data/lib/new_relic/language_support.rb +1 -0
  127. data/lib/new_relic/latest_changes.rb +1 -0
  128. data/lib/new_relic/local_environment.rb +7 -1
  129. data/lib/new_relic/metric_spec.rb +2 -0
  130. data/lib/new_relic/rack/agent_middleware.rb +2 -0
  131. data/lib/new_relic/rack/browser_monitoring.rb +1 -0
  132. data/lib/new_relic/traced_thread.rb +1 -0
  133. data/lib/new_relic/version.rb +1 -1
  134. data/lib/tasks/helpers/format.rb +3 -0
  135. data/lib/tasks/helpers/prompt.rb +1 -1
  136. data/lib/tasks/instrumentation_generator/README.md +2 -2
  137. data/lib/tasks/instrumentation_generator/TODO.md +5 -5
  138. data/lib/tasks/instrumentation_generator/instrumentation.thor +27 -5
  139. data/lib/tasks/instrumentation_generator/templates/chain.tt +2 -1
  140. data/lib/tasks/instrumentation_generator/templates/chain_method.tt +3 -2
  141. data/lib/tasks/instrumentation_generator/templates/instrumentation.tt +2 -1
  142. data/lib/tasks/instrumentation_generator/templates/instrumentation_method.tt +1 -1
  143. data/lib/tasks/instrumentation_generator/templates/prepend.tt +1 -1
  144. data/lib/tasks/instrumentation_generator/templates/prepend_method.tt +1 -1
  145. data/lib/tasks/instrumentation_generator/templates/test.tt +1 -1
  146. data/newrelic.yml +13 -3
  147. data/newrelic_rpm.gemspec +7 -7
  148. data/test/agent_helper.rb +24 -0
  149. metadata +18 -79
  150. data/lib/new_relic/agent/datastores/mongo/obfuscator.rb +0 -43
@@ -157,7 +157,7 @@ module NewRelic
157
157
  def self.audit_log_path
158
158
  proc {
159
159
  log_file_path = NewRelic::Agent.config[:log_file_path]
160
- wants_stdout = (log_file_path.casecmp('STDOUT').zero?)
160
+ wants_stdout = (log_file_path.casecmp(NewRelic::STANDARD_OUT) == 0)
161
161
  audit_log_dir = wants_stdout ? DEFAULT_LOG_DIR : log_file_path
162
162
 
163
163
  File.join(audit_log_dir, 'newrelic_audit.log')
@@ -326,20 +326,7 @@ module NewRelic
326
326
  ].join(',').freeze
327
327
 
328
328
  DEFAULTS = {
329
- :license_key => {
330
- :default => '',
331
- :public => true,
332
- :type => String,
333
- :allowed_from_server => false,
334
- :description => 'Your New Relic [license key](/docs/apis/intro-apis/new-relic-api-keys/#ingest-license-key).'
335
- },
336
- :api_key => {
337
- :default => '',
338
- :public => true,
339
- :type => String,
340
- :allowed_from_server => false,
341
- :description => 'Your New Relic API key. Required when using the New Relic REST API v2 to record deployments using the `newrelic deployments` command.'
342
- },
329
+ # Critical
343
330
  :agent_enabled => {
344
331
  :default => DefaultSource.agent_enabled,
345
332
  :documentation_default => true,
@@ -348,14 +335,6 @@ module NewRelic
348
335
  :allowed_from_server => false,
349
336
  :description => 'If `true`, allows the Ruby agent to run.'
350
337
  },
351
- :enabled => {
352
- :default => true,
353
- :public => false,
354
- :type => Boolean,
355
- :aliases => [:enable],
356
- :allowed_from_server => false,
357
- :description => 'Enable or disable the agent.'
358
- },
359
338
  :app_name => {
360
339
  :default => DefaultSource.app_name,
361
340
  :public => true,
@@ -364,28 +343,12 @@ module NewRelic
364
343
  :transform => DefaultSource.method(:convert_to_list_on_semicolon),
365
344
  :description => 'Specify the [application name](/docs/apm/new-relic-apm/installation-configuration/name-your-application) used to aggregate data in the New Relic UI. To report data to [multiple apps at the same time](/docs/apm/new-relic-apm/installation-configuration/using-multiple-names-app), specify a list of names separated by a semicolon `;`. For example, `MyApp` or `MyStagingApp;Instance1`.'
366
345
  },
367
- :entity_guid => {
368
- :default => nil,
369
- :allow_nil => true,
370
- :public => false,
371
- :type => String,
372
- :allowed_from_server => true,
373
- :description => 'The [Entity GUID](/attribute-dictionary/span/entityguid) for the entity running your agent.'
374
- },
375
- :monitor_mode => {
376
- :default => value_of(:enabled),
377
- :documentation_default => true,
346
+ :license_key => {
347
+ :default => '',
378
348
  :public => true,
379
- :type => Boolean,
380
- :allowed_from_server => false,
381
- :description => 'When `true`, the agent transmits data about your app to the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector).'
382
- },
383
- :test_mode => {
384
- :default => false,
385
- :public => false,
386
- :type => Boolean,
349
+ :type => String,
387
350
  :allowed_from_server => false,
388
- :description => 'Used in tests for the agent to start up, but not connect to the collector. Formerly used `developer_mode` in test config for this purpose.'
351
+ :description => 'Your New Relic [license key](/docs/apis/intro-apis/new-relic-api-keys/#ingest-license-key).'
389
352
  },
390
353
  :log_level => {
391
354
  :default => 'info',
@@ -394,53 +357,43 @@ module NewRelic
394
357
  :allowed_from_server => false,
395
358
  :description => 'Sets the level of detail of log messages. Possible log levels, in increasing verbosity, are: `error`, `warn`, `info` or `debug`.'
396
359
  },
397
- :high_security => {
398
- :default => false,
360
+ # General
361
+ :apdex_t => {
362
+ :default => 0.5,
399
363
  :public => true,
400
- :type => Boolean,
401
- :allowed_from_server => false,
402
- :description => 'If `true`, enables [high security mode](/docs/accounts-partnerships/accounts/security/high-security). Ensure you understand the implications of high security mode before enabling this setting.'
364
+ :type => Float,
365
+ :allowed_from_server => true,
366
+ :deprecated => true,
367
+ :description => 'For agent versions 3.5.0 or higher, [set your Apdex T via the New Relic UI](/docs/apm/new-relic-apm/apdex/changing-your-apdex-settings).'
403
368
  },
404
- :security_policies_token => {
369
+ :api_key => {
405
370
  :default => '',
406
371
  :public => true,
407
372
  :type => String,
408
373
  :allowed_from_server => false,
409
- :description => 'Applies Language Agent Security Policy settings.'
410
- },
411
- :proxy_host => {
412
- :default => nil,
413
- :allow_nil => true,
414
- :public => true,
415
- :type => String,
416
- :allowed_from_server => false,
417
- :description => 'Defines a host for communicating with the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector) via a proxy server.'
374
+ :description => 'Your New Relic API key. Required when using the New Relic REST API v2 to record deployments using the `newrelic deployments` command.'
418
375
  },
419
- :proxy_port => {
420
- :default => 8080,
421
- :allow_nil => true,
376
+ :backport_fast_active_record_connection_lookup => {
377
+ :default => false,
422
378
  :public => true,
423
- :type => Integer,
379
+ :type => Boolean,
424
380
  :allowed_from_server => false,
425
- :description => 'Defines a port for communicating with the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector) via a proxy server.'
381
+ :description => 'Backports the faster ActiveRecord connection lookup introduced in Rails 6, which improves agent performance when instrumenting ActiveRecord. Note that this setting may not be compatible with other gems that patch ActiveRecord.'
426
382
  },
427
- :proxy_user => {
383
+ :ca_bundle_path => {
428
384
  :default => nil,
429
385
  :allow_nil => true,
430
386
  :public => true,
431
387
  :type => String,
432
388
  :allowed_from_server => false,
433
- :exclude_from_reported_settings => true,
434
- :description => 'Defines a user for communicating with the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector) via a proxy server.'
389
+ :description => "Manual override for the path to your local CA bundle. This CA bundle will be used to validate the SSL certificate presented by New Relic's data collection service."
435
390
  },
436
- :proxy_pass => {
437
- :default => nil,
438
- :allow_nil => true,
391
+ :capture_memcache_keys => {
392
+ :default => false,
439
393
  :public => true,
440
- :type => String,
441
- :allowed_from_server => false,
442
- :exclude_from_reported_settings => true,
443
- :description => 'Defines a password for communicating with the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector) via a proxy server.'
394
+ :type => Boolean,
395
+ :allowed_from_server => true,
396
+ :description => 'Enable or disable the capture of memcache keys from transaction traces.'
444
397
  },
445
398
  :capture_params => {
446
399
  :default => false,
@@ -455,6 +408,13 @@ When `true`, the agent captures HTTP request parameters and attaches them to tra
455
408
  </Callout>
456
409
  DESCRIPTION
457
410
  },
411
+ :'clear_transaction_state_after_fork' => {
412
+ :default => false,
413
+ :public => true,
414
+ :type => Boolean,
415
+ :allowed_from_server => false,
416
+ :description => 'If `true`, the agent will clear `Tracer::State` in `Agent.drop_buffered_data`.'
417
+ },
458
418
  :config_path => {
459
419
  :default => DefaultSource.config_path,
460
420
  :public => true,
@@ -462,688 +422,720 @@ When `true`, the agent captures HTTP request parameters and attaches them to tra
462
422
  :allowed_from_server => false,
463
423
  :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>.'
464
424
  },
465
- :config_search_paths => {
466
- :default => DefaultSource.config_search_paths,
467
- :public => false,
468
- :type => Array,
425
+ :'exclude_newrelic_header' => {
426
+ :default => false,
427
+ :public => true,
428
+ :type => Boolean,
429
+ :allowed_from_server => true,
430
+ :description => "Allows newrelic distributed tracing headers to be suppressed on outbound requests."
431
+ },
432
+ :force_install_exit_handler => {
433
+ :default => false,
434
+ :public => true,
435
+ :type => Boolean,
469
436
  :allowed_from_server => false,
470
- :description => "An array of candidate locations for the agent\'s configuration file."
437
+ :description => 'Forces the exit handler that sends all cached data to collector ' \
438
+ 'before shutting down to be installed regardless of detecting scenarios where it generally should not be. ' \
439
+ 'Known use-case for this option is where Sinatra is running as an embedded service within another framework ' \
440
+ 'and the agent is detecting the Sinatra app and skipping the `at_exit` handler as a result. Sinatra classically ' \
441
+ 'runs the entire application in an `at_exit` block and would otherwise misbehave if the Agent\'s `at_exit` handler ' \
442
+ 'was also installed in those circumstances. Note: `send_data_on_exit` should also be set to `true` in tandem with this setting.'
471
443
  },
472
- :dispatcher => {
473
- :default => DefaultSource.dispatcher,
474
- :public => false,
475
- :type => Symbol,
444
+ :high_security => {
445
+ :default => false,
446
+ :public => true,
447
+ :type => Boolean,
476
448
  :allowed_from_server => false,
477
- :description => 'Autodetected application component that reports metrics to New Relic.'
449
+ :description => 'If `true`, enables [high security mode](/docs/accounts-partnerships/accounts/security/high-security). Ensure you understand the implications of high security mode before enabling this setting.'
478
450
  },
479
- :framework => {
480
- :default => DefaultSource.framework,
481
- :public => false,
482
- :type => Symbol,
451
+ :labels => {
452
+ :default => '',
453
+ :public => true,
454
+ :type => String,
483
455
  :allowed_from_server => false,
484
- :description => 'Autodetected application framework used to enable framework-specific functionality.'
456
+ :description => 'A dictionary of [label names](/docs/data-analysis/user-interface-functions/labels-categories-organize-your-apps-servers) and values that will be applied to the data sent from this agent. May also be expressed as a semicolon-delimited `;` string of colon-separated `:` pairs. For example, `<var>Server</var>:<var>One</var>;<var>Data Center</var>:<var>Primary</var>`.'
485
457
  },
486
- :'autostart.denylisted_constants' => {
487
- :default => 'Rails::Console',
458
+ :log_file_name => {
459
+ :default => 'newrelic_agent.log',
488
460
  :public => true,
489
461
  :type => String,
490
462
  :allowed_from_server => false,
491
- :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`.'
463
+ :description => 'Defines a name for the log file.'
492
464
  },
493
- :'autostart.denylisted_executables' => {
494
- :default => 'irb,rspec',
465
+ :log_file_path => {
466
+ :default => DefaultSource::DEFAULT_LOG_DIR,
495
467
  :public => true,
496
468
  :type => String,
497
469
  :allowed_from_server => false,
498
- :description => 'Defines a comma-delimited list of executables that the agent should not instrument. For example, `rake,my_ruby_script.rb`.'
470
+ :description => 'Defines a path to the agent log file, excluding the filename.'
499
471
  },
500
- :'autostart.denylisted_rake_tasks' => {
501
- :default => AUTOSTART_DENYLISTED_RAKE_TASKS,
472
+ :marshaller => {
473
+ :default => 'json',
502
474
  :public => true,
503
475
  :type => String,
504
476
  :allowed_from_server => false,
505
- :description => 'Defines a comma-delimited list of Rake tasks that the agent should not instrument. For example, `assets:precompile,db:migrate`.'
477
+ :description => 'Specifies a marshaller for transmitting data to the New Relic [collector](/docs/apm/new-relic-apm/getting-started/glossary#collector). Currently `json` is the only valid value for this setting.'
506
478
  },
507
-
508
- :disable_rake => {
509
- :default => false,
479
+ :monitor_mode => {
480
+ :default => value_of(:enabled),
481
+ :documentation_default => true,
510
482
  :public => true,
511
483
  :type => Boolean,
512
484
  :allowed_from_server => false,
513
- :deprecated => true,
514
- :description => deprecated_description(:'instrumentation.rake', 'If `true`, disables Rake instrumentation.')
485
+ :description => 'When `true`, the agent transmits data about your app to the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector).'
515
486
  },
516
- :disable_rake_instrumentation => {
487
+ :prepend_active_record_instrumentation => {
517
488
  :default => false,
518
- :public => false,
489
+ :public => true,
519
490
  :type => Boolean,
520
491
  :allowed_from_server => false,
521
- :deprecated => true,
522
- :description => deprecated_description(:'instrumentation.rake', 'Enable or disable Rake instrumentation. Preferred key is `disable_rake`')
492
+ :description => 'If `true`, uses `Module#prepend` rather than `alias_method` for ActiveRecord instrumentation.'
523
493
  },
524
- :'rake.tasks' => {
525
- :default => [],
494
+ :proxy_host => {
495
+ :default => nil,
496
+ :allow_nil => true,
526
497
  :public => true,
527
- :type => Array,
498
+ :type => String,
528
499
  :allowed_from_server => false,
529
- :transform => DefaultSource.method(:convert_to_regexp_list),
530
- :description => 'Specify an Array of Rake tasks to automatically instrument. ' \
531
- 'This configuration option converts the Array to a RegEx list. If you\'d like ' \
532
- 'to allow all tasks by default, use `rake.tasks: [.+]`. No rake tasks will be ' \
533
- 'instrumented unless they\'re added to this list. For more information, ' \
534
- 'visit the (New Relic Rake Instrumentation docs)[/docs/apm/agents/ruby-agent/background-jobs/rake-instrumentation].'
500
+ :description => 'Defines a host for communicating with the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector) via a proxy server.'
535
501
  },
536
- :'rake.connect_timeout' => {
537
- :default => 10,
502
+ :proxy_pass => {
503
+ :default => nil,
504
+ :allow_nil => true,
538
505
  :public => true,
539
- :type => Integer,
506
+ :type => String,
540
507
  :allowed_from_server => false,
541
- :description => 'Timeout for waiting on connect to complete before a rake task'
508
+ :exclude_from_reported_settings => true,
509
+ :description => 'Defines a password for communicating with the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector) via a proxy server.'
542
510
  },
543
- :apdex_t => {
544
- :default => 0.5,
511
+ :proxy_port => {
512
+ :default => 8080,
513
+ :allow_nil => true,
545
514
  :public => true,
546
- :type => Float,
547
- :allowed_from_server => true,
548
- :deprecated => true,
549
- :description => 'For agent versions 3.5.0 or higher, [set your Apdex T via the New Relic UI](/docs/apm/new-relic-apm/apdex/changing-your-apdex-settings).'
515
+ :type => Integer,
516
+ :allowed_from_server => false,
517
+ :description => 'Defines a port for communicating with the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector) via a proxy server.'
550
518
  },
551
- :'strip_exception_messages.enabled' => {
552
- :default => value_of(:high_security),
553
- :documentation_default => false,
519
+ :proxy_user => {
520
+ :default => nil,
521
+ :allow_nil => true,
554
522
  :public => true,
555
- :type => Boolean,
523
+ :type => String,
556
524
  :allowed_from_server => false,
557
- :description => 'If true, the agent strips messages from all exceptions except those in the [allowlist](#strip_exception_messages-allowlist). Enabled automatically in [high security mode](/docs/accounts-partnerships/accounts/security/high-security).'
525
+ :exclude_from_reported_settings => true,
526
+ :description => 'Defines a user for communicating with the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector) via a proxy server.'
558
527
  },
559
- :'strip_exception_messages.allowed_classes' => {
528
+ :security_policies_token => {
560
529
  :default => '',
561
530
  :public => true,
562
531
  :type => String,
563
532
  :allowed_from_server => false,
564
- :transform => DefaultSource.method(:convert_to_constant_list),
565
- :description => 'Specify a list of exceptions you do not want the agent to strip when [strip_exception_messages](#strip_exception_messages-enabled) is `true`. Separate exceptions with a comma. For example, `"ImportantException,PreserveMessageException"`.'
533
+ :description => 'Applies Language Agent Security Policy settings.'
566
534
  },
567
- :host => {
568
- :default => DefaultSource.host,
569
- :public => false,
570
- :type => String,
535
+ :send_data_on_exit => {
536
+ :default => true,
537
+ :public => true,
538
+ :type => Boolean,
571
539
  :allowed_from_server => false,
572
- :description => "URI for the New Relic data collection service."
540
+ :description => 'If `true`, enables the exit handler that sends data to the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector) before shutting down.'
573
541
  },
574
- :api_host => {
575
- :default => DefaultSource.api_host,
576
- :public => false,
577
- :type => String,
542
+ :sync_startup => {
543
+ :default => false,
544
+ :public => true,
545
+ :type => Boolean,
578
546
  :allowed_from_server => false,
579
- :description => 'API host for New Relic.'
547
+ :description => 'When set to `true`, forces a synchronous connection to the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector) during application startup. For very short-lived processes, this helps ensure the New Relic agent has time to report.'
580
548
  },
581
- :port => {
582
- :default => 443,
583
- :public => false,
549
+ :timeout => {
550
+ :default => 2 * 60, # 2 minutes
551
+ :public => true,
584
552
  :type => Integer,
585
553
  :allowed_from_server => false,
586
- :description => 'Port for the New Relic data collection service.'
554
+ :description => 'Defines the maximum number of seconds the agent should spend attempting to connect to the collector.'
587
555
  },
588
- :api_port => {
589
- :default => value_of(:port),
590
- :public => false,
591
- :type => Integer,
556
+ # Transaction tracer
557
+ :'transaction_tracer.capture_attributes' => {
558
+ :default => true,
559
+ :public => true,
560
+ :type => Boolean,
561
+ :deprecated => true,
592
562
  :allowed_from_server => false,
593
- :description => 'Port for the New Relic API host.'
563
+ :description => 'Use [`transaction_tracer.attributes.enabled`](#transaction_tracer-attributes-enabled) instead.'
594
564
  },
595
- :sync_startup => {
596
- :default => false,
565
+ :'transaction_tracer.enabled' => {
566
+ :default => true,
597
567
  :public => true,
598
568
  :type => Boolean,
599
- :allowed_from_server => false,
600
- :description => 'When set to `true`, forces a synchronous connection to the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector) during application startup. For very short-lived processes, this helps ensure the New Relic agent has time to report.'
569
+ :allowed_from_server => true,
570
+ :description => 'If `true`, enables collection of [transaction traces](/docs/apm/traces/transaction-traces/transaction-traces).'
601
571
  },
602
- :send_data_on_exit => {
572
+ :'transaction_tracer.explain_enabled' => {
603
573
  :default => true,
604
574
  :public => true,
605
575
  :type => Boolean,
606
- :allowed_from_server => false,
607
- :description => 'If `true`, enables the exit handler that sends data to the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector) before shutting down.'
576
+ :allowed_from_server => true,
577
+ :description => 'If `true`, enables the collection of explain plans in transaction traces. This setting will also apply to explain plans in slow SQL traces if [`slow_sql.explain_enabled`](#slow_sql-explain_enabled) is not set separately.'
608
578
  },
609
- :max_payload_size_in_bytes => {
610
- :default => 1000000,
611
- :public => false,
579
+ :'transaction_tracer.explain_threshold' => {
580
+ :default => 0.5,
581
+ :public => true,
582
+ :type => Float,
583
+ :allowed_from_server => true,
584
+ :description => 'Threshold (in seconds) above which the agent will collect explain plans. Relevant only when [`explain_enabled`](#transaction_tracer.explain_enabled) is true.'
585
+ },
586
+ :'transaction_tracer.limit_segments' => {
587
+ :default => 4000,
588
+ :public => true,
612
589
  :type => Integer,
613
590
  :allowed_from_server => true,
614
- :description => 'Maximum number of bytes to send to the New Relic data collection service.'
591
+ :description => 'Maximum number of transaction trace nodes to record in a single transaction trace.'
615
592
  },
616
- :put_for_data_send => {
593
+ :'transaction_tracer.record_redis_arguments' => {
617
594
  :default => false,
618
- :public => false,
595
+ :public => true,
619
596
  :type => Boolean,
620
597
  :allowed_from_server => false,
621
- :description => 'Use HTTP PUT requests instead of POST.'
598
+ :description => 'If `true`, the agent records Redis command arguments in transaction traces.'
622
599
  },
623
- :compressed_content_encoding => {
624
- :default => 'gzip',
625
- :public => false,
600
+ :'transaction_tracer.record_sql' => {
601
+ :default => 'obfuscated',
602
+ :public => true,
626
603
  :type => String,
627
- :allowed_from_server => false,
628
- :description => 'Encoding to use if data needs to be compressed. The options are deflate and gzip.'
604
+ :allowed_from_server => true,
605
+ :description => 'Obfuscation level for SQL queries reported in transaction trace nodes.
606
+
607
+ By default, this is set to `obfuscated`, which strips out the numeric and string literals.
608
+
609
+ - If you do not want the agent to capture query information, set this to `none`.
610
+ - If you want the agent to capture all query information in its original form, set this to `raw`.
611
+ - When you enable [high security mode](/docs/agents/manage-apm-agents/configuration/high-security-mode), this is automatically set to `obfuscated`.
612
+ '
629
613
  },
630
- :simple_compression => {
631
- :default => false,
632
- :public => false,
633
- :type => Boolean,
634
- :allowed_from_server => false,
635
- :description => 'When enabled the agent will compress payloads destined for the collector, but will not pre-compress parts of the payload.'
614
+
615
+ :'transaction_tracer.stack_trace_threshold' => {
616
+ :default => 0.5,
617
+ :public => true,
618
+ :type => Float,
619
+ :allowed_from_server => true,
620
+ :description => 'Specify a threshold in seconds. The agent includes stack traces in transaction trace nodes when the stack trace duration exceeds this threshold.'
636
621
  },
637
- :timeout => {
638
- :default => 2 * 60, # 2 minutes
622
+ :'transaction_tracer.transaction_threshold' => {
623
+ :default => DefaultSource.transaction_tracer_transaction_threshold,
639
624
  :public => true,
640
- :type => Integer,
641
- :allowed_from_server => false,
642
- :description => 'Defines the maximum number of seconds the agent should spend attempting to connect to the collector.'
625
+ :type => Float,
626
+ :allowed_from_server => true,
627
+ :description => 'Specify a threshold in seconds. Transactions with a duration longer than this threshold are eligible for transaction traces. Specify a float value or the string `apdex_f`.'
643
628
  },
644
- :send_environment_info => {
629
+ # Error collector
630
+ :'error_collector.capture_attributes' => {
645
631
  :default => true,
646
- :public => false,
632
+ :public => true,
647
633
  :type => Boolean,
634
+ :deprecated => true,
648
635
  :allowed_from_server => false,
649
- :description => 'Enable or disable transmission of application environment information to the New Relic data collection service.'
636
+ :description => 'Use [`error_collector.attributes.enabled`](#error_collector-attributes-enabled) instead.'
650
637
  },
651
- :data_report_period => {
652
- :default => 60,
653
- :public => false,
654
- :type => Integer,
638
+ :'error_collector.ignore_classes' => {
639
+ :default => [],
640
+ :public => true,
641
+ :type => Array,
655
642
  :allowed_from_server => true,
656
- :description => 'Number of seconds betwixt connections to the New Relic data collection service.'
643
+ :dynamic_name => true,
644
+ :description => <<-DESCRIPTION
645
+ A list of error classes that the agent should ignore.
646
+
647
+ <Callout variant="caution">
648
+ This option can't be set via environment variable.
649
+ </Callout>
650
+ DESCRIPTION
657
651
  },
658
- :event_report_period => {
659
- :default => 60,
660
- :public => false,
661
- :type => Integer,
652
+ :'error_collector.capture_events' => {
653
+ :default => value_of(:'error_collector.enabled'),
654
+ :documentation_default => true,
655
+ :public => true,
656
+ :type => Boolean,
662
657
  :allowed_from_server => true,
663
- :description => 'Number of seconds betwixt connections to the New Relic event collection services.'
664
- },
665
- :'event_report_period.analytic_event_data' => {
666
- :default => 60,
667
- :public => false,
668
- :type => Integer,
669
658
  :dynamic_name => true,
670
- :deprecated => true,
659
+ :description => 'If `true`, the agent collects [TransactionError events](/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights).'
660
+ },
661
+ :'error_collector.enabled' => {
662
+ :default => true,
663
+ :public => true,
664
+ :type => Boolean,
671
665
  :allowed_from_server => true,
672
- :description => deprecated_description(:'event_report_period.transaction_event_data', 'Number of seconds betwixt connections to the New Relic transaction event collection services.')
666
+ :description => 'If `true`, the agent captures traced errors and error count metrics.'
673
667
  },
674
- :'event_report_period.transaction_event_data' => {
675
- :default => value_of(:'event_report_period.analytic_event_data'),
676
- :public => false,
677
- :type => Integer,
668
+ :'error_collector.expected_classes' => {
669
+ :default => [],
670
+ :public => true,
671
+ :type => Array,
672
+ :allowed_from_server => true,
678
673
  :dynamic_name => true,
674
+ :description => <<-DESCRIPTION
675
+ A list of error classes that the agent should treat as expected.
676
+
677
+ <Callout variant="caution">
678
+ This option can't be set via environment variable.
679
+ </Callout>
680
+ DESCRIPTION
681
+ },
682
+ :'error_collector.expected_messages' => {
683
+ :default => {},
684
+ :public => true,
685
+ :type => Hash,
679
686
  :allowed_from_server => true,
680
- :description => 'Number of seconds betwixt connections to the New Relic transaction event collection services.'
687
+ :dynamic_name => true,
688
+ :description => <<-DESCRIPTION
689
+ A map of error classes to a list of messages. When an error of one of the classes specified here occurs, if its error message contains one of the strings corresponding to it here, that error will be treated as expected.
690
+
691
+ <Callout variant="caution">
692
+ This option can't be set via environment variable.
693
+ </Callout>
694
+ DESCRIPTION
681
695
  },
682
- :'event_report_period.custom_event_data' => {
683
- :default => 60,
684
- :public => false,
685
- :type => Integer,
696
+ :'error_collector.expected_status_codes' => {
697
+ :default => '',
698
+ :public => true,
699
+ :type => String,
700
+ :allowed_from_server => true,
686
701
  :dynamic_name => true,
702
+ :description => 'A comma separated list of status codes, possibly including ranges. Errors associated with these status codes, where applicable, will be treated as expected.'
703
+ },
704
+ :'error_collector.ignore_errors' => {
705
+ :default => 'ActionController::RoutingError,Sinatra::NotFound',
706
+ :public => true,
707
+ :type => String,
708
+ :deprecated => true,
687
709
  :allowed_from_server => true,
688
- :description => 'Number of seconds betwixt connections to the New Relic custom event collection services.'
710
+ :dynamic_name => true,
711
+ :description => <<-DESCRIPTION
712
+ Use `error_collector.ignore_classes` instead. Specify a comma-delimited list of error classes that the agent should ignore.
713
+
714
+ <Callout variant="caution">
715
+ Server side configuration takes precedence for this setting over all environment configurations. This differs from all other configuration settings where environment variable take precedence over server side configuration.
716
+ </Callout>
717
+ DESCRIPTION
689
718
  },
690
- :'event_report_period.error_event_data' => {
691
- :default => 60,
692
- :public => false,
693
- :type => Integer,
719
+ :'error_collector.ignore_messages' => {
720
+ :default => {},
721
+ :public => true,
722
+ :type => Hash,
723
+ :allowed_from_server => true,
694
724
  :dynamic_name => true,
725
+ :description => <<-DESCRIPTION
726
+ A map of error classes to a list of messages. When an error of one of the classes specified here occurs, if its error message contains one of the strings corresponding to it here, that error will be ignored.
727
+
728
+ <Callout variant="caution">
729
+ This option can't be set via environment variable.
730
+ </Callout>
731
+ DESCRIPTION
732
+ },
733
+ :'error_collector.ignore_status_codes' => {
734
+ :default => '',
735
+ :public => true,
736
+ :type => String,
695
737
  :allowed_from_server => true,
696
- :description => 'Number of seconds betwixt connections to the New Relic error event collection services.'
738
+ :dynamic_name => true,
739
+ :description => 'A comma separated list of status codes, possibly including ranges. Errors associated with these status codes, where applicable, will be ignored.'
697
740
  },
698
- :'event_report_period.log_event_data' => {
699
- :default => 60,
700
- :public => false,
741
+ :'error_collector.max_backtrace_frames' => {
742
+ :default => 50,
743
+ :public => true,
701
744
  :type => Integer,
702
- :dynamic_name => true,
703
- :allowed_from_server => true,
704
- :description => 'Number of seconds betwixt connections to the New Relic log event collection services.'
745
+ :allowed_from_server => false,
746
+ :description => 'Defines the maximum number of frames in an error backtrace. Backtraces over this amount are truncated at the beginning and end.'
705
747
  },
706
- :'event_report_period.span_event_data' => {
707
- :default => 60,
708
- :public => false,
748
+ :'error_collector.max_event_samples_stored' => {
749
+ :default => 100,
750
+ :public => true,
709
751
  :type => Integer,
710
- :dynamic_name => true,
711
752
  :allowed_from_server => true,
712
- :description => 'Number of seconds betwixt connections to the New Relic span event collection services.'
753
+ :description => 'Defines the maximum number of [TransactionError events](/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights) reported per harvest cycle.'
713
754
  },
714
- :keep_retrying => {
715
- :default => true,
716
- :public => false,
755
+ # Browser monitoring
756
+ :'browser_monitoring.auto_instrument' => {
757
+ :default => value_of(:'rum.enabled'),
758
+ :documentation_default => true,
759
+ :public => true,
717
760
  :type => Boolean,
718
- :deprecated => true,
719
- :allowed_from_server => false,
720
- :description => 'Enable or disable retrying failed connections to the New Relic data collection service.'
761
+ :allowed_from_server => true,
762
+ :description => 'If `true`, enables [auto-injection](/docs/browser/new-relic-browser/installation-configuration/adding-apps-new-relic-browser#select-apm-app) of the JavaScript header for page load timing (sometimes referred to as real user monitoring or RUM).'
721
763
  },
722
- :force_install_exit_handler => {
764
+ :'browser_monitoring.capture_attributes' => {
723
765
  :default => false,
724
766
  :public => true,
725
767
  :type => Boolean,
768
+ :deprecated => true,
726
769
  :allowed_from_server => false,
727
- :description => 'Forces the exit handler that sends all cached data to collector ' \
728
- 'before shutting down to be installed regardless of detecting scenarios where it generally should not be. ' \
729
- 'Known use-case for this option is where Sinatra is running as an embedded service within another framework ' \
730
- 'and the agent is detecting the Sinatra app and skipping the `at_exit` handler as a result. Sinatra classically ' \
731
- 'runs the entire application in an `at_exit` block and would otherwise misbehave if the Agent\'s `at_exit` handler ' \
732
- 'was also installed in those circumstances. Note: `send_data_on_exit` should also be set to `true` in tandem with this setting.'
770
+ :description => 'Use [`browser_monitoring.attributes.enabled`](#browser_monitoring-attributes-enabled) instead.'
733
771
  },
734
- :force_reconnect => {
735
- :default => false,
736
- :public => false,
772
+ # Analytics events
773
+ :'analytics_events.capture_attributes' => {
774
+ :default => true,
775
+ :public => true,
737
776
  :type => Boolean,
777
+ :deprecated => true,
738
778
  :allowed_from_server => false,
739
- :description => 'Force a new connection to the server before running the worker loop. Creates a separate agent run and is recorded as a separate instance by the New Relic data collection service.'
779
+ :description => 'Use [`transaction_events.attributes.enabled`](#transaction_events-attributes-enabled) instead.'
740
780
  },
741
- :report_instance_busy => {
781
+ :'analytics_events.enabled' => {
742
782
  :default => true,
743
- :public => false,
783
+ :public => true,
744
784
  :type => Boolean,
745
- :allowed_from_server => false,
746
- :description => 'Enable or disable transmission of metrics recording the percentage of time application instances spend servicing requests (duty cycle metrics).'
785
+ :deprecated => true,
786
+ :allowed_from_server => true,
787
+ :description => deprecated_description(:'transaction_events.enabled', 'If `true`, enables analytics event sampling.')
747
788
  },
748
- :log_file_name => {
749
- :default => 'newrelic_agent.log',
789
+ :'analytics_events.max_samples_stored' => {
790
+ :default => 1200,
750
791
  :public => true,
751
- :type => String,
752
- :allowed_from_server => false,
753
- :description => 'Defines a name for the log file.'
792
+ :type => Integer,
793
+ :deprecated => true,
794
+ :allowed_from_server => true,
795
+ :description => deprecated_description(:'transaction_events.max_samples_stored', 'Defines the maximum number of request events reported from a single harvest.')
754
796
  },
755
- :log_file_path => {
756
- :default => DefaultSource::DEFAULT_LOG_DIR,
797
+ # Transaction events
798
+ :'transaction_events.enabled' => {
799
+ :default => value_of(:'analytics_events.enabled'),
800
+ :documentation_default => true,
757
801
  :public => true,
758
- :type => String,
759
- :allowed_from_server => false,
760
- :description => 'Defines a path to the agent log file, excluding the filename.'
802
+ :type => Boolean,
803
+ :allowed_from_server => true,
804
+ :description => 'If `true`, enables transaction event sampling.'
761
805
  },
762
- :'audit_log.enabled' => {
763
- :default => false,
806
+ :'transaction_events.max_samples_stored' => {
807
+ :default => value_of(:'analytics_events.max_samples_stored'),
808
+ :documentation_default => 1200,
809
+ :public => true,
810
+ :type => Integer,
811
+ :allowed_from_server => true,
812
+ :description => 'Defines the maximum number of transaction events reported from a single harvest.'
813
+ },
814
+ # Application logging
815
+ :'application_logging.enabled' => {
816
+ :default => true,
764
817
  :public => true,
765
818
  :type => Boolean,
766
819
  :allowed_from_server => false,
767
- :description => 'If `true`, enables an audit log which logs communications with the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector).'
820
+ :description => 'If `true`, enables log decoration and the collection of log events and metrics.'
768
821
  },
769
- :'audit_log.path' => {
770
- :default => DefaultSource.audit_log_path,
771
- :documentation_default => 'config/newrelic_audit.log',
822
+ :'application_logging.forwarding.enabled' => {
823
+ :default => true,
772
824
  :public => true,
773
- :type => String,
825
+ :type => Boolean,
774
826
  :allowed_from_server => false,
775
- :description => 'Specifies a path to the audit log file (including the filename).'
827
+ :description => 'If `true`, the agent captures log records emitted by your application.'
776
828
  },
777
- :'audit_log.endpoints' => {
778
- :default => [".*"],
829
+ :'application_logging.forwarding.max_samples_stored' => {
830
+ :default => 10000,
779
831
  :public => true,
780
- :type => Array,
781
- :allowed_from_server => false,
782
- :transform => DefaultSource.method(:convert_to_regexp_list),
783
- :description => 'List of allowed endpoints to include in audit log'
832
+ :type => Integer,
833
+ :allowed_from_server => true,
834
+ :description => 'Defines the maximum number of log records to buffer in memory at a time.',
835
+ :dynamic_name => true
784
836
  },
785
- :disable_samplers => {
837
+ :'application_logging.local_decorating.enabled' => {
786
838
  :default => false,
787
839
  :public => true,
788
840
  :type => Boolean,
789
841
  :allowed_from_server => false,
790
- :description => 'If `true`, disables the collection of sampler metrics. Sampler metrics are metrics that are not event-based (such as CPU time or memory usage).'
842
+ :description => 'If `true`, the agent decorates logs with metadata to link to entities, hosts, traces, and spans.'
791
843
  },
792
- :disable_resque => {
793
- :default => false,
844
+ :'application_logging.metrics.enabled' => {
845
+ :default => true,
794
846
  :public => true,
795
847
  :type => Boolean,
796
- :deprecated => true,
797
- :allowed_from_server => false,
798
- :description => deprecated_description(:'instrumentation.resque', 'If `true`, disables [Resque instrumentation](/docs/agents/ruby-agent/background-jobs/resque-instrumentation).')
848
+ :allowed_from_server => true,
849
+ :description => 'If `true`, the agent captures metrics related to logging for your application.'
799
850
  },
800
- :disable_sidekiq => {
801
- :default => false,
851
+ # Attributes
852
+ :'attributes.enabled' => {
853
+ :default => true,
802
854
  :public => true,
803
855
  :type => Boolean,
804
856
  :allowed_from_server => false,
805
- :description => 'If `true`, disables [Sidekiq instrumentation](/docs/agents/ruby-agent/background-jobs/sidekiq-instrumentation).'
857
+ :description => 'If `true`, enables capture of attributes for all destinations.'
806
858
  },
807
- :disable_dj => {
808
- :default => false,
859
+ :'attributes.exclude' => {
860
+ :default => [],
809
861
  :public => true,
810
- :deprecated => true,
811
- :type => Boolean,
862
+ :type => Array,
812
863
  :allowed_from_server => false,
813
- :description => deprecated_description(:'instrumentation.delayed_job', 'If `true`, disables [Delayed::Job instrumentation](/docs/agents/ruby-agent/background-jobs/delayedjob).')
864
+ :transform => DefaultSource.method(:convert_to_list),
865
+ :description => 'Prefix of attributes to exclude from all destinations. Allows `*` as wildcard at end.'
814
866
  },
815
- :disable_sinatra => {
816
- :default => false,
867
+ :'attributes.include' => {
868
+ :default => [],
817
869
  :public => true,
818
- :type => Boolean,
819
- :deprecated => true,
870
+ :type => Array,
820
871
  :allowed_from_server => false,
821
- :description => deprecated_description(:'instrumentation.sinatra', 'If `true` , disables [Sinatra instrumentation](/docs/agents/ruby-agent/frameworks/sinatra-support).')
872
+ :transform => DefaultSource.method(:convert_to_list),
873
+ :description => 'Prefix of attributes to include in all destinations. Allows `*` as wildcard at end.'
822
874
  },
823
- :disable_sinatra_auto_middleware => {
824
- :default => false,
875
+ :'browser_monitoring.attributes.enabled' => {
876
+ :default => value_of(:'browser_monitoring.capture_attributes'),
877
+ :documentation_default => false,
825
878
  :public => true,
826
879
  :type => Boolean,
827
880
  :allowed_from_server => false,
828
- :description => <<-DESCRIPTION
829
- If `true`, disables agent middleware for Sinatra. This middleware is responsible for advanced feature support such as [cross application tracing](/docs/apm/transactions/cross-application-traces/cross-application-tracing), [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).
830
-
831
- <Callout variant="important">
832
- Cross application tracing is deprecated in favor of [distributed tracing](https://docs.newrelic.com/docs/apm/distributed-tracing/getting-started/introduction-distributed-tracing). Distributed tracing is on by default for Ruby agent versions 8.0.0 and above. Middlewares are not required to support distributed tracing.
833
-
834
- To continue using cross application tracing, update the following options in your `newrelic.yml` configuration file:
835
-
836
- ```
837
- # newrelic.yml
838
-
839
- cross_application_tracer:
840
- enabled: true
841
- distributed_tracing:
842
- enabled: false
843
- ```
844
- </Callout>
845
- DESCRIPTION
881
+ :description => 'If `true`, the agent captures attributes from browser monitoring.'
846
882
  },
847
- :disable_view_instrumentation => {
848
- :default => false,
883
+ :'browser_monitoring.attributes.exclude' => {
884
+ :default => [],
849
885
  :public => true,
850
- :type => Boolean,
886
+ :type => Array,
851
887
  :allowed_from_server => false,
852
- :description => 'If `true`, disables view instrumentation.'
888
+ :transform => DefaultSource.method(:convert_to_list),
889
+ :description => 'Prefix of attributes to exclude from browser monitoring. Allows `*` as wildcard at end.'
853
890
  },
854
- :disable_harvest_thread => {
855
- :default => false,
856
- :public => false,
857
- :type => Boolean,
891
+ :'browser_monitoring.attributes.include' => {
892
+ :default => [],
893
+ :public => true,
894
+ :type => Array,
858
895
  :allowed_from_server => false,
859
- :description => 'Enable or disable the harvest thread.'
896
+ :transform => DefaultSource.method(:convert_to_list),
897
+ :description => 'Prefix of attributes to include in browser monitoring. Allows `*` as wildcard at end.'
860
898
  },
861
- :skip_ar_instrumentation => {
862
- :default => false,
863
- :public => false,
899
+ :'error_collector.attributes.enabled' => {
900
+ :default => value_of(:'error_collector.capture_attributes'),
901
+ :documentation_default => true,
902
+ :public => true,
864
903
  :type => Boolean,
865
904
  :allowed_from_server => false,
866
- :description => 'Enable or disable active record instrumentation.'
905
+ :description => 'If `true`, the agent captures attributes from error collection.'
867
906
  },
868
- :disable_activerecord_instrumentation => {
869
- :default => value_of(:skip_ar_instrumentation),
870
- :documentation_default => false,
907
+ :'error_collector.attributes.exclude' => {
908
+ :default => [],
871
909
  :public => true,
872
- :type => Boolean,
910
+ :type => Array,
873
911
  :allowed_from_server => false,
874
- :description => 'If `true`, disables active record instrumentation.'
912
+ :transform => DefaultSource.method(:convert_to_list),
913
+ :description => 'Prefix of attributes to exclude from error collection. Allows `*` as wildcard at end.'
875
914
  },
876
- :prepend_active_record_instrumentation => {
877
- :default => false,
915
+ :'error_collector.attributes.include' => {
916
+ :default => [],
878
917
  :public => true,
879
- :type => Boolean,
918
+ :type => Array,
880
919
  :allowed_from_server => false,
881
- :description => 'If `true`, uses `Module#prepend` rather than `alias_method` for ActiveRecord instrumentation.'
920
+ :transform => DefaultSource.method(:convert_to_list),
921
+ :description => 'Prefix of attributes to include in error collection. Allows `*` as wildcard at end.'
882
922
  },
883
- :prepend_net_instrumentation => {
923
+ :'span_events.attributes.enabled' => {
884
924
  :default => true,
885
- :public => false,
925
+ :public => true,
886
926
  :type => Boolean,
887
927
  :allowed_from_server => false,
888
- :deprecated => true,
889
- :description => deprecated_description(:'instrumentation.net_http',
890
- 'If `true`, uses `Module#prepend` rather than alias_method for Net::HTTP instrumentation.')
928
+ :description => 'If `true`, the agent captures attributes on span events.'
891
929
  },
892
- :'instrumentation.net_http' => {
893
- :default => instrumentation_value_of(:disable_net_http, :prepend_net_instrumentation),
894
- :documentation_default => 'auto',
930
+ :'span_events.attributes.exclude' => {
931
+ :default => [],
895
932
  :public => true,
896
- :type => String,
897
- :dynamic_name => true,
933
+ :type => Array,
898
934
  :allowed_from_server => false,
899
- :description => "Controls auto-instrumentation of Net::HTTP at start up. May be one of [auto|prepend|chain|disabled]."
935
+ :transform => DefaultSource.method(:convert_to_list),
936
+ :description => 'Prefix of attributes to exclude from span events. Allows `*` as wildcard at end.'
900
937
  },
901
- :'instrumentation.typhoeus' => {
902
- :default => instrumentation_value_of(:disable_typhoeus),
903
- :documentation_default => 'auto',
938
+ :'span_events.attributes.include' => {
939
+ :default => [],
904
940
  :public => true,
905
- :type => String,
906
- :dynamic_name => true,
941
+ :type => Array,
907
942
  :allowed_from_server => false,
908
- :description => "Controls auto-instrumentation of Typhoeus at start up. May be one of [auto|prepend|chain|disabled]."
943
+ :transform => DefaultSource.method(:convert_to_list),
944
+ :description => 'Prefix of attributes to include on span events. Allows `*` as wildcard at end.'
909
945
  },
910
- :'instrumentation.bunny' => {
911
- :default => instrumentation_value_of(:disable_bunny),
912
- :documentation_default => 'auto',
946
+ :'transaction_events.attributes.enabled' => {
947
+ :default => value_of(:'analytics_events.capture_attributes'),
948
+ :documentation_default => true,
913
949
  :public => true,
914
- :type => String,
915
- :dynamic_name => true,
950
+ :type => Boolean,
916
951
  :allowed_from_server => false,
917
- :description => 'Controls auto-instrumentation of bunny at start up. May be one of [auto|prepend|chain|disabled].'
952
+ :description => 'If `true`, the agent captures attributes from transaction events.'
918
953
  },
919
- :'instrumentation.httprb' => {
920
- :default => instrumentation_value_of(:disable_httprb),
921
- :documentation_default => 'auto',
954
+ :'transaction_events.attributes.exclude' => {
955
+ :default => [],
922
956
  :public => true,
923
- :type => String,
924
- :dynamic_name => true,
957
+ :type => Array,
925
958
  :allowed_from_server => false,
926
- :description => 'Controls auto-instrumentation of http.rb gem at start up. May be one of [auto|prepend|chain|disabled].'
959
+ :transform => DefaultSource.method(:convert_to_list),
960
+ :description => 'Prefix of attributes to exclude from transaction events. Allows `*` as wildcard at end.'
927
961
  },
928
- :'instrumentation.resque' => {
929
- :default => instrumentation_value_of(:disable_resque),
930
- :documentation_default => 'auto',
962
+ :'transaction_events.attributes.include' => {
963
+ :default => [],
931
964
  :public => true,
932
- :type => String,
933
- :dynamic_name => true,
965
+ :type => Array,
934
966
  :allowed_from_server => false,
935
- :description => "Controls auto-instrumentation of resque at start up. May be one of [auto|prepend|chain|disabled]."
967
+ :transform => DefaultSource.method(:convert_to_list),
968
+ :description => 'Prefix of attributes to include in transaction events. Allows `*` as wildcard at end.'
936
969
  },
937
- :'instrumentation.thread' => {
938
- :default => 'auto',
970
+ :'transaction_segments.attributes.enabled' => {
971
+ :default => true,
939
972
  :public => true,
940
- :type => String,
941
- :dynamic_name => true,
973
+ :type => Boolean,
942
974
  :allowed_from_server => false,
943
- :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]."
975
+ :description => 'If `true`, the agent captures attributes on transaction segments.'
944
976
  },
945
- :'instrumentation.thread.tracing' => {
946
- :default => false,
977
+ :'transaction_segments.attributes.exclude' => {
978
+ :default => [],
947
979
  :public => true,
948
- :type => Boolean,
980
+ :type => Array,
949
981
  :allowed_from_server => false,
950
- :description => "Controls auto-instrumentation of the Thread class at start up to automatically add tracing to all Threads created in the application."
982
+ :transform => DefaultSource.method(:convert_to_list),
983
+ :description => 'Prefix of attributes to exclude from transaction segments. Allows `*` as wildcard at end.'
951
984
  },
952
- :'instrumentation.redis' => {
953
- :default => instrumentation_value_of(:disable_redis),
954
- :documentation_default => 'auto',
985
+ :'transaction_segments.attributes.include' => {
986
+ :default => [],
955
987
  :public => true,
956
- :type => String,
957
- :dynamic_name => true,
958
- :allowed_from_server => false,
959
- :description => "Controls auto-instrumentation of Redis at start up. May be one of [auto|prepend|chain|disabled]."
960
- },
961
- :'instrumentation.rake' => {
962
- :default => instrumentation_value_of(:disable_rake),
963
- :documentation_default => 'auto',
964
- :public => :true,
965
- :type => String,
966
- :dynamic_name => true,
967
- :allowed_from_server => false,
968
- :description => "Controls auto-instrumentation of rake at start up. May be one of [auto|prepend|chain|disabled]."
969
- },
970
- :'instrumentation.mongo' => {
971
- :default => instrumentation_value_of(:disable_mongo),
972
- :documentation_default => 'enabled',
973
- :public => :true,
974
- :type => String,
975
- :dynamic_name => true,
988
+ :type => Array,
976
989
  :allowed_from_server => false,
977
- :description => "Controls auto-instrumentation of Mongo at start up. May be one of [enabled|disabled]."
990
+ :transform => DefaultSource.method(:convert_to_list),
991
+ :description => 'Prefix of attributes to include on transaction segments. Allows `*` as wildcard at end.'
978
992
  },
979
- :'instrumentation.delayed_job' => {
980
- :default => instrumentation_value_of(:disable_dj),
981
- :documentation_default => 'auto',
993
+ :'transaction_tracer.attributes.enabled' => {
994
+ :default => value_of(:'transaction_tracer.capture_attributes'),
995
+ :documentation_default => true,
982
996
  :public => true,
983
- :type => String,
984
- :dynamic_name => true,
997
+ :type => Boolean,
985
998
  :allowed_from_server => false,
986
- :description => 'Controls auto-instrumentation of Delayed Job at start up. May be one of [auto|prepend|chain|disabled].'
999
+ :description => 'If `true`, the agent captures attributes from transaction traces.'
987
1000
  },
988
- :'instrumentation.httpclient' => {
989
- :default => instrumentation_value_of(:disable_httpclient),
990
- :documentation_default => 'auto',
1001
+ :'transaction_tracer.attributes.exclude' => {
1002
+ :default => [],
991
1003
  :public => true,
992
- :type => String,
993
- :dynamic_name => true,
1004
+ :type => Array,
994
1005
  :allowed_from_server => false,
995
- :description => "Controls auto-instrumentation of HTTPClient at start up. May be one of [auto|prepend|chain|disabled]."
1006
+ :transform => DefaultSource.method(:convert_to_list),
1007
+ :description => 'Prefix of attributes to exclude from transaction traces. Allows `*` as wildcard at end.'
996
1008
  },
997
- :'instrumentation.curb' => {
998
- :default => instrumentation_value_of(:disable_curb),
999
- :documentation_default => 'auto',
1009
+ :'transaction_tracer.attributes.include' => {
1010
+ :default => [],
1000
1011
  :public => true,
1001
- :type => String,
1002
- :dynamic_name => true,
1003
- :allowed_from_server => false,
1004
- :description => 'Controls auto-instrumentation of Curb at start up. May be one of [auto|prepend|chain|disabled].'
1005
- },
1006
- :'instrumentation.sinatra' => {
1007
- :default => instrumentation_value_of(:disable_sinatra),
1008
- :documentation_default => 'auto',
1009
- :public => :true,
1010
- :type => String,
1011
- :dynamic_name => true,
1012
+ :type => Array,
1012
1013
  :allowed_from_server => false,
1013
- :description => "Controls auto-instrumentation of Sinatra at start up. May be one of [auto|prepend|chain|disabled]."
1014
+ :transform => DefaultSource.method(:convert_to_list),
1015
+ :description => 'Prefix of attributes to include in transaction traces. Allows `*` as wildcard at end.'
1014
1016
  },
1015
- :'instrumentation.rack' => {
1016
- :default => instrumentation_value_of(:disable_rack),
1017
- :documentation_default => 'auto',
1017
+ # Audit log
1018
+ :'audit_log.enabled' => {
1019
+ :default => false,
1018
1020
  :public => true,
1019
- :type => String,
1020
- :dynamic_name => true,
1021
+ :type => Boolean,
1021
1022
  :allowed_from_server => false,
1022
- :description => "Controls auto-instrumentation of Rack. When enabled, the agent hooks into the " \
1023
- "`to_app` method in Rack::Builder to find gems to instrument during " \
1024
- "application startup. May be one of [auto|prepend|chain|disabled]."
1023
+ :description => 'If `true`, enables an audit log which logs communications with the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector).'
1025
1024
  },
1026
- :'instrumentation.rack_urlmap' => {
1027
- :default => instrumentation_value_of(:disable_rack_urlmap),
1028
- :documentation_default => 'auto',
1025
+ :'audit_log.endpoints' => {
1026
+ :default => [".*"],
1029
1027
  :public => true,
1030
- :type => String,
1031
- :dynamic_name => true,
1028
+ :type => Array,
1032
1029
  :allowed_from_server => false,
1033
- :description => 'Controls auto-instrumentation of Rack::URLMap at start up. May be one of [auto|prepend|chain|disabled].'
1030
+ :transform => DefaultSource.method(:convert_to_regexp_list),
1031
+ :description => 'List of allowed endpoints to include in audit log'
1034
1032
  },
1035
- :'instrumentation.puma_rack' => {
1036
- :default => instrumentation_value_of(:disable_puma_rack), # TODO: MAJOR VERSION - change to value_of(:'instrumentation.rack') when we remove :disable_puma_rack in 8.0)
1037
- :documentation_default => 'auto',
1033
+ :'audit_log.path' => {
1034
+ :default => DefaultSource.audit_log_path,
1035
+ :documentation_default => 'config/newrelic_audit.log',
1038
1036
  :public => true,
1039
1037
  :type => String,
1040
- :dynamic_name => true,
1041
1038
  :allowed_from_server => false,
1042
- :description => "Controls auto-instrumentation of Puma::Rack. When enabled, the agent hooks into the " \
1043
- "`to_app` method in Puma::Rack::Builder to find gems to instrument during " \
1044
- "application startup. May be one of [auto|prepend|chain|disabled]."
1039
+ :description => 'Specifies a path to the audit log file (including the filename).'
1045
1040
  },
1046
- :'instrumentation.puma_rack_urlmap' => {
1047
- :default => instrumentation_value_of(:disable_puma_rack_urlmap), # TODO: MAJOR VERSION - change to value_of(:'instrumentation.rack_urlmap') when we remove :disable_puma_rack_urlmap in 8.0)
1048
- :documentation_default => 'auto',
1041
+ # Autostart
1042
+ :'autostart.denylisted_constants' => {
1043
+ :default => 'Rails::Console',
1049
1044
  :public => true,
1050
1045
  :type => String,
1051
- :dynamic_name => true,
1052
1046
  :allowed_from_server => false,
1053
- :description => 'Controls auto-instrumentation of Puma::Rack::URLMap at start up. May be one of [auto|prepend|chain|disabled].'
1047
+ :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`.'
1054
1048
  },
1055
- :'instrumentation.memcached' => {
1056
- :default => instrumentation_value_of(:disable_memcached),
1057
- :documentation_default => 'auto',
1049
+ :'autostart.denylisted_executables' => {
1050
+ :default => 'irb,rspec',
1058
1051
  :public => true,
1059
1052
  :type => String,
1060
- :dynamic_name => true,
1061
1053
  :allowed_from_server => false,
1062
- :description => 'Controls auto-instrumentation of memcached gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
1054
+ :description => 'Defines a comma-delimited list of executables that the agent should not instrument. For example, `rake,my_ruby_script.rb`.'
1063
1055
  },
1064
- :'instrumentation.memcache_client' => {
1065
- :default => instrumentation_value_of(:disable_memcache_client),
1066
- :documentation_default => 'auto',
1056
+ :'autostart.denylisted_rake_tasks' => {
1057
+ :default => AUTOSTART_DENYLISTED_RAKE_TASKS,
1067
1058
  :public => true,
1068
1059
  :type => String,
1069
- :dynamic_name => true,
1070
1060
  :allowed_from_server => false,
1071
- :description => 'Controls auto-instrumentation of memcache-client gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
1061
+ :description => 'Defines a comma-delimited list of Rake tasks that the agent should not instrument. For example, `assets:precompile,db:migrate`.'
1072
1062
  },
1073
- :'instrumentation.memcache' => {
1074
- :default => instrumentation_value_of(:disable_dalli),
1075
- :documentation_default => 'auto',
1063
+ # Code level metrics
1064
+ :'code_level_metrics.enabled' => {
1065
+ :default => true,
1076
1066
  :public => true,
1077
- :type => String,
1078
- :dynamic_name => true,
1079
- :allowed_from_server => false,
1080
- :description => 'Controls auto-instrumentation of dalli gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
1067
+ :type => Boolean,
1068
+ :allowed_from_server => true,
1069
+ :description => "If `true`, the agent will report source code level metrics for traced methods.\nsee: " \
1070
+ 'https://docs.newrelic.com/docs/apm/agents/ruby-agent/features/ruby-codestream-integration/'
1081
1071
  },
1082
- :'instrumentation.logger' => {
1083
- :default => instrumentation_value_from_boolean(:'application_logging.enabled'),
1084
- :documentation_default => 'auto',
1072
+ # Cross application tracer
1073
+ :"cross_application_tracer.enabled" => {
1074
+ :default => false,
1085
1075
  :public => true,
1086
- :type => String,
1087
- :dynamic_name => true,
1088
- :allowed_from_server => false,
1089
- :description => 'Controls auto-instrumentation of Ruby standard library Logger at start up. May be one of [auto|prepend|chain|disabled].'
1076
+ :type => Boolean,
1077
+ :allowed_from_server => true,
1078
+ :deprecated => true,
1079
+ :description => deprecated_description(
1080
+ :'distributed_tracing-enabled',
1081
+ 'If `true`, enables [cross-application tracing](/docs/agents/ruby-agent/features/cross-application-tracing-ruby/) when `distributed_tracing.enabled` is set to `false`.'
1082
+ )
1090
1083
  },
1091
- :'instrumentation.tilt' => {
1092
- :default => "auto",
1084
+ # Custom attributes
1085
+ :'custom_attributes.enabled' => {
1086
+ :default => true,
1093
1087
  :public => true,
1094
- :type => String,
1095
- :dynamic_name => true,
1088
+ :type => Boolean,
1096
1089
  :allowed_from_server => false,
1097
- :description => 'Controls auto-instrumentation of the Tilt template rendering library at start up. May be one of [auto|prepend|chain|disabled].'
1090
+ :description => 'If `false`, custom attributes will not be sent on events.'
1098
1091
  },
1099
- :'instrumentation.grpc_client' => {
1100
- :default => instrumentation_value_of(:disable_grpc_client),
1101
- :documentation_default => 'auto',
1092
+ # Custom events
1093
+ :'custom_insights_events.enabled' => {
1094
+ :default => true,
1102
1095
  :public => true,
1103
- :type => String,
1104
- :dynamic_name => true,
1105
- :allowed_from_server => false,
1106
- :description => 'Controls auto-instrumentation of gRPC clients at start up. May be one of [auto|prepend|chain|disabled].'
1096
+ :type => Boolean,
1097
+ :allowed_from_server => true,
1098
+ :description => 'If `true`, the agent captures [custom events](/docs/insights/new-relic-insights/adding-querying-data/inserting-custom-events-new-relic-apm-agents).'
1107
1099
  },
1108
- :'instrumentation.grpc.host_denylist' => {
1109
- :default => [],
1100
+ :'custom_insights_events.max_samples_stored' => {
1101
+ :default => 3000,
1110
1102
  :public => true,
1111
- :type => Array,
1112
- :allowed_from_server => false,
1113
- :transform => DefaultSource.method(:convert_to_regexp_list),
1114
- :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.*")
1103
+ :type => Integer,
1104
+ :allowed_from_server => true,
1105
+ :description => 'Specify a maximum number of custom events to buffer in memory at a time.',
1106
+ :dynamic_name => true
1115
1107
  },
1116
- :'instrumentation.grpc_server' => {
1117
- :default => instrumentation_value_of(:disable_grpc_server),
1118
- :documentation_default => 'auto',
1108
+ # Datastore tracer
1109
+ :'datastore_tracer.database_name_reporting.enabled' => {
1110
+ :default => true,
1119
1111
  :public => true,
1120
- :type => String,
1121
- :dynamic_name => true,
1112
+ :type => Boolean,
1122
1113
  :allowed_from_server => false,
1123
- :description => 'Controls auto-instrumentation of gRPC servers at start up. May be one of [auto|prepend|chain|disabled].'
1114
+ :description => 'If `false`, the agent will not add `database_name` parameter to transaction or slow sql traces.'
1124
1115
  },
1125
- :disable_data_mapper => {
1126
- :default => false,
1116
+ :'datastore_tracer.instance_reporting.enabled' => {
1117
+ :default => true,
1127
1118
  :public => true,
1128
1119
  :type => Boolean,
1129
1120
  :allowed_from_server => false,
1130
- :description => 'If `true`, disables DataMapper instrumentation.'
1121
+ :description => 'If `false`, the agent will not report datastore instance metrics, nor add `host` or `port_path_or_id` parameters to transaction or slow SQL traces.'
1131
1122
  },
1132
- :disable_activejob => {
1123
+ # Disabling
1124
+ :disable_action_cable_instrumentation => {
1133
1125
  :default => false,
1134
1126
  :public => true,
1135
1127
  :type => Boolean,
1136
1128
  :dynamic_name => true,
1137
1129
  :allowed_from_server => false,
1138
- :description => 'If `true`, disables ActiveJob instrumentation.'
1130
+ :description => 'If `true`, disables Action Cable instrumentation.'
1139
1131
  },
1140
- :disable_action_cable_instrumentation => {
1132
+ :disable_activejob => {
1141
1133
  :default => false,
1142
1134
  :public => true,
1143
1135
  :type => Boolean,
1144
1136
  :dynamic_name => true,
1145
1137
  :allowed_from_server => false,
1146
- :description => 'If `true`, disables Action Cable instrumentation.'
1138
+ :description => 'If `true`, disables ActiveJob instrumentation.'
1147
1139
  },
1148
1140
  :disable_active_storage => {
1149
1141
  :default => false,
@@ -1153,174 +1145,165 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
1153
1145
  :allowed_from_server => false,
1154
1146
  :description => 'If `true`, disables ActiveStorage instrumentation.'
1155
1147
  },
1156
- :disable_memcached => {
1157
- :default => value_of(:disable_memcache_instrumentation),
1148
+ :disable_activerecord_instrumentation => {
1149
+ :default => value_of(:skip_ar_instrumentation),
1158
1150
  :documentation_default => false,
1159
1151
  :public => true,
1160
1152
  :type => Boolean,
1161
- :deprecated => true,
1162
1153
  :allowed_from_server => false,
1163
- :description => deprecated_description(:'instrumentation.memcached', 'If `true`, disables instrumentation for the memcached gem.')
1154
+ :description => 'If `true`, disables active record instrumentation.'
1164
1155
  },
1165
- :disable_memcache_client => {
1166
- :default => value_of(:disable_memcache_instrumentation),
1167
- :documentation_default => false,
1156
+ :disable_active_record_notifications => {
1157
+ :default => false,
1168
1158
  :public => true,
1169
1159
  :type => Boolean,
1170
- :deprecated => true,
1160
+ :dynamic_name => true,
1171
1161
  :allowed_from_server => false,
1172
- :description => deprecated_description(:'instrumentation.memcache-client', 'If `true`, disables instrumentation for the memcache-client gem.')
1162
+ :description => 'If `true`, disables instrumentation for ActiveRecord 4, 5, and 6.'
1173
1163
  },
1174
- :disable_dalli => {
1175
- :default => value_of(:disable_memcache_instrumentation),
1176
- :documentation_default => false,
1164
+ :disable_bunny => {
1165
+ :default => false,
1177
1166
  :public => true,
1178
1167
  :type => Boolean,
1179
1168
  :deprecated => true,
1169
+ :dynamic_name => true,
1180
1170
  :allowed_from_server => false,
1181
- :description => deprecated_description(:'instrumentation.memcache', 'If `true`, disables instrumentation for the dalli gem.')
1171
+ :description => deprecated_description(:'instrumentation.bunny', 'If `true`, disables instrumentation for the bunny gem.')
1182
1172
  },
1183
- :disable_dalli_cas_client => {
1184
- :default => value_of(:disable_memcache_instrumentation),
1185
- :documentation_default => false,
1173
+ :disable_cpu_sampler => {
1174
+ :default => false,
1186
1175
  :public => true,
1187
1176
  :type => Boolean,
1188
- :deprecated => true,
1177
+ :dynamic_name => true,
1189
1178
  :allowed_from_server => false,
1190
- :description => deprecated_description(:'instrumentation.memcache', "If `true`, disables instrumentation for the dalli gem\'s additional CAS client support.")
1179
+ :description => 'If `true`, the agent won\'t sample the CPU usage of the host process.'
1191
1180
  },
1192
- :disable_memcache_instrumentation => {
1181
+ :disable_curb => {
1193
1182
  :default => false,
1194
1183
  :public => true,
1195
1184
  :type => Boolean,
1196
1185
  :deprecated => true,
1186
+ :dynamic_name => true,
1197
1187
  :allowed_from_server => false,
1198
- :description => deprecated_description(:'instrumentation.memcache', 'If `true`, disables memcache instrumentation.')
1188
+ :description => deprecated_description(:'instrumentation.curb', 'If `true`, disables instrumentation for the curb gem.')
1199
1189
  },
1200
- :disable_gc_profiler => {
1190
+ :disable_database_instrumentation => {
1201
1191
  :default => false,
1202
1192
  :public => true,
1203
1193
  :type => Boolean,
1204
1194
  :allowed_from_server => false,
1205
- :description => 'If `true`, disables the use of GC::Profiler to measure time spent in garbage collection'
1195
+ :deprecated => true,
1196
+ :description => 'Use [`disable_sequel_instrumentation`](#disable_sequel_instrumentation) instead.'
1206
1197
  },
1207
- :'sidekiq.capture_params' => {
1198
+ :disable_data_mapper => {
1208
1199
  :default => false,
1209
1200
  :public => true,
1210
1201
  :type => Boolean,
1211
1202
  :allowed_from_server => false,
1212
- :dynamic_name => true,
1213
- :deprecated => true,
1214
- :description => 'If `true`, enables the capture of job arguments for transaction traces and traced errors in Sidekiq.'
1203
+ :description => 'If `true`, disables DataMapper instrumentation.'
1215
1204
  },
1216
- :'resque.capture_params' => {
1217
- :default => false,
1205
+ :disable_dalli => {
1206
+ :default => value_of(:disable_memcache_instrumentation),
1207
+ :documentation_default => false,
1218
1208
  :public => true,
1219
1209
  :type => Boolean,
1220
- :allowed_from_server => false,
1221
- :dynamic_name => true,
1222
1210
  :deprecated => true,
1223
- :description => 'If `true`, enables the capture of job arguments for transaction traces and traced errors in Resque.'
1211
+ :allowed_from_server => false,
1212
+ :description => deprecated_description(:'instrumentation.memcache', 'If `true`, disables instrumentation for the dalli gem.')
1224
1213
  },
1225
- :'resque.use_ruby_dns' => {
1226
- :default => true,
1227
- :public => false,
1214
+ :disable_dalli_cas_client => {
1215
+ :default => value_of(:disable_memcache_instrumentation),
1216
+ :documentation_default => false,
1217
+ :public => true,
1228
1218
  :type => Boolean,
1219
+ :deprecated => true,
1229
1220
  :allowed_from_server => false,
1230
- :description => 'Replace the libc DNS resolver with the all Ruby resolver Resolv'
1221
+ :description => deprecated_description(:'instrumentation.memcache', "If `true`, disables instrumentation for the dalli gem's additional CAS client support.")
1231
1222
  },
1232
- :capture_memcache_keys => {
1223
+ :disable_delayed_job_sampler => {
1233
1224
  :default => false,
1234
1225
  :public => true,
1235
1226
  :type => Boolean,
1236
- :allowed_from_server => true,
1237
- :description => 'Enable or disable the capture of memcache keys from transaction traces.'
1227
+ :dynamic_name => true,
1228
+ :allowed_from_server => false,
1229
+ :description => 'If `true`, the agent won\'t measure the depth of Delayed Job queues.'
1238
1230
  },
1239
- :'transaction_tracer.enabled' => {
1240
- :default => true,
1231
+ :disable_dj => {
1232
+ :default => false,
1241
1233
  :public => true,
1234
+ :deprecated => true,
1242
1235
  :type => Boolean,
1243
- :allowed_from_server => true,
1244
- :description => 'If `true`, enables collection of [transaction traces](/docs/apm/traces/transaction-traces/transaction-traces).'
1245
- },
1246
- :'transaction_tracer.transaction_threshold' => {
1247
- :default => DefaultSource.transaction_tracer_transaction_threshold,
1248
- :public => true,
1249
- :type => Float,
1250
- :allowed_from_server => true,
1251
- :description => 'Specify a threshold in seconds. Transactions with a duration longer than this threshold are eligible for transaction traces. Specify a float value or the string `apdex_f`.'
1252
- },
1253
- :'transaction_tracer.record_sql' => {
1254
- :default => 'obfuscated',
1255
- :public => true,
1256
- :type => String,
1257
- :allowed_from_server => true,
1258
- :description => 'Obfuscation level for SQL queries reported in transaction trace nodes.
1259
-
1260
- By default, this is set to `obfuscated`, which strips out the numeric and string literals.
1261
-
1262
- - If you do not want the agent to capture query information, set this to `none`.
1263
- - If you want the agent to capture all query information in its original form, set this to `raw`.
1264
- - When you enable [high security mode](/docs/agents/manage-apm-agents/configuration/high-security-mode), this is automatically set to `obfuscated`.
1265
- '
1236
+ :allowed_from_server => false,
1237
+ :description => deprecated_description(:'instrumentation.delayed_job', 'If `true`, disables [Delayed::Job instrumentation](/docs/agents/ruby-agent/background-jobs/delayedjob).')
1266
1238
  },
1267
- :'transaction_tracer.record_redis_arguments' => {
1239
+ :disable_excon => {
1268
1240
  :default => false,
1269
1241
  :public => true,
1270
1242
  :type => Boolean,
1243
+ :dynamic_name => true,
1244
+ :deprecated => true,
1271
1245
  :allowed_from_server => false,
1272
- :description => 'If `true`, the agent records Redis command arguments in transaction traces.'
1246
+ :description => deprecated_description(:'instrumentation.excon', 'If `true`, disables instrumentation for the excon gem.')
1273
1247
  },
1274
- :'transaction_tracer.capture_attributes' => {
1275
- :default => true,
1248
+ :disable_memcached => {
1249
+ :default => value_of(:disable_memcache_instrumentation),
1250
+ :documentation_default => false,
1276
1251
  :public => true,
1277
1252
  :type => Boolean,
1278
1253
  :deprecated => true,
1279
1254
  :allowed_from_server => false,
1280
- :description => 'Use [`transaction_tracer.attributes.enabled`](#transaction_tracer-attributes-enabled) instead.'
1255
+ :description => deprecated_description(:'instrumentation.memcached', 'If `true`, disables instrumentation for the memcached gem.')
1281
1256
  },
1282
- :'transaction_tracer.explain_threshold' => {
1283
- :default => 0.5,
1257
+ :disable_memcache_client => {
1258
+ :default => value_of(:disable_memcache_instrumentation),
1259
+ :documentation_default => false,
1284
1260
  :public => true,
1285
- :type => Float,
1286
- :allowed_from_server => true,
1287
- :description => 'Threshold (in seconds) above which the agent will collect explain plans. Relevant only when [`explain_enabled`](#transaction_tracer.explain_enabled) is true.'
1261
+ :type => Boolean,
1262
+ :deprecated => true,
1263
+ :allowed_from_server => false,
1264
+ :description => deprecated_description(:'instrumentation.memcache-client', 'If `true`, disables instrumentation for the memcache-client gem.')
1288
1265
  },
1289
- :'transaction_tracer.explain_enabled' => {
1290
- :default => true,
1266
+ :disable_memcache_instrumentation => {
1267
+ :default => false,
1291
1268
  :public => true,
1292
1269
  :type => Boolean,
1293
- :allowed_from_server => true,
1294
- :description => 'If `true`, enables the collection of explain plans in transaction traces. This setting will also apply to explain plans in slow SQL traces if [`slow_sql.explain_enabled`](#slow_sql-explain_enabled) is not set separately.'
1270
+ :deprecated => true,
1271
+ :allowed_from_server => false,
1272
+ :description => deprecated_description(:'instrumentation.memcache', 'If `true`, disables memcache instrumentation.')
1295
1273
  },
1296
- :'transaction_tracer.stack_trace_threshold' => {
1297
- :default => 0.5,
1274
+ :disable_gc_profiler => {
1275
+ :default => false,
1298
1276
  :public => true,
1299
- :type => Float,
1300
- :allowed_from_server => true,
1301
- :description => 'Specify a threshold in seconds. The agent includes stack traces in transaction trace nodes when the stack trace duration exceeds this threshold.'
1277
+ :type => Boolean,
1278
+ :allowed_from_server => false,
1279
+ :description => 'If `true`, disables the use of GC::Profiler to measure time spent in garbage collection'
1302
1280
  },
1303
- :'transaction_tracer.limit_segments' => {
1304
- :default => 4000,
1281
+ :disable_grape => {
1282
+ :default => false,
1305
1283
  :public => true,
1306
- :type => Integer,
1307
- :allowed_from_server => true,
1308
- :description => 'Maximum number of transaction trace nodes to record in a single transaction trace.'
1284
+ :type => Boolean,
1285
+ :allowed_from_server => false,
1286
+ :deprecated => true,
1287
+ :description => deprecated_description(:'instrumentation.grape',
1288
+ 'If `true`, the agent won\'t install Grape instrumentation.')
1309
1289
  },
1310
- :disable_sequel_instrumentation => {
1290
+ :disable_httpclient => {
1311
1291
  :default => false,
1312
1292
  :public => true,
1313
1293
  :type => Boolean,
1294
+ :dynamic_name => true,
1295
+ :deprecated => true,
1314
1296
  :allowed_from_server => false,
1315
- :description => 'If `true`, disables [Sequel instrumentation](/docs/agents/ruby-agent/frameworks/sequel-instrumentation).'
1297
+ :description => deprecated_description(:'instrumentation.httpclient', 'If `true`, disables instrumentation for the httpclient gem.')
1316
1298
  },
1317
- :disable_database_instrumentation => {
1299
+ :disable_httprb => {
1318
1300
  :default => false,
1319
1301
  :public => true,
1320
1302
  :type => Boolean,
1321
- :allowed_from_server => false,
1303
+ :dynamic_name => true,
1322
1304
  :deprecated => true,
1323
- :description => 'Use [`disable_sequel_instrumentation`](#disable_sequel_instrumentation) instead.'
1305
+ :allowed_from_server => false,
1306
+ :description => deprecated_description(:'instrumentation.httprb', 'If `true`, the agent won\'t install instrumentation for the http.rb gem.')
1324
1307
  },
1325
1308
  :disable_mongo => {
1326
1309
  :default => false,
@@ -1331,613 +1314,522 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
1331
1314
  :deprecated => true,
1332
1315
  :description => deprecated_description(:'instrumentation.mongo', 'If `true`, the agent won\'t install [instrumentation for the Mongo gem](/docs/agents/ruby-agent/frameworks/mongo-instrumentation).')
1333
1316
  },
1334
- :disable_redis => {
1317
+ :disable_memory_sampler => {
1335
1318
  :default => false,
1336
1319
  :public => true,
1337
1320
  :type => Boolean,
1338
- :deprecated => true,
1321
+ :dynamic_name => true,
1339
1322
  :allowed_from_server => false,
1340
- :description => deprecated_description(:'instrumentation.redis', 'If `true`, the agent won\'t install [instrumentation for Redis](/docs/agents/ruby-agent/frameworks/redis-instrumentation).')
1323
+ :description => 'If `true`, the agent won\'t sample the memory usage of the host process.'
1341
1324
  },
1342
- :disable_redis_instrumentation => {
1325
+ :disable_middleware_instrumentation => {
1343
1326
  :default => false,
1344
- :public => false,
1327
+ :public => true,
1345
1328
  :type => Boolean,
1346
- :deprecated => true,
1347
1329
  :allowed_from_server => false,
1348
- :description => deprecated_description(:'instrumentation.redis', 'Disables installation of Redis instrumentation. Standard key to use is disable_redis.')
1330
+ :description => 'If `true`, the agent won\'t wrap third-party middlewares in instrumentation (regardless of whether they are installed via Rack::Builder or Rails).'
1349
1331
  },
1350
- :'message_tracer.segment_parameters.enabled' => {
1351
- :default => true,
1332
+ :disable_net_http => {
1333
+ :default => false,
1352
1334
  :public => true,
1353
1335
  :type => Boolean,
1354
- :allowed_from_server => true,
1355
- :description => 'If `true`, the agent will collect metadata about messages and attach them as segment parameters.'
1336
+ :dynamic_name => true,
1337
+ :allowed_from_server => false,
1338
+ :deprecated => true,
1339
+ :description => deprecated_description(:'instrumentation.net_http',
1340
+ 'If `true`, disables instrumentation for Net::HTTP.')
1356
1341
  },
1357
- :'slow_sql.enabled' => {
1358
- :default => value_of(:'transaction_tracer.enabled'),
1359
- :documentation_default => true,
1342
+ :disable_puma_rack => {
1343
+ :default => value_of(:disable_rack),
1344
+ :documentation_default => false,
1360
1345
  :public => true,
1361
1346
  :type => Boolean,
1362
- :allowed_from_server => true,
1363
- :description => 'If `true`, the agent collects [slow SQL queries](/docs/apm/applications-menu/monitoring/viewing-slow-query-details).'
1347
+ :dynamic_name => true,
1348
+ :allowed_from_server => false,
1349
+ :deprecated => true,
1350
+ :description => deprecated_description(:'instrumentation.puma_rack', 'If `true`, prevents the agent from hooking into the `to_app` method in Puma::Rack::Builder to find gems to instrument during application startup.')
1364
1351
  },
1365
- :'slow_sql.explain_threshold' => {
1366
- :default => value_of(:'transaction_tracer.explain_threshold'),
1367
- :documentation_default => 0.5,
1352
+ :disable_puma_rack_urlmap => {
1353
+ :default => value_of(:disable_rack_urlmap),
1354
+ :documentation_default => false,
1368
1355
  :public => true,
1369
- :type => Float,
1370
- :allowed_from_server => true,
1371
- :description => 'Specify a threshold in seconds. The agent collects [slow SQL queries](/docs/apm/applications-menu/monitoring/viewing-slow-query-details) and explain plans that exceed this threshold.'
1356
+ :type => Boolean,
1357
+ :dynamic_name => true,
1358
+ :allowed_from_server => false,
1359
+ :deprecated => true,
1360
+ :description => deprecated_description(:'instrumentation.puma_rack_urlmap', 'If `true`, prevents the agent from hooking into Puma::Rack::URLMap to install middleware tracing.')
1372
1361
  },
1373
- :'slow_sql.explain_enabled' => {
1374
- :default => value_of(:'transaction_tracer.explain_enabled'),
1375
- :documentation_default => true,
1362
+ :disable_rack => {
1363
+ :default => false,
1376
1364
  :public => true,
1377
1365
  :type => Boolean,
1378
- :allowed_from_server => true,
1379
- :description => 'If `true`, the agent collects explain plans in slow SQL queries. If this setting is omitted, the [`transaction_tracer.explain_enabled`](#transaction_tracer-explain_enabled) setting will be applied as the default setting for explain plans in slow SQL as well.'
1366
+ :dynamic_name => true,
1367
+ :allowed_from_server => false,
1368
+ :deprecated => true,
1369
+ :description => deprecated_description(:'instrumentation.rack', 'If `true`, prevents the agent from hooking into the `to_app` method in Rack::Builder to find gems to instrument during application startup.')
1380
1370
  },
1381
- :'slow_sql.record_sql' => {
1382
- :default => value_of(:'transaction_tracer.record_sql'),
1383
- :documentation_default => 'obfuscated',
1371
+ :disable_rack_urlmap => {
1372
+ :default => false,
1384
1373
  :public => true,
1385
- :type => String,
1386
- :allowed_from_server => true,
1387
- :description => 'Defines an obfuscation level for slow SQL queries. Valid options are `obfuscated`, `raw`, or `none`).'
1374
+ :type => Boolean,
1375
+ :dynamic_name => true,
1376
+ :allowed_from_server => false,
1377
+ :deprecated => true,
1378
+ :description => deprecated_description(:'instrumentation.rack_urlmap', 'If `true`, prevents the agent from hooking into Rack::URLMap to install middleware tracing.')
1388
1379
  },
1389
- :'slow_sql.use_longer_sql_id' => {
1380
+ :disable_rake => {
1390
1381
  :default => false,
1391
1382
  :public => true,
1392
1383
  :type => Boolean,
1393
- :allowed_from_server => true,
1394
- :description => 'Generate a longer sql_id for slow SQL traces. sql_id is used for aggregation of similar queries.'
1384
+ :allowed_from_server => false,
1385
+ :deprecated => true,
1386
+ :description => deprecated_description(:'instrumentation.rake', 'If `true`, disables Rake instrumentation.')
1395
1387
  },
1396
- :'mongo.capture_queries' => {
1397
- :default => true,
1388
+ :disable_redis => {
1389
+ :default => false,
1398
1390
  :public => true,
1399
1391
  :type => Boolean,
1400
- :allowed_from_server => true,
1401
- :description => 'If `true`, the agent captures Mongo queries in transaction traces.'
1392
+ :deprecated => true,
1393
+ :allowed_from_server => false,
1394
+ :description => deprecated_description(:'instrumentation.redis', 'If `true`, the agent won\'t install [instrumentation for Redis](/docs/agents/ruby-agent/frameworks/redis-instrumentation).')
1402
1395
  },
1403
- :'mongo.obfuscate_queries' => {
1404
- :default => true,
1396
+ :disable_resque => {
1397
+ :default => false,
1405
1398
  :public => true,
1406
1399
  :type => Boolean,
1407
- :allowed_from_server => true,
1408
- :description => 'If `true`, the agent obfuscates Mongo queries in transaction traces.'
1400
+ :deprecated => true,
1401
+ :allowed_from_server => false,
1402
+ :description => deprecated_description(:'instrumentation.resque', 'If `true`, disables [Resque instrumentation](/docs/agents/ruby-agent/background-jobs/resque-instrumentation).')
1409
1403
  },
1410
- :'error_collector.enabled' => {
1411
- :default => true,
1404
+ :disable_samplers => {
1405
+ :default => false,
1412
1406
  :public => true,
1413
1407
  :type => Boolean,
1414
- :allowed_from_server => true,
1415
- :description => 'If `true`, the agent captures traced errors and error count metrics.'
1408
+ :allowed_from_server => false,
1409
+ :description => 'If `true`, disables the collection of sampler metrics. Sampler metrics are metrics that are not event-based (such as CPU time or memory usage).'
1416
1410
  },
1417
- :'error_collector.capture_attributes' => {
1418
- :default => true,
1411
+ :disable_sequel_instrumentation => {
1412
+ :default => false,
1419
1413
  :public => true,
1420
1414
  :type => Boolean,
1421
- :deprecated => true,
1422
1415
  :allowed_from_server => false,
1423
- :description => 'Use [`error_collector.attributes.enabled`](#error_collector-attributes-enabled) instead.'
1416
+ :description => 'If `true`, disables [Sequel instrumentation](/docs/agents/ruby-agent/frameworks/sequel-instrumentation).'
1424
1417
  },
1425
- :'error_collector.ignore_errors' => {
1426
- :default => 'ActionController::RoutingError,Sinatra::NotFound',
1418
+ :disable_sidekiq => {
1419
+ :default => false,
1427
1420
  :public => true,
1428
- :type => String,
1429
- :deprecated => true,
1430
- :allowed_from_server => true,
1431
- :dynamic_name => true,
1432
- :description => <<-DESCRIPTION
1433
- Use `error_collector.ignore_classes` instead. Specify a comma-delimited list of error classes that the agent should ignore.
1434
-
1435
- <Callout variant="caution">
1436
- Server side configuration takes precedence for this setting over all environment configurations. This differs from all other configuration settings where environment variable take precedence over server side configuration.
1437
- </Callout>
1438
- DESCRIPTION
1421
+ :type => Boolean,
1422
+ :allowed_from_server => false,
1423
+ :description => 'If `true`, disables [Sidekiq instrumentation](/docs/agents/ruby-agent/background-jobs/sidekiq-instrumentation).'
1439
1424
  },
1440
- :'error_collector.ignore_classes' => {
1441
- :default => [],
1425
+ :disable_sinatra => {
1426
+ :default => false,
1442
1427
  :public => true,
1443
- :type => Array,
1444
- :allowed_from_server => true,
1445
- :dynamic_name => true,
1446
- :description => <<-DESCRIPTION
1447
- A list of error classes that the agent should ignore.
1448
-
1449
- <Callout variant="caution">
1450
- This option can't be set via environment variable.
1451
- </Callout>
1452
- DESCRIPTION
1428
+ :type => Boolean,
1429
+ :deprecated => true,
1430
+ :allowed_from_server => false,
1431
+ :description => deprecated_description(:'instrumentation.sinatra', 'If `true` , disables [Sinatra instrumentation](/docs/agents/ruby-agent/frameworks/sinatra-support).')
1453
1432
  },
1454
- :'error_collector.ignore_messages' => {
1455
- :default => {},
1433
+ :disable_sinatra_auto_middleware => {
1434
+ :default => false,
1456
1435
  :public => true,
1457
- :type => Hash,
1458
- :allowed_from_server => true,
1459
- :dynamic_name => true,
1436
+ :type => Boolean,
1437
+ :allowed_from_server => false,
1460
1438
  :description => <<-DESCRIPTION
1461
- A map of error classes to a list of messages. When an error of one of the classes specified here occurs, if its error message contains one of the strings corresponding to it here, that error will be ignored.
1439
+ If `true`, disables agent middleware for Sinatra. This middleware is responsible for advanced feature support such as [cross application tracing](/docs/apm/transactions/cross-application-traces/cross-application-tracing), [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).
1462
1440
 
1463
- <Callout variant="caution">
1464
- This option can't be set via environment variable.
1465
- </Callout>
1441
+ <Callout variant="important">
1442
+ Cross application tracing is deprecated in favor of [distributed tracing](https://docs.newrelic.com/docs/apm/distributed-tracing/getting-started/introduction-distributed-tracing). Distributed tracing is on by default for Ruby agent versions 8.0.0 and above. Middlewares are not required to support distributed tracing.
1443
+
1444
+ To continue using cross application tracing, update the following options in your `newrelic.yml` configuration file:
1445
+
1446
+ ```
1447
+ # newrelic.yml
1448
+
1449
+ cross_application_tracer:
1450
+ enabled: true
1451
+ distributed_tracing:
1452
+ enabled: false
1453
+ ```
1454
+ </Callout>
1466
1455
  DESCRIPTION
1467
1456
  },
1468
- :'error_collector.ignore_status_codes' => {
1469
- :default => '',
1457
+ :disable_typhoeus => {
1458
+ :default => false,
1470
1459
  :public => true,
1471
- :type => String,
1472
- :allowed_from_server => true,
1460
+ :type => Boolean,
1473
1461
  :dynamic_name => true,
1474
- :description => 'A comma separated list of status codes, possibly including ranges. Errors associated with these status codes, where applicable, will be ignored.'
1462
+ :deprecated => true,
1463
+ :allowed_from_server => false,
1464
+ :description => deprecated_description(:'instrumentation.typhoeus', 'If `true`, the agent won\'t install instrumentation for the typhoeus gem.')
1475
1465
  },
1476
- :'error_collector.expected_classes' => {
1477
- :default => [],
1466
+ :disable_view_instrumentation => {
1467
+ :default => false,
1478
1468
  :public => true,
1479
- :type => Array,
1480
- :allowed_from_server => true,
1481
- :dynamic_name => true,
1482
- :description => <<-DESCRIPTION
1483
- A list of error classes that the agent should treat as expected.
1484
-
1485
- <Callout variant="caution">
1486
- This option can't be set via environment variable.
1487
- </Callout>
1488
- DESCRIPTION
1469
+ :type => Boolean,
1470
+ :allowed_from_server => false,
1471
+ :description => 'If `true`, disables view instrumentation.'
1489
1472
  },
1490
- :'error_collector.expected_messages' => {
1491
- :default => {},
1473
+ :disable_vm_sampler => {
1474
+ :default => false,
1492
1475
  :public => true,
1493
- :type => Hash,
1494
- :allowed_from_server => true,
1476
+ :type => Boolean,
1495
1477
  :dynamic_name => true,
1496
- :description => <<-DESCRIPTION
1497
- A map of error classes to a list of messages. When an error of one of the classes specified here occurs, if its error message contains one of the strings corresponding to it here, that error will be treated as expected.
1498
-
1499
- <Callout variant="caution">
1500
- This option can't be set via environment variable.
1501
- </Callout>
1502
- DESCRIPTION
1478
+ :allowed_from_server => false,
1479
+ :description => 'If `true`, the agent won\'t [sample performance measurements from the Ruby VM](/docs/agents/ruby-agent/features/ruby-vm-measurements).'
1503
1480
  },
1504
- :'error_collector.expected_status_codes' => {
1505
- :default => '',
1481
+ # Distributed tracing
1482
+ :'distributed_tracing.enabled' => {
1483
+ :default => true,
1506
1484
  :public => true,
1507
- :type => String,
1485
+ :type => Boolean,
1508
1486
  :allowed_from_server => true,
1509
- :dynamic_name => true,
1510
- :description => 'A comma separated list of status codes, possibly including ranges. Errors associated with these status codes, where applicable, will be treated as expected.'
1511
- },
1512
- :'error_collector.max_backtrace_frames' => {
1513
- :default => 50,
1514
- :public => true,
1515
- :type => Integer,
1516
- :allowed_from_server => false,
1517
- :description => 'Defines the maximum number of frames in an error backtrace. Backtraces over this amount are truncated at the beginning and end.'
1487
+ :description => 'Distributed tracing lets you see the path that a request takes through your distributed system. Enabling distributed tracing changes the behavior of some New Relic features, so carefully consult the [transition guide](/docs/transition-guide-distributed-tracing) before you enable this feature.'
1518
1488
  },
1519
- :'error_collector.capture_events' => {
1520
- :default => value_of(:'error_collector.enabled'),
1521
- :documentation_default => true,
1489
+ # Elasticsearch
1490
+ :'elasticsearch.capture_queries' => {
1491
+ :default => true,
1522
1492
  :public => true,
1523
1493
  :type => Boolean,
1524
1494
  :allowed_from_server => true,
1525
- :dynamic_name => true,
1526
- :description => 'If `true`, the agent collects [TransactionError events](/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights).'
1495
+ :description => 'If `true`, the agent captures Elasticsearch queries in transaction traces.'
1527
1496
  },
1528
- :'error_collector.max_event_samples_stored' => {
1529
- :default => 100,
1497
+ :'elasticsearch.obfuscate_queries' => {
1498
+ :default => true,
1530
1499
  :public => true,
1531
- :type => Integer,
1500
+ :type => Boolean,
1532
1501
  :allowed_from_server => true,
1533
- :description => 'Defines the maximum number of [TransactionError events](/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights) reported per harvest cycle.'
1502
+ :description => 'If `true`, the agent obfuscates Elasticsearch queries in transaction traces.'
1534
1503
  },
1535
- :'rum.enabled' => {
1504
+ # Heroku
1505
+ :'heroku.use_dyno_names' => {
1536
1506
  :default => true,
1537
- :public => false,
1507
+ :public => true,
1538
1508
  :type => Boolean,
1539
- :allowed_from_server => true,
1540
- :description => 'Enable or disable page load timing (sometimes referred to as real user monitoring or RUM).'
1509
+ :allowed_from_server => false,
1510
+ :description => 'If `true`, the agent uses Heroku dyno names as the hostname.'
1541
1511
  },
1542
- :browser_key => {
1543
- :default => '',
1544
- :public => false,
1545
- :type => String,
1546
- :allowed_from_server => true,
1547
- :description => 'Real user monitoring license key for the browser timing header.'
1512
+ :'heroku.dyno_name_prefixes_to_shorten' => {
1513
+ :default => %w[scheduler run],
1514
+ :public => true,
1515
+ :type => Array,
1516
+ :allowed_from_server => false,
1517
+ :transform => DefaultSource.method(:convert_to_list),
1518
+ :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>).'
1548
1519
  },
1549
- :beacon => {
1520
+ # Infinite tracing
1521
+ :'infinite_tracing.trace_observer.host' => {
1550
1522
  :default => '',
1551
- :public => false,
1523
+ :public => true,
1552
1524
  :type => String,
1553
- :allowed_from_server => true,
1554
- :description => 'Beacon for real user monitoring.'
1525
+ :allowed_from_server => false,
1526
+ :external => :infinite_tracing,
1527
+ :description => "Configures the hostname for the Trace Observer Host. " \
1528
+ "When configured, enables tail-based sampling by sending all recorded spans " \
1529
+ "to a Trace Observer for further sampling decisions, irrespective of any usual " \
1530
+ "agent sampling decision."
1555
1531
  },
1556
- :error_beacon => {
1557
- :default => '',
1558
- :public => false,
1559
- :type => String,
1560
- :allowed_from_server => true,
1561
- :description => 'Error beacon for real user monitoring.'
1532
+ :'infinite_tracing.trace_observer.port' => {
1533
+ :default => 443,
1534
+ :public => true,
1535
+ :type => Integer,
1536
+ :allowed_from_server => false,
1537
+ :external => :infinite_tracing,
1538
+ :description => "Configures the TCP/IP port for the Trace Observer Host"
1562
1539
  },
1563
- :application_id => {
1564
- :default => '',
1565
- :public => false,
1540
+ # Instrumentation
1541
+ :'instrumentation.active_support_logger' => {
1542
+ :default => instrumentation_value_from_boolean(:'application_logging.enabled'),
1543
+ :documentation_default => 'auto',
1544
+ :dynamic_name => true,
1545
+ :public => true,
1566
1546
  :type => String,
1567
- :allowed_from_server => true,
1568
- :description => 'Application ID for real user monitoring.'
1547
+ :allowed_from_server => false,
1548
+ :description => 'Controls auto-instrumentation of ActiveSupport::Logger at start up. May be one of [auto|prepend|chain|disabled].'
1569
1549
  },
1570
- :js_agent_file => {
1571
- :default => '',
1572
- :public => false,
1550
+ :'instrumentation.bunny' => {
1551
+ :default => instrumentation_value_of(:disable_bunny),
1552
+ :documentation_default => 'auto',
1553
+ :public => true,
1573
1554
  :type => String,
1574
- :allowed_from_server => true,
1575
- :description => 'JavaScript agent file for real user monitoring.'
1555
+ :dynamic_name => true,
1556
+ :allowed_from_server => false,
1557
+ :description => 'Controls auto-instrumentation of bunny at start up. May be one of [auto|prepend|chain|disabled].'
1576
1558
  },
1577
- :'browser_monitoring.auto_instrument' => {
1578
- :default => value_of(:'rum.enabled'),
1579
- :documentation_default => true,
1559
+ :'instrumentation.curb' => {
1560
+ :default => instrumentation_value_of(:disable_curb),
1561
+ :documentation_default => 'auto',
1580
1562
  :public => true,
1581
- :type => Boolean,
1582
- :allowed_from_server => true,
1583
- :description => 'If `true`, enables [auto-injection](/docs/browser/new-relic-browser/installation-configuration/adding-apps-new-relic-browser#select-apm-app) of the JavaScript header for page load timing (sometimes referred to as real user monitoring or RUM).'
1563
+ :type => String,
1564
+ :dynamic_name => true,
1565
+ :allowed_from_server => false,
1566
+ :description => 'Controls auto-instrumentation of Curb at start up. May be one of [auto|prepend|chain|disabled].'
1584
1567
  },
1585
- :'browser_monitoring.capture_attributes' => {
1586
- :default => false,
1568
+ :'instrumentation.delayed_job' => {
1569
+ :default => instrumentation_value_of(:disable_dj),
1570
+ :documentation_default => 'auto',
1587
1571
  :public => true,
1588
- :type => Boolean,
1589
- :deprecated => true,
1572
+ :type => String,
1573
+ :dynamic_name => true,
1590
1574
  :allowed_from_server => false,
1591
- :description => 'Use [`browser_monitoring.attributes.enabled`](#browser_monitoring-attributes-enabled) instead.'
1575
+ :description => 'Controls auto-instrumentation of Delayed Job at start up. May be one of [auto|prepend|chain|disabled].'
1592
1576
  },
1593
- :'browser_monitoring.loader' => {
1594
- :default => DefaultSource.browser_monitoring_loader,
1595
- :public => false,
1577
+ :'instrumentation.elasticsearch' => {
1578
+ :default => 'auto',
1579
+ :public => true,
1596
1580
  :type => String,
1597
- :allowed_from_server => true,
1598
- :description => 'Type of JavaScript agent loader to use for browser monitoring instrumentation.'
1581
+ :dynamic_name => true,
1582
+ :allowed_from_server => false,
1583
+ :description => 'Controls auto-instrumentation of the elasticsearch library at start up. May be one of [auto|prepend|chain|disabled].'
1599
1584
  },
1600
- :'browser_monitoring.loader_version' => {
1601
- :default => '',
1602
- :public => false,
1585
+ :'instrumentation.excon' => {
1586
+ :default => instrumentation_value_of(:disable_excon),
1587
+ :documentation_default => 'enabled',
1588
+ :public => :true,
1603
1589
  :type => String,
1604
- :allowed_from_server => true,
1605
- :description => 'Version of JavaScript agent loader (returned from the New Relic [collector](/docs/apm/new-relic-apm/getting-started/glossary#collector).)'
1590
+ :dynamic_name => true,
1591
+ :allowed_from_server => false,
1592
+ :description => "Controls auto-instrumentation of Excon at start up. May be one of [enabled|disabled]."
1606
1593
  },
1607
- :'browser_monitoring.debug' => {
1608
- :default => false,
1609
- :public => false,
1610
- :type => Boolean,
1611
- :allowed_from_server => true,
1612
- :description => 'Enable or disable debugging version of JavaScript agent loader for browser monitoring instrumentation.'
1613
- },
1614
- :'browser_monitoring.ssl_for_http' => {
1615
- :default => nil,
1616
- :allow_nil => true,
1617
- :public => false,
1618
- :type => Boolean,
1619
- :allowed_from_server => true,
1620
- :description => 'Enable or disable HTTPS instrumentation by JavaScript agent on HTTP pages.'
1621
- },
1622
- :js_agent_loader => {
1623
- :default => '',
1624
- :public => false,
1594
+ :'instrumentation.grape' => {
1595
+ :default => instrumentation_value_of(:disable_grape_instrumentation),
1596
+ :documentation_default => 'auto',
1597
+ :public => :true,
1625
1598
  :type => String,
1626
- :allowed_from_server => true,
1627
- :description => 'JavaScript agent loader content.'
1628
- },
1629
- :js_errors_beta => {
1630
- :default => false,
1631
- :public => false,
1632
- :type => Boolean,
1599
+ :dynamic_name => true,
1633
1600
  :allowed_from_server => false,
1634
- :deprecated => true,
1635
- :description => 'Enable or disable beta JavaScript error reporting.'
1636
- },
1637
- :trusted_account_ids => {
1638
- :default => [],
1639
- :public => false,
1640
- :type => Array,
1641
- :allowed_from_server => true,
1642
- :description => 'List of trusted New Relic account IDs for the purposes of cross-application tracing. Inbound requests from applications including cross-application headers that do not come from an account in this list will be ignored.'
1601
+ :description => "Controls auto-instrumentation of Grape at start up. May be one of [auto|prepend|chain|disabled]."
1643
1602
  },
1644
- :"cross_application_tracer.enabled" => {
1645
- :default => false,
1603
+ :'instrumentation.grpc_client' => {
1604
+ :default => instrumentation_value_of(:disable_grpc_client),
1605
+ :documentation_default => 'auto',
1646
1606
  :public => true,
1647
- :type => Boolean,
1648
- :allowed_from_server => true,
1649
- :deprecated => true,
1650
- :description => deprecated_description(
1651
- :'distributed_tracing-enabled',
1652
- 'If `true`, enables [cross-application tracing](/docs/agents/ruby-agent/features/cross-application-tracing-ruby/) when `distributed_tracing.enabled` is set to `false`.'
1653
- )
1654
- },
1655
- :cross_application_tracing => {
1656
- :default => nil,
1657
- :allow_nil => true,
1658
- :public => false,
1659
- :type => Boolean,
1660
- :allowed_from_server => false,
1661
- :deprecated => true,
1662
- :description => 'Deprecated in favor of distributed_tracing.enabled'
1663
- },
1664
- :encoding_key => {
1665
- :default => '',
1666
- :public => false,
1667
- :type => String,
1668
- :allowed_from_server => true,
1669
- :description => 'Encoding key for cross-application tracing.'
1670
- },
1671
- :cross_process_id => {
1672
- :default => '',
1673
- :public => false,
1674
1607
  :type => String,
1675
- :allowed_from_server => true,
1676
- :description => 'Cross process ID for cross-application tracing.'
1608
+ :dynamic_name => true,
1609
+ :allowed_from_server => false,
1610
+ :description => 'Controls auto-instrumentation of gRPC clients at start up. May be one of [auto|prepend|chain|disabled].'
1677
1611
  },
1678
- :'thread_profiler.enabled' => {
1679
- :default => DefaultSource.thread_profiler_enabled,
1680
- :documentation_default => false,
1612
+ :'instrumentation.grpc.host_denylist' => {
1613
+ :default => [],
1681
1614
  :public => true,
1682
- :type => Boolean,
1683
- :allowed_from_server => true,
1684
- :description => 'If `true`, enables use of the [thread profiler](/docs/apm/applications-menu/events/thread-profiler-tool).'
1685
- },
1686
- :'thread_profiler.max_profile_overhead' => {
1687
- :default => 0.05,
1688
- :public => false,
1689
- :type => Float,
1690
- :allowed_from_server => true,
1691
- :description => 'Maximum overhead percentage for thread profiling before agent reduces polling frequency'
1615
+ :type => Array,
1616
+ :allowed_from_server => false,
1617
+ :transform => DefaultSource.method(:convert_to_regexp_list),
1618
+ :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.*")
1692
1619
  },
1693
- :marshaller => {
1694
- :default => 'json',
1620
+ :'instrumentation.grpc_server' => {
1621
+ :default => instrumentation_value_of(:disable_grpc_server),
1622
+ :documentation_default => 'auto',
1695
1623
  :public => true,
1696
1624
  :type => String,
1625
+ :dynamic_name => true,
1697
1626
  :allowed_from_server => false,
1698
- :description => 'Specifies a marshaller for transmitting data to the New Relic [collector](/docs/apm/new-relic-apm/getting-started/glossary#collector). Currently `json` is the only valid value for this setting.'
1699
- },
1700
- :'analytics_events.enabled' => {
1701
- :default => true,
1702
- :public => true,
1703
- :type => Boolean,
1704
- :deprecated => true,
1705
- :allowed_from_server => true,
1706
- :description => deprecated_description(:'transaction_events.enabled', 'If `true`, enables analytics event sampling.')
1707
- },
1708
- :'analytics_events.max_samples_stored' => {
1709
- :default => 1200,
1710
- :public => true,
1711
- :type => Integer,
1712
- :deprecated => true,
1713
- :allowed_from_server => true,
1714
- :description => deprecated_description(:'transaction_events.max_samples_stored', 'Defines the maximum number of request events reported from a single harvest.')
1715
- },
1716
- :'transaction_events.enabled' => {
1717
- :default => value_of(:'analytics_events.enabled'),
1718
- :documentation_default => true,
1719
- :public => true,
1720
- :type => Boolean,
1721
- :allowed_from_server => true,
1722
- :description => 'If `true`, enables transaction event sampling.'
1723
- },
1724
- :'transaction_events.max_samples_stored' => {
1725
- :default => value_of(:'analytics_events.max_samples_stored'),
1726
- :documentation_default => 1200,
1727
- :public => true,
1728
- :type => Integer,
1729
- :allowed_from_server => true,
1730
- :description => 'Defines the maximum number of transaction events reported from a single harvest.'
1627
+ :description => 'Controls auto-instrumentation of gRPC servers at start up. May be one of [auto|prepend|chain|disabled].'
1731
1628
  },
1732
- :'analytics_events.capture_attributes' => {
1733
- :default => true,
1629
+ :'instrumentation.httpclient' => {
1630
+ :default => instrumentation_value_of(:disable_httpclient),
1631
+ :documentation_default => 'auto',
1734
1632
  :public => true,
1735
- :type => Boolean,
1736
- :deprecated => true,
1737
- :allowed_from_server => false,
1738
- :description => 'Use [`transaction_events.attributes.enabled`](#transaction_events-attributes-enabled) instead.'
1739
- },
1740
- :restart_thread_in_children => {
1741
- :default => true,
1742
- :public => false,
1743
- :type => Boolean,
1744
- :allowed_from_server => false,
1745
- :description => 'Controls whether to check on running a transaction whether to respawn the harvest thread.'
1746
- },
1747
- :normalize_json_string_encodings => {
1748
- :default => true,
1749
- :public => false,
1750
- :type => Boolean,
1633
+ :type => String,
1634
+ :dynamic_name => true,
1751
1635
  :allowed_from_server => false,
1752
- :description => 'Controls whether to normalize string encodings prior to serializing data for the collector to JSON.'
1636
+ :description => "Controls auto-instrumentation of HTTPClient at start up. May be one of [auto|prepend|chain|disabled]."
1753
1637
  },
1754
- :backport_fast_active_record_connection_lookup => {
1755
- :default => false,
1638
+ :'instrumentation.httprb' => {
1639
+ :default => instrumentation_value_of(:disable_httprb),
1640
+ :documentation_default => 'auto',
1756
1641
  :public => true,
1757
- :type => Boolean,
1642
+ :type => String,
1643
+ :dynamic_name => true,
1758
1644
  :allowed_from_server => false,
1759
- :description => 'Backports the faster ActiveRecord connection lookup introduced in Rails 6, which improves agent performance when instrumenting ActiveRecord. Note that this setting may not be compatible with other gems that patch ActiveRecord.'
1645
+ :description => 'Controls auto-instrumentation of http.rb gem at start up. May be one of [auto|prepend|chain|disabled].'
1760
1646
  },
1761
- :disable_vm_sampler => {
1762
- :default => false,
1647
+ :'instrumentation.logger' => {
1648
+ :default => instrumentation_value_from_boolean(:'application_logging.enabled'),
1649
+ :documentation_default => 'auto',
1763
1650
  :public => true,
1764
- :type => Boolean,
1651
+ :type => String,
1765
1652
  :dynamic_name => true,
1766
1653
  :allowed_from_server => false,
1767
- :description => 'If `true`, the agent won\'t [sample performance measurements from the Ruby VM](/docs/agents/ruby-agent/features/ruby-vm-measurements).'
1654
+ :description => 'Controls auto-instrumentation of Ruby standard library Logger at start up. May be one of [auto|prepend|chain|disabled].'
1768
1655
  },
1769
- :disable_memory_sampler => {
1770
- :default => false,
1656
+ :'instrumentation.memcache' => {
1657
+ :default => instrumentation_value_of(:disable_dalli),
1658
+ :documentation_default => 'auto',
1771
1659
  :public => true,
1772
- :type => Boolean,
1660
+ :type => String,
1773
1661
  :dynamic_name => true,
1774
1662
  :allowed_from_server => false,
1775
- :description => 'If `true`, the agent won\'t sample the memory usage of the host process.'
1663
+ :description => 'Controls auto-instrumentation of dalli gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
1776
1664
  },
1777
- :disable_cpu_sampler => {
1778
- :default => false,
1665
+ :'instrumentation.memcached' => {
1666
+ :default => instrumentation_value_of(:disable_memcached),
1667
+ :documentation_default => 'auto',
1779
1668
  :public => true,
1780
- :type => Boolean,
1669
+ :type => String,
1781
1670
  :dynamic_name => true,
1782
1671
  :allowed_from_server => false,
1783
- :description => 'If `true`, the agent won\'t sample the CPU usage of the host process.'
1672
+ :description => 'Controls auto-instrumentation of memcached gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
1784
1673
  },
1785
- :disable_delayed_job_sampler => {
1786
- :default => false,
1674
+ :'instrumentation.memcache_client' => {
1675
+ :default => instrumentation_value_of(:disable_memcache_client),
1676
+ :documentation_default => 'auto',
1787
1677
  :public => true,
1788
- :type => Boolean,
1678
+ :type => String,
1789
1679
  :dynamic_name => true,
1790
1680
  :allowed_from_server => false,
1791
- :description => 'If `true`, the agent won\'t measure the depth of Delayed Job queues.'
1681
+ :description => 'Controls auto-instrumentation of memcache-client gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
1792
1682
  },
1793
- :disable_active_record_notifications => {
1794
- :default => false,
1795
- :public => true,
1796
- :type => Boolean,
1683
+ :'instrumentation.mongo' => {
1684
+ :default => instrumentation_value_of(:disable_mongo),
1685
+ :documentation_default => 'enabled',
1686
+ :public => :true,
1687
+ :type => String,
1797
1688
  :dynamic_name => true,
1798
1689
  :allowed_from_server => false,
1799
- :description => 'If `true`, disables instrumentation for ActiveRecord 4, 5, and 6.'
1690
+ :description => "Controls auto-instrumentation of Mongo at start up. May be one of [enabled|disabled]."
1800
1691
  },
1801
- :disable_bunny => {
1802
- :default => false,
1692
+ :'instrumentation.net_http' => {
1693
+ :default => instrumentation_value_of(:disable_net_http, :prepend_net_instrumentation),
1694
+ :documentation_default => 'auto',
1803
1695
  :public => true,
1804
- :type => Boolean,
1805
- :deprecated => true,
1696
+ :type => String,
1806
1697
  :dynamic_name => true,
1807
1698
  :allowed_from_server => false,
1808
- :description => deprecated_description(:'instrumentation.bunny', 'If `true`, disables instrumentation for the bunny gem.')
1699
+ :description => "Controls auto-instrumentation of Net::HTTP at start up. May be one of [auto|prepend|chain|disabled]."
1809
1700
  },
1810
- :disable_curb => {
1811
- :default => false,
1701
+ :'instrumentation.puma_rack' => {
1702
+ :default => instrumentation_value_of(:disable_puma_rack), # TODO: MAJOR VERSION - change to value_of(:'instrumentation.rack') when we remove :disable_puma_rack in 8.0)
1703
+ :documentation_default => 'auto',
1812
1704
  :public => true,
1813
- :type => Boolean,
1814
- :deprecated => true,
1705
+ :type => String,
1815
1706
  :dynamic_name => true,
1816
1707
  :allowed_from_server => false,
1817
- :description => deprecated_description(:'instrumentation.curb', 'If `true`, disables instrumentation for the curb gem.')
1708
+ :description => "Controls auto-instrumentation of Puma::Rack. When enabled, the agent hooks into the " \
1709
+ "`to_app` method in Puma::Rack::Builder to find gems to instrument during " \
1710
+ "application startup. May be one of [auto|prepend|chain|disabled]."
1818
1711
  },
1819
- :disable_excon => {
1820
- :default => false,
1712
+ :'instrumentation.puma_rack_urlmap' => {
1713
+ :default => instrumentation_value_of(:disable_puma_rack_urlmap), # TODO: MAJOR VERSION - change to value_of(:'instrumentation.rack_urlmap') when we remove :disable_puma_rack_urlmap in 8.0)
1714
+ :documentation_default => 'auto',
1821
1715
  :public => true,
1822
- :type => Boolean,
1716
+ :type => String,
1823
1717
  :dynamic_name => true,
1824
- :deprecated => true,
1825
1718
  :allowed_from_server => false,
1826
- :description => deprecated_description(:'instrumentation.excon', 'If `true`, disables instrumentation for the excon gem.')
1719
+ :description => 'Controls auto-instrumentation of Puma::Rack::URLMap at start up. May be one of [auto|prepend|chain|disabled].'
1827
1720
  },
1828
- :'instrumentation.excon' => {
1829
- :default => instrumentation_value_of(:disable_excon),
1830
- :documentation_default => 'enabled',
1831
- :public => :true,
1721
+ :'instrumentation.rack' => {
1722
+ :default => instrumentation_value_of(:disable_rack),
1723
+ :documentation_default => 'auto',
1724
+ :public => true,
1832
1725
  :type => String,
1833
1726
  :dynamic_name => true,
1834
1727
  :allowed_from_server => false,
1835
- :description => "Controls auto-instrumentation of Excon at start up. May be one of [enabled|disabled]."
1728
+ :description => "Controls auto-instrumentation of Rack. When enabled, the agent hooks into the " \
1729
+ "`to_app` method in Rack::Builder to find gems to instrument during " \
1730
+ "application startup. May be one of [auto|prepend|chain|disabled]."
1836
1731
  },
1837
- :disable_httpclient => {
1838
- :default => false,
1732
+ :'instrumentation.rack_urlmap' => {
1733
+ :default => instrumentation_value_of(:disable_rack_urlmap),
1734
+ :documentation_default => 'auto',
1839
1735
  :public => true,
1840
- :type => Boolean,
1736
+ :type => String,
1841
1737
  :dynamic_name => true,
1842
- :deprecated => true,
1843
1738
  :allowed_from_server => false,
1844
- :description => deprecated_description(:'instrumentation.httpclient', 'If `true`, disables instrumentation for the httpclient gem.')
1739
+ :description => 'Controls auto-instrumentation of Rack::URLMap at start up. May be one of [auto|prepend|chain|disabled].'
1845
1740
  },
1846
- :disable_net_http => {
1847
- :default => false,
1848
- :public => true,
1849
- :type => Boolean,
1741
+ :'instrumentation.rake' => {
1742
+ :default => instrumentation_value_of(:disable_rake),
1743
+ :documentation_default => 'auto',
1744
+ :public => :true,
1745
+ :type => String,
1850
1746
  :dynamic_name => true,
1851
1747
  :allowed_from_server => false,
1852
- :deprecated => true,
1853
- :description => deprecated_description(:'instrumentation.net_http',
1854
- 'If `true`, disables instrumentation for Net::HTTP.')
1748
+ :description => "Controls auto-instrumentation of rake at start up. May be one of [auto|prepend|chain|disabled]."
1855
1749
  },
1856
- :disable_rack => {
1857
- :default => false,
1750
+ :'instrumentation.redis' => {
1751
+ :default => instrumentation_value_of(:disable_redis),
1752
+ :documentation_default => 'auto',
1858
1753
  :public => true,
1859
- :type => Boolean,
1754
+ :type => String,
1860
1755
  :dynamic_name => true,
1861
1756
  :allowed_from_server => false,
1862
- :deprecated => true,
1863
- :description => deprecated_description(:'instrumentation.rack', 'If `true`, prevents the agent from hooking into the `to_app` method in Rack::Builder to find gems to instrument during application startup.')
1757
+ :description => "Controls auto-instrumentation of Redis at start up. May be one of [auto|prepend|chain|disabled]."
1864
1758
  },
1865
- :disable_rack_urlmap => {
1866
- :default => false,
1759
+ :'instrumentation.resque' => {
1760
+ :default => instrumentation_value_of(:disable_resque),
1761
+ :documentation_default => 'auto',
1867
1762
  :public => true,
1868
- :type => Boolean,
1763
+ :type => String,
1869
1764
  :dynamic_name => true,
1870
1765
  :allowed_from_server => false,
1871
- :deprecated => true,
1872
- :description => deprecated_description(:'instrumentation.rack_urlmap', 'If `true`, prevents the agent from hooking into Rack::URLMap to install middleware tracing.')
1766
+ :description => "Controls auto-instrumentation of resque at start up. May be one of [auto|prepend|chain|disabled]."
1873
1767
  },
1874
- :disable_puma_rack => {
1875
- :default => value_of(:disable_rack),
1876
- :documentation_default => false,
1877
- :public => true,
1878
- :type => Boolean,
1768
+ :'instrumentation.sinatra' => {
1769
+ :default => instrumentation_value_of(:disable_sinatra),
1770
+ :documentation_default => 'auto',
1771
+ :public => :true,
1772
+ :type => String,
1879
1773
  :dynamic_name => true,
1880
1774
  :allowed_from_server => false,
1881
- :deprecated => true,
1882
- :description => deprecated_description(:'instrumentation.puma_rack', 'If `true`, prevents the agent from hooking into the `to_app` method in Puma::Rack::Builder to find gems to instrument during application startup.')
1775
+ :description => "Controls auto-instrumentation of Sinatra at start up. May be one of [auto|prepend|chain|disabled]."
1883
1776
  },
1884
- :disable_puma_rack_urlmap => {
1885
- :default => value_of(:disable_rack_urlmap),
1886
- :documentation_default => false,
1777
+ :'instrumentation.thread' => {
1778
+ :default => 'auto',
1887
1779
  :public => true,
1888
- :type => Boolean,
1780
+ :type => String,
1889
1781
  :dynamic_name => true,
1890
1782
  :allowed_from_server => false,
1891
- :deprecated => true,
1892
- :description => deprecated_description(:'instrumentation.puma_rack_urlmap', 'If `true`, prevents the agent from hooking into Puma::Rack::URLMap to install middleware tracing.')
1783
+ :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]."
1893
1784
  },
1894
- :disable_typhoeus => {
1785
+ :'instrumentation.thread.tracing' => {
1895
1786
  :default => false,
1896
1787
  :public => true,
1897
1788
  :type => Boolean,
1898
- :dynamic_name => true,
1899
- :deprecated => true,
1900
1789
  :allowed_from_server => false,
1901
- :description => deprecated_description(:'instrumentation.typhoeus', 'If `true`, the agent won\'t install instrumentation for the typhoeus gem.')
1790
+ :description => "Controls auto-instrumentation of the Thread class at start up to automatically add tracing to all Threads created in the application."
1902
1791
  },
1903
- :disable_httprb => {
1904
- :default => false,
1792
+ :'instrumentation.tilt' => {
1793
+ :default => "auto",
1905
1794
  :public => true,
1906
- :type => Boolean,
1795
+ :type => String,
1907
1796
  :dynamic_name => true,
1908
- :deprecated => true,
1909
1797
  :allowed_from_server => false,
1910
- :description => deprecated_description(:'instrumentation.httprb', 'If `true`, the agent won\'t install instrumentation for the http.rb gem.')
1798
+ :description => 'Controls auto-instrumentation of the Tilt template rendering library at start up. May be one of [auto|prepend|chain|disabled].'
1911
1799
  },
1912
- :disable_middleware_instrumentation => {
1913
- :default => false,
1800
+ :'instrumentation.typhoeus' => {
1801
+ :default => instrumentation_value_of(:disable_typhoeus),
1802
+ :documentation_default => 'auto',
1914
1803
  :public => true,
1915
- :type => Boolean,
1804
+ :type => String,
1805
+ :dynamic_name => true,
1916
1806
  :allowed_from_server => false,
1917
- :description => 'If `true`, the agent won\'t wrap third-party middlewares in instrumentation (regardless of whether they are installed via Rack::Builder or Rails).'
1807
+ :description => "Controls auto-instrumentation of Typhoeus at start up. May be one of [auto|prepend|chain|disabled]."
1918
1808
  },
1919
- :disable_rails_middleware => {
1920
- :default => false,
1921
- :public => false,
1809
+ # Message tracer
1810
+ :'message_tracer.segment_parameters.enabled' => {
1811
+ :default => true,
1812
+ :public => true,
1922
1813
  :type => Boolean,
1923
- :allowed_from_server => false,
1924
- :description => 'Internal name for controlling Rails 3+ middleware instrumentation'
1814
+ :allowed_from_server => true,
1815
+ :description => 'If `true`, the agent will collect metadata about messages and attach them as segment parameters.'
1925
1816
  },
1926
- :'heroku.use_dyno_names' => {
1817
+ # Mongo
1818
+ :'mongo.capture_queries' => {
1927
1819
  :default => true,
1928
1820
  :public => true,
1929
1821
  :type => Boolean,
1930
- :allowed_from_server => false,
1931
- :description => 'If `true`, the agent uses Heroku dyno names as the hostname.'
1822
+ :allowed_from_server => true,
1823
+ :description => 'If `true`, the agent captures Mongo queries in transaction traces.'
1932
1824
  },
1933
- :'heroku.dyno_name_prefixes_to_shorten' => {
1934
- :default => %w[scheduler run],
1825
+ :'mongo.obfuscate_queries' => {
1826
+ :default => true,
1935
1827
  :public => true,
1936
- :type => Array,
1937
- :allowed_from_server => false,
1938
- :transform => DefaultSource.method(:convert_to_list),
1939
- :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>).'
1828
+ :type => Boolean,
1829
+ :allowed_from_server => true,
1830
+ :description => 'If `true`, the agent obfuscates Mongo queries in transaction traces.'
1940
1831
  },
1832
+ # Process host
1941
1833
  :'process_host.display_name' => {
1942
1834
  :default => proc { NewRelic::Agent::Hostname.get },
1943
1835
  :public => true,
@@ -1945,35 +1837,37 @@ A map of error classes to a list of messages. When an error of one of the classe
1945
1837
  :allowed_from_server => false,
1946
1838
  :description => 'Specify a custom host name for [display in the New Relic UI](/docs/apm/new-relic-apm/maintenance/add-rename-remove-hosts#display_name).'
1947
1839
  },
1948
- :labels => {
1949
- :default => '',
1840
+ # Rake
1841
+ :'rake.tasks' => {
1842
+ :default => [],
1950
1843
  :public => true,
1951
- :type => String,
1844
+ :type => Array,
1952
1845
  :allowed_from_server => false,
1953
- :description => 'A dictionary of [label names](/docs/data-analysis/user-interface-functions/labels-categories-organize-your-apps-servers) and values that will be applied to the data sent from this agent. May also be expressed as a semicolon-delimited `;` string of colon-separated `:` pairs. For example, `<var>Server</var>:<var>One</var>;<var>Data Center</var>:<var>Primary</var>`.'
1954
- },
1955
- :aggressive_keepalive => {
1956
- :default => true,
1957
- :public => false,
1958
- :type => Boolean,
1959
- :allowed_from_server => true,
1960
- :description => 'If true, attempt to keep the TCP connection to the collector alive between harvests.'
1846
+ :transform => DefaultSource.method(:convert_to_regexp_list),
1847
+ :description => 'Specify an Array of Rake tasks to automatically instrument. ' \
1848
+ 'This configuration option converts the Array to a RegEx list. If you\'d like ' \
1849
+ 'to allow all tasks by default, use `rake.tasks: [.+]`. No rake tasks will be ' \
1850
+ 'instrumented unless they\'re added to this list. For more information, ' \
1851
+ 'visit the (New Relic Rake Instrumentation docs)[/docs/apm/agents/ruby-agent/background-jobs/rake-instrumentation].'
1961
1852
  },
1962
- :keep_alive_timeout => {
1963
- :default => 60,
1964
- :public => false,
1853
+ :'rake.connect_timeout' => {
1854
+ :default => 10,
1855
+ :public => true,
1965
1856
  :type => Integer,
1966
- :allowed_from_server => true,
1967
- :description => 'Timeout for keep alive on TCP connection to collector if supported by Ruby version. Only used in conjunction when aggressive_keepalive is enabled.'
1857
+ :allowed_from_server => false,
1858
+ :description => 'Timeout for waiting on connect to complete before a rake task'
1968
1859
  },
1969
- :ca_bundle_path => {
1970
- :default => nil,
1971
- :allow_nil => true,
1860
+ # Resque
1861
+ :'resque.capture_params' => {
1862
+ :default => false,
1972
1863
  :public => true,
1973
- :type => String,
1864
+ :type => Boolean,
1974
1865
  :allowed_from_server => false,
1975
- :description => "Manual override for the path to your local CA bundle. This CA bundle will be used to validate the SSL certificate presented by New Relic\'s data collection service."
1866
+ :dynamic_name => true,
1867
+ :deprecated => true,
1868
+ :description => 'If `true`, enables the capture of job arguments for transaction traces and traced errors in Resque.'
1976
1869
  },
1870
+ # Rules
1977
1871
  :'rules.ignore_url_regexes' => {
1978
1872
  :default => [],
1979
1873
  :public => true,
@@ -1982,408 +1876,549 @@ A map of error classes to a list of messages. When an error of one of the classe
1982
1876
  :transform => DefaultSource.method(:convert_to_regexp_list),
1983
1877
  :description => 'Define transactions you want the agent to ignore, by specifying a list of patterns matching the URI you want to ignore. See documentation on (ignoring specific transactions)[https://docs.newrelic.com/docs/agents/ruby-agent/api-guides/ignoring-specific-transactions/#config-ignoring] for more details.'
1984
1878
  },
1985
- :'synthetics.traces_limit' => {
1986
- :default => 20,
1987
- :public => false,
1988
- :type => Integer,
1879
+ # Sidekiq
1880
+ :'sidekiq.capture_params' => {
1881
+ :default => false,
1882
+ :public => true,
1883
+ :type => Boolean,
1884
+ :allowed_from_server => false,
1885
+ :dynamic_name => true,
1886
+ :deprecated => true,
1887
+ :description => 'If `true`, enables the capture of job arguments for transaction traces and traced errors in Sidekiq.'
1888
+ },
1889
+ # Slow SQL
1890
+ :'slow_sql.enabled' => {
1891
+ :default => value_of(:'transaction_tracer.enabled'),
1892
+ :documentation_default => true,
1893
+ :public => true,
1894
+ :type => Boolean,
1989
1895
  :allowed_from_server => true,
1990
- :description => 'Maximum number of synthetics transaction traces to hold for a given harvest'
1896
+ :description => 'If `true`, the agent collects [slow SQL queries](/docs/apm/applications-menu/monitoring/viewing-slow-query-details).'
1991
1897
  },
1992
- :'synthetics.events_limit' => {
1993
- :default => 200,
1994
- :public => false,
1995
- :type => Integer,
1898
+ :'slow_sql.explain_threshold' => {
1899
+ :default => value_of(:'transaction_tracer.explain_threshold'),
1900
+ :documentation_default => 0.5,
1901
+ :public => true,
1902
+ :type => Float,
1996
1903
  :allowed_from_server => true,
1997
- :description => 'Maximum number of synthetics transaction events to hold for a given harvest'
1904
+ :description => 'Specify a threshold in seconds. The agent collects [slow SQL queries](/docs/apm/applications-menu/monitoring/viewing-slow-query-details) and explain plans that exceed this threshold.'
1998
1905
  },
1999
- :'custom_insights_events.enabled' => {
2000
- :default => true,
1906
+ :'slow_sql.explain_enabled' => {
1907
+ :default => value_of(:'transaction_tracer.explain_enabled'),
1908
+ :documentation_default => true,
2001
1909
  :public => true,
2002
1910
  :type => Boolean,
2003
1911
  :allowed_from_server => true,
2004
- :description => 'If `true`, the agent captures [custom events](/docs/insights/new-relic-insights/adding-querying-data/inserting-custom-events-new-relic-apm-agents).'
1912
+ :description => 'If `true`, the agent collects explain plans in slow SQL queries. If this setting is omitted, the [`transaction_tracer.explain_enabled`](#transaction_tracer-explain_enabled) setting will be applied as the default setting for explain plans in slow SQL as well.'
2005
1913
  },
2006
- :'custom_insights_events.max_samples_stored' => {
2007
- :default => 1000,
1914
+ :'slow_sql.record_sql' => {
1915
+ :default => value_of(:'transaction_tracer.record_sql'),
1916
+ :documentation_default => 'obfuscated',
2008
1917
  :public => true,
2009
- :type => Integer,
1918
+ :type => String,
2010
1919
  :allowed_from_server => true,
2011
- :description => 'Specify a maximum number of custom events to buffer in memory at a time.',
2012
- :dynamic_name => true
1920
+ :description => 'Defines an obfuscation level for slow SQL queries. Valid options are `obfuscated`, `raw`, or `none`).'
2013
1921
  },
2014
- :'application_logging.enabled' => {
2015
- :default => true,
1922
+ :'slow_sql.use_longer_sql_id' => {
1923
+ :default => false,
2016
1924
  :public => true,
2017
1925
  :type => Boolean,
2018
- :allowed_from_server => false,
2019
- :description => 'If `true`, enables log decoration and the collection of log events and metrics.'
1926
+ :allowed_from_server => true,
1927
+ :description => 'Generate a longer sql_id for slow SQL traces. sql_id is used for aggregation of similar queries.'
2020
1928
  },
2021
- :'application_logging.forwarding.enabled' => {
1929
+ # Span events
1930
+ :'span_events.enabled' => {
2022
1931
  :default => true,
2023
1932
  :public => true,
2024
1933
  :type => Boolean,
1934
+ :allowed_from_server => true,
1935
+ :description => 'If `true`, enables span event sampling.'
1936
+ },
1937
+ :'span_events.queue_size' => {
1938
+ :default => 10_000,
1939
+ :public => true,
1940
+ :type => Integer,
2025
1941
  :allowed_from_server => false,
2026
- :description => 'If `true`, the agent captures log records emitted by your application.'
1942
+ :external => :infinite_tracing,
1943
+ :description => "Sets the maximum number of span events to buffer when streaming to the trace observer."
2027
1944
  },
2028
- :'application_logging.forwarding.max_samples_stored' => {
2029
- :default => 10000,
1945
+ :'span_events.max_samples_stored' => {
1946
+ :default => 2000,
2030
1947
  :public => true,
2031
1948
  :type => Integer,
2032
1949
  :allowed_from_server => true,
2033
- :description => 'Defines the maximum number of log records to buffer in memory at a time.',
2034
- :dynamic_name => true
1950
+ :description => 'Defines the maximum number of span events reported from a single harvest. Any Integer between 1 and 10000 is valid.'
2035
1951
  },
2036
- :'application_logging.metrics.enabled' => {
2037
- :default => true,
1952
+ # Strip exception messages
1953
+ :'strip_exception_messages.enabled' => {
1954
+ :default => value_of(:high_security),
1955
+ :documentation_default => false,
2038
1956
  :public => true,
2039
1957
  :type => Boolean,
2040
- :allowed_from_server => true,
2041
- :description => 'If `true`, the agent captures metrics related to logging for your application.'
1958
+ :allowed_from_server => false,
1959
+ :description => 'If true, the agent strips messages from all exceptions except those in the [allowlist](#strip_exception_messages-allowlist). Enabled automatically in [high security mode](/docs/accounts-partnerships/accounts/security/high-security).'
2042
1960
  },
2043
- :'application_logging.local_decorating.enabled' => {
2044
- :default => false,
1961
+ :'strip_exception_messages.allowed_classes' => {
1962
+ :default => '',
2045
1963
  :public => true,
2046
- :type => Boolean,
1964
+ :type => String,
2047
1965
  :allowed_from_server => false,
2048
- :description => 'If `true`, the agent decorates logs with metadata to link to entities, hosts, traces, and spans.'
1966
+ :transform => DefaultSource.method(:convert_to_constant_list),
1967
+ :description => 'Specify a list of exceptions you do not want the agent to strip when [strip_exception_messages](#strip_exception_messages-enabled) is `true`. Separate exceptions with a comma. For example, `"ImportantException,PreserveMessageException"`.'
2049
1968
  },
2050
- :'code_level_metrics.enabled' => {
2051
- :default => true,
1969
+ # Thread profiler
1970
+ :'thread_profiler.enabled' => {
1971
+ :default => DefaultSource.thread_profiler_enabled,
1972
+ :documentation_default => false,
2052
1973
  :public => true,
2053
1974
  :type => Boolean,
2054
1975
  :allowed_from_server => true,
2055
- :description => "If `true`, the agent will report source code level metrics for traced methods.\nsee: " \
2056
- 'https://docs.newrelic.com/docs/apm/agents/ruby-agent/features/ruby-codestream-integration/'
1976
+ :description => 'If `true`, enables use of the [thread profiler](/docs/apm/applications-menu/events/thread-profiler-tool).'
2057
1977
  },
2058
- :'instrumentation.active_support_logger' => {
2059
- :default => instrumentation_value_from_boolean(:'application_logging.enabled'),
2060
- :documentation_default => 'auto',
2061
- :dynamic_name => true,
1978
+ # Utilization
1979
+ :'utilization.detect_aws' => {
1980
+ :default => true,
2062
1981
  :public => true,
2063
- :type => String,
2064
- :allowed_from_server => false,
2065
- :description => 'Controls auto-instrumentation of ActiveSupport::Logger at start up. May be one of [auto|prepend|chain|disabled].'
2066
- },
2067
- :disable_grape_instrumentation => {
2068
- :default => false,
2069
- :public => false,
2070
1982
  :type => Boolean,
2071
1983
  :allowed_from_server => false,
2072
- :deprecated => true,
2073
- :description => deprecated_description(:'instrumentation.grape',
2074
- 'If `true`, the agent won\'t install Grape instrumentation.')
1984
+ :dynamic_name => true,
1985
+ :description => 'If `true`, the agent automatically detects that it is running in an AWS environment.'
2075
1986
  },
2076
- :disable_grape => {
2077
- :default => false,
1987
+ :'utilization.detect_azure' => {
1988
+ :default => true,
2078
1989
  :public => true,
2079
1990
  :type => Boolean,
2080
1991
  :allowed_from_server => false,
2081
- :deprecated => true,
2082
- :description => deprecated_description(:'instrumentation.grape',
2083
- 'If `true`, the agent won\'t install Grape instrumentation.')
2084
- },
2085
- :'instrumentation.grape' => {
2086
- :default => instrumentation_value_of(:disable_grape_instrumentation),
2087
- :documentation_default => 'auto',
2088
- :public => :true,
2089
- :type => String,
2090
1992
  :dynamic_name => true,
2091
- :allowed_from_server => false,
2092
- :description => "Controls auto-instrumentation of Grape at start up. May be one of [auto|prepend|chain|disabled]."
1993
+ :description => 'If `true`, the agent automatically detects that it is running in an Azure environment.'
2093
1994
  },
2094
- :'attributes.enabled' => {
1995
+ :'utilization.detect_docker' => {
2095
1996
  :default => true,
2096
1997
  :public => true,
2097
1998
  :type => Boolean,
2098
1999
  :allowed_from_server => false,
2099
- :description => 'If `true`, enables capture of attributes for all destinations.'
2000
+ :description => 'If `true`, the agent automatically detects that it is running in Docker.'
2100
2001
  },
2101
- :'transaction_tracer.attributes.enabled' => {
2102
- :default => value_of(:'transaction_tracer.capture_attributes'),
2103
- :documentation_default => true,
2002
+ :'utilization.detect_gcp' => {
2003
+ :default => true,
2104
2004
  :public => true,
2105
2005
  :type => Boolean,
2106
2006
  :allowed_from_server => false,
2107
- :description => 'If `true`, the agent captures attributes from transaction traces.'
2007
+ :dynamic_name => true,
2008
+ :description => 'If `true`, the agent automatically detects that it is running in an Google Cloud Platform environment.'
2108
2009
  },
2109
- :'transaction_events.attributes.enabled' => {
2110
- :default => value_of(:'analytics_events.capture_attributes'),
2111
- :documentation_default => true,
2010
+ :'utilization.detect_kubernetes' => {
2011
+ :default => true,
2112
2012
  :public => true,
2113
2013
  :type => Boolean,
2114
2014
  :allowed_from_server => false,
2115
- :description => 'If `true`, the agent captures attributes from transaction events.'
2015
+ :description => 'If `true`, the agent automatically detects that it is running in Kubernetes.'
2116
2016
  },
2117
- :'error_collector.attributes.enabled' => {
2118
- :default => value_of(:'error_collector.capture_attributes'),
2119
- :documentation_default => true,
2017
+ :'utilization.detect_pcf' => {
2018
+ :default => true,
2120
2019
  :public => true,
2121
2020
  :type => Boolean,
2122
2021
  :allowed_from_server => false,
2123
- :description => 'If `true`, the agent captures attributes from error collection.'
2022
+ :dynamic_name => true,
2023
+ :description => 'If `true`, the agent automatically detects that it is running in a Pivotal Cloud Foundry environment.'
2124
2024
  },
2125
- :'browser_monitoring.attributes.enabled' => {
2126
- :default => value_of(:'browser_monitoring.capture_attributes'),
2127
- :documentation_default => false,
2128
- :public => true,
2129
- :type => Boolean,
2130
- :allowed_from_server => false,
2131
- :description => 'If `true`, the agent captures attributes from browser monitoring.'
2025
+ # Private
2026
+ :account_id => {
2027
+ :default => nil,
2028
+ :allow_nil => true,
2029
+ :public => false,
2030
+ :type => String,
2031
+ :allowed_from_server => true,
2032
+ :description => 'The account id associated with your application.'
2132
2033
  },
2133
- :'span_events.attributes.enabled' => {
2034
+ :aggressive_keepalive => {
2134
2035
  :default => true,
2135
- :public => true,
2036
+ :public => false,
2136
2037
  :type => Boolean,
2038
+ :allowed_from_server => true,
2039
+ :description => 'If true, attempt to keep the TCP connection to the collector alive between harvests.'
2040
+ },
2041
+ :api_host => {
2042
+ :default => DefaultSource.api_host,
2043
+ :public => false,
2044
+ :type => String,
2137
2045
  :allowed_from_server => false,
2138
- :description => 'If `true`, the agent captures attributes on span events.'
2046
+ :description => 'API host for New Relic.'
2139
2047
  },
2140
- :'transaction_segments.attributes.enabled' => {
2141
- :default => true,
2142
- :public => true,
2048
+ :api_port => {
2049
+ :default => value_of(:port),
2050
+ :public => false,
2051
+ :type => Integer,
2052
+ :allowed_from_server => false,
2053
+ :description => 'Port for the New Relic API host.'
2054
+ },
2055
+ :application_id => {
2056
+ :default => '',
2057
+ :public => false,
2058
+ :type => String,
2059
+ :allowed_from_server => true,
2060
+ :description => 'Application ID for real user monitoring.'
2061
+ },
2062
+ :beacon => {
2063
+ :default => '',
2064
+ :public => false,
2065
+ :type => String,
2066
+ :allowed_from_server => true,
2067
+ :description => 'Beacon for real user monitoring.'
2068
+ },
2069
+ :browser_key => {
2070
+ :default => '',
2071
+ :public => false,
2072
+ :type => String,
2073
+ :allowed_from_server => true,
2074
+ :description => 'Real user monitoring license key for the browser timing header.'
2075
+ },
2076
+ :'browser_monitoring.loader' => {
2077
+ :default => DefaultSource.browser_monitoring_loader,
2078
+ :public => false,
2079
+ :type => String,
2080
+ :allowed_from_server => true,
2081
+ :description => 'Type of JavaScript agent loader to use for browser monitoring instrumentation.'
2082
+ },
2083
+ :'browser_monitoring.loader_version' => {
2084
+ :default => '',
2085
+ :public => false,
2086
+ :type => String,
2087
+ :allowed_from_server => true,
2088
+ :description => 'Version of JavaScript agent loader (returned from the New Relic [collector](/docs/apm/new-relic-apm/getting-started/glossary#collector).)'
2089
+ },
2090
+ :'browser_monitoring.debug' => {
2091
+ :default => false,
2092
+ :public => false,
2093
+ :type => Boolean,
2094
+ :allowed_from_server => true,
2095
+ :description => 'Enable or disable debugging version of JavaScript agent loader for browser monitoring instrumentation.'
2096
+ },
2097
+ :'browser_monitoring.ssl_for_http' => {
2098
+ :default => nil,
2099
+ :allow_nil => true,
2100
+ :public => false,
2143
2101
  :type => Boolean,
2102
+ :allowed_from_server => true,
2103
+ :description => 'Enable or disable HTTPS instrumentation by JavaScript agent on HTTP pages.'
2104
+ },
2105
+ :compressed_content_encoding => {
2106
+ :default => 'gzip',
2107
+ :public => false,
2108
+ :type => String,
2144
2109
  :allowed_from_server => false,
2145
- :description => 'If `true`, the agent captures attributes on transaction segments.'
2110
+ :description => 'Encoding to use if data needs to be compressed. The options are deflate and gzip.'
2146
2111
  },
2147
- :'attributes.exclude' => {
2148
- :default => [],
2149
- :public => true,
2112
+ :config_search_paths => {
2113
+ :default => DefaultSource.config_search_paths,
2114
+ :public => false,
2150
2115
  :type => Array,
2151
2116
  :allowed_from_server => false,
2152
- :transform => DefaultSource.method(:convert_to_list),
2153
- :description => 'Prefix of attributes to exclude from all destinations. Allows `*` as wildcard at end.'
2117
+ :description => "An array of candidate locations for the agent's configuration file."
2154
2118
  },
2155
- :'transaction_tracer.attributes.exclude' => {
2156
- :default => [],
2157
- :public => true,
2158
- :type => Array,
2119
+ :cross_process_id => {
2120
+ :default => '',
2121
+ :public => false,
2122
+ :type => String,
2123
+ :allowed_from_server => true,
2124
+ :description => 'Cross process ID for cross-application tracing.'
2125
+ },
2126
+ :data_report_period => {
2127
+ :default => 60,
2128
+ :public => false,
2129
+ :type => Integer,
2130
+ :allowed_from_server => true,
2131
+ :description => 'Number of seconds betwixt connections to the New Relic data collection service.'
2132
+ },
2133
+ :disable_grape_instrumentation => {
2134
+ :default => false,
2135
+ :public => false,
2136
+ :type => Boolean,
2159
2137
  :allowed_from_server => false,
2160
- :transform => DefaultSource.method(:convert_to_list),
2161
- :description => 'Prefix of attributes to exclude from transaction traces. Allows `*` as wildcard at end.'
2138
+ :deprecated => true,
2139
+ :description => deprecated_description(:'instrumentation.grape',
2140
+ 'If `true`, the agent won\'t install Grape instrumentation.')
2162
2141
  },
2163
- :'transaction_events.attributes.exclude' => {
2164
- :default => [],
2165
- :public => true,
2166
- :type => Array,
2142
+ :dispatcher => {
2143
+ :default => DefaultSource.dispatcher,
2144
+ :public => false,
2145
+ :type => Symbol,
2167
2146
  :allowed_from_server => false,
2168
- :transform => DefaultSource.method(:convert_to_list),
2169
- :description => 'Prefix of attributes to exclude from transaction events. Allows `*` as wildcard at end.'
2147
+ :description => 'Autodetected application component that reports metrics to New Relic.'
2170
2148
  },
2171
- :'error_collector.attributes.exclude' => {
2172
- :default => [],
2173
- :public => true,
2174
- :type => Array,
2149
+ :disable_harvest_thread => {
2150
+ :default => false,
2151
+ :public => false,
2152
+ :type => Boolean,
2175
2153
  :allowed_from_server => false,
2176
- :transform => DefaultSource.method(:convert_to_list),
2177
- :description => 'Prefix of attributes to exclude from error collection. Allows `*` as wildcard at end.'
2154
+ :description => 'Enable or disable the harvest thread.'
2178
2155
  },
2179
- :'browser_monitoring.attributes.exclude' => {
2180
- :default => [],
2181
- :public => true,
2182
- :type => Array,
2156
+ :disable_rails_middleware => {
2157
+ :default => false,
2158
+ :public => false,
2159
+ :type => Boolean,
2183
2160
  :allowed_from_server => false,
2184
- :transform => DefaultSource.method(:convert_to_list),
2185
- :description => 'Prefix of attributes to exclude from browser monitoring. Allows `*` as wildcard at end.'
2161
+ :description => 'Internal name for controlling Rails 3+ middleware instrumentation'
2186
2162
  },
2187
- :'span_events.attributes.exclude' => {
2188
- :default => [],
2189
- :public => true,
2190
- :type => Array,
2163
+ :disable_rake_instrumentation => {
2164
+ :default => false,
2165
+ :public => false,
2166
+ :type => Boolean,
2191
2167
  :allowed_from_server => false,
2192
- :transform => DefaultSource.method(:convert_to_list),
2193
- :description => 'Prefix of attributes to exclude from span events. Allows `*` as wildcard at end.'
2168
+ :deprecated => true,
2169
+ :description => deprecated_description(:'instrumentation.rake', 'Enable or disable Rake instrumentation. Preferred key is `disable_rake`')
2194
2170
  },
2195
- :'transaction_segments.attributes.exclude' => {
2196
- :default => [],
2197
- :public => true,
2198
- :type => Array,
2171
+ :disable_redis_instrumentation => {
2172
+ :default => false,
2173
+ :public => false,
2174
+ :type => Boolean,
2175
+ :deprecated => true,
2199
2176
  :allowed_from_server => false,
2200
- :transform => DefaultSource.method(:convert_to_list),
2201
- :description => 'Prefix of attributes to exclude from transaction segments. Allows `*` as wildcard at end.'
2177
+ :description => deprecated_description(:'instrumentation.redis', 'Disables installation of Redis instrumentation. Standard key to use is disable_redis.')
2202
2178
  },
2203
- :'attributes.include' => {
2204
- :default => [],
2205
- :public => true,
2206
- :type => Array,
2179
+ :cross_application_tracing => {
2180
+ :default => nil,
2181
+ :allow_nil => true,
2182
+ :public => false,
2183
+ :type => Boolean,
2207
2184
  :allowed_from_server => false,
2208
- :transform => DefaultSource.method(:convert_to_list),
2209
- :description => 'Prefix of attributes to include in all destinations. Allows `*` as wildcard at end.'
2185
+ :deprecated => true,
2186
+ :description => 'Deprecated in favor of distributed_tracing.enabled'
2210
2187
  },
2211
- :'transaction_tracer.attributes.include' => {
2212
- :default => [],
2213
- :public => true,
2214
- :type => Array,
2188
+ :enabled => {
2189
+ :default => true,
2190
+ :public => false,
2191
+ :type => Boolean,
2192
+ :aliases => [:enable],
2215
2193
  :allowed_from_server => false,
2216
- :transform => DefaultSource.method(:convert_to_list),
2217
- :description => 'Prefix of attributes to include in transaction traces. Allows `*` as wildcard at end.'
2194
+ :description => 'Enable or disable the agent.'
2218
2195
  },
2219
- :'transaction_events.attributes.include' => {
2220
- :default => [],
2221
- :public => true,
2222
- :type => Array,
2196
+ :encoding_key => {
2197
+ :default => '',
2198
+ :public => false,
2199
+ :type => String,
2200
+ :allowed_from_server => true,
2201
+ :description => 'Encoding key for cross-application tracing.'
2202
+ },
2203
+ :entity_guid => {
2204
+ :default => nil,
2205
+ :allow_nil => true,
2206
+ :public => false,
2207
+ :type => String,
2208
+ :allowed_from_server => true,
2209
+ :description => 'The [Entity GUID](/attribute-dictionary/span/entityguid) for the entity running your agent.'
2210
+ },
2211
+ :error_beacon => {
2212
+ :default => '',
2213
+ :public => false,
2214
+ :type => String,
2215
+ :allowed_from_server => true,
2216
+ :description => 'Error beacon for real user monitoring.'
2217
+ },
2218
+ :event_report_period => {
2219
+ :default => 60,
2220
+ :public => false,
2221
+ :type => Integer,
2222
+ :allowed_from_server => true,
2223
+ :description => 'Number of seconds betwixt connections to the New Relic event collection services.'
2224
+ },
2225
+ :'event_report_period.analytic_event_data' => {
2226
+ :default => 60,
2227
+ :public => false,
2228
+ :type => Integer,
2229
+ :dynamic_name => true,
2230
+ :deprecated => true,
2231
+ :allowed_from_server => true,
2232
+ :description => deprecated_description(:'event_report_period.transaction_event_data', 'Number of seconds betwixt connections to the New Relic transaction event collection services.')
2233
+ },
2234
+ :'event_report_period.transaction_event_data' => {
2235
+ :default => value_of(:'event_report_period.analytic_event_data'),
2236
+ :public => false,
2237
+ :type => Integer,
2238
+ :dynamic_name => true,
2239
+ :allowed_from_server => true,
2240
+ :description => 'Number of seconds betwixt connections to the New Relic transaction event collection services.'
2241
+ },
2242
+ :'event_report_period.custom_event_data' => {
2243
+ :default => 60,
2244
+ :public => false,
2245
+ :type => Integer,
2246
+ :dynamic_name => true,
2247
+ :allowed_from_server => true,
2248
+ :description => 'Number of seconds betwixt connections to the New Relic custom event collection services.'
2249
+ },
2250
+ :'event_report_period.error_event_data' => {
2251
+ :default => 60,
2252
+ :public => false,
2253
+ :type => Integer,
2254
+ :dynamic_name => true,
2255
+ :allowed_from_server => true,
2256
+ :description => 'Number of seconds betwixt connections to the New Relic error event collection services.'
2257
+ },
2258
+ :'event_report_period.log_event_data' => {
2259
+ :default => 60,
2260
+ :public => false,
2261
+ :type => Integer,
2262
+ :dynamic_name => true,
2263
+ :allowed_from_server => true,
2264
+ :description => 'Number of seconds betwixt connections to the New Relic log event collection services.'
2265
+ },
2266
+ :'event_report_period.span_event_data' => {
2267
+ :default => 60,
2268
+ :public => false,
2269
+ :type => Integer,
2270
+ :dynamic_name => true,
2271
+ :allowed_from_server => true,
2272
+ :description => 'Number of seconds betwixt connections to the New Relic span event collection services.'
2273
+ },
2274
+ :force_reconnect => {
2275
+ :default => false,
2276
+ :public => false,
2277
+ :type => Boolean,
2223
2278
  :allowed_from_server => false,
2224
- :transform => DefaultSource.method(:convert_to_list),
2225
- :description => 'Prefix of attributes to include in transaction events. Allows `*` as wildcard at end.'
2279
+ :description => 'Force a new connection to the server before running the worker loop. Creates a separate agent run and is recorded as a separate instance by the New Relic data collection service.'
2226
2280
  },
2227
- :'error_collector.attributes.include' => {
2228
- :default => [],
2229
- :public => true,
2230
- :type => Array,
2281
+ :framework => {
2282
+ :default => DefaultSource.framework,
2283
+ :public => false,
2284
+ :type => Symbol,
2231
2285
  :allowed_from_server => false,
2232
- :transform => DefaultSource.method(:convert_to_list),
2233
- :description => 'Prefix of attributes to include in error collection. Allows `*` as wildcard at end.'
2286
+ :description => 'Autodetected application framework used to enable framework-specific functionality.'
2234
2287
  },
2235
- :'browser_monitoring.attributes.include' => {
2236
- :default => [],
2237
- :public => true,
2238
- :type => Array,
2288
+ :host => {
2289
+ :default => DefaultSource.host,
2290
+ :public => false,
2291
+ :type => String,
2239
2292
  :allowed_from_server => false,
2240
- :transform => DefaultSource.method(:convert_to_list),
2241
- :description => 'Prefix of attributes to include in browser monitoring. Allows `*` as wildcard at end.'
2293
+ :description => "URI for the New Relic data collection service."
2242
2294
  },
2243
- :'span_events.attributes.include' => {
2244
- :default => [],
2245
- :public => true,
2246
- :type => Array,
2295
+ :'infinite_tracing.batching' => {
2296
+ :default => false,
2297
+ :public => false,
2298
+ :type => Boolean,
2247
2299
  :allowed_from_server => false,
2248
- :transform => DefaultSource.method(:convert_to_list),
2249
- :description => 'Prefix of attributes to include on span events. Allows `*` as wildcard at end.'
2300
+ :external => :infinite_tracing,
2301
+ :description => "If true, data sent to the Trace Observer will be batched instead of the default of each " \
2302
+ "span being sent individually"
2250
2303
  },
2251
- :'transaction_segments.attributes.include' => {
2252
- :default => [],
2253
- :public => true,
2254
- :type => Array,
2304
+ :'infinite_tracing.compression_level' => {
2305
+ :default => :none,
2306
+ :public => false,
2307
+ :type => Symbol,
2255
2308
  :allowed_from_server => false,
2256
- :transform => DefaultSource.method(:convert_to_list),
2257
- :description => 'Prefix of attributes to include on transaction segments. Allows `*` as wildcard at end.'
2309
+ :external => :infinite_tracing,
2310
+ :description => "Configure the compression level for data sent to the Trace Observer\nMay be one of " \
2311
+ "[none|low|medium|high]\nBy default, compression is not used (level = none)"
2312
+ },
2313
+ :js_agent_file => {
2314
+ :default => '',
2315
+ :public => false,
2316
+ :type => String,
2317
+ :allowed_from_server => true,
2318
+ :description => 'JavaScript agent file for real user monitoring.'
2319
+ },
2320
+ :js_agent_loader => {
2321
+ :default => '',
2322
+ :public => false,
2323
+ :type => String,
2324
+ :allowed_from_server => true,
2325
+ :description => 'JavaScript agent loader content.'
2258
2326
  },
2259
- :'custom_attributes.enabled' => {
2260
- :default => true,
2261
- :public => true,
2327
+ :js_errors_beta => {
2328
+ :default => false,
2329
+ :public => false,
2262
2330
  :type => Boolean,
2263
2331
  :allowed_from_server => false,
2264
- :description => 'If `false`, custom attributes will not be sent on events.'
2332
+ :deprecated => true,
2333
+ :description => 'Enable or disable beta JavaScript error reporting.'
2265
2334
  },
2266
- :'utilization.detect_aws' => {
2267
- :default => true,
2268
- :public => true,
2269
- :type => Boolean,
2270
- :allowed_from_server => false,
2271
- :dynamic_name => true,
2272
- :description => 'If `true`, the agent automatically detects that it is running in an AWS environment.'
2335
+ :keep_alive_timeout => {
2336
+ :default => 60,
2337
+ :public => false,
2338
+ :type => Integer,
2339
+ :allowed_from_server => true,
2340
+ :description => 'Timeout for keep alive on TCP connection to collector if supported by Ruby version. Only used in conjunction when aggressive_keepalive is enabled.'
2273
2341
  },
2274
- :'utilization.detect_azure' => {
2342
+ :keep_retrying => {
2275
2343
  :default => true,
2276
- :public => true,
2344
+ :public => false,
2277
2345
  :type => Boolean,
2346
+ :deprecated => true,
2278
2347
  :allowed_from_server => false,
2279
- :dynamic_name => true,
2280
- :description => 'If `true`, the agent automatically detects that it is running in an Azure environment.'
2348
+ :description => 'Enable or disable retrying failed connections to the New Relic data collection service.'
2281
2349
  },
2282
- :'utilization.detect_gcp' => {
2283
- :default => true,
2284
- :public => true,
2285
- :type => Boolean,
2286
- :allowed_from_server => false,
2287
- :dynamic_name => true,
2288
- :description => 'If `true`, the agent automatically detects that it is running in an Google Cloud Platform environment.'
2350
+ :max_payload_size_in_bytes => {
2351
+ :default => 1000000,
2352
+ :public => false,
2353
+ :type => Integer,
2354
+ :allowed_from_server => true,
2355
+ :description => 'Maximum number of bytes to send to the New Relic data collection service.'
2289
2356
  },
2290
- :'utilization.detect_pcf' => {
2357
+ :normalize_json_string_encodings => {
2291
2358
  :default => true,
2292
- :public => true,
2359
+ :public => false,
2293
2360
  :type => Boolean,
2294
2361
  :allowed_from_server => false,
2295
- :dynamic_name => true,
2296
- :description => 'If `true`, the agent automatically detects that it is running in a Pivotal Cloud Foundry environment.'
2362
+ :description => 'Controls whether to normalize string encodings prior to serializing data for the collector to JSON.'
2297
2363
  },
2298
- :'utilization.detect_docker' => {
2299
- :default => true,
2300
- :public => true,
2301
- :type => Boolean,
2364
+ :port => {
2365
+ :default => 443,
2366
+ :public => false,
2367
+ :type => Integer,
2302
2368
  :allowed_from_server => false,
2303
- :description => 'If `true`, the agent automatically detects that it is running in Docker.'
2369
+ :description => 'Port for the New Relic data collection service.'
2304
2370
  },
2305
- :'utilization.detect_kubernetes' => {
2371
+ :prepend_net_instrumentation => {
2306
2372
  :default => true,
2307
- :public => true,
2373
+ :public => false,
2308
2374
  :type => Boolean,
2309
2375
  :allowed_from_server => false,
2310
- :description => 'If `true`, the agent automatically detects that it is running in Kubernetes.'
2376
+ :deprecated => true,
2377
+ :description => deprecated_description(:'instrumentation.net_http',
2378
+ 'If `true`, uses `Module#prepend` rather than alias_method for Net::HTTP instrumentation.')
2311
2379
  },
2312
- :'utilization.billing_hostname' => {
2380
+ :primary_application_id => {
2313
2381
  :default => nil,
2314
2382
  :allow_nil => true,
2315
2383
  :public => false,
2316
2384
  :type => String,
2317
- :allowed_from_server => false,
2318
- :description => 'The configured server name by a customer.'
2319
- },
2320
- :'utilization.logical_processors' => {
2321
- :default => nil,
2322
- :allow_nil => true,
2323
- :public => false,
2324
- :type => Integer,
2325
- :allowed_from_server => false,
2326
- :description => 'The total number of hyper-threaded execution contexts available.'
2385
+ :allowed_from_server => true,
2386
+ :description => 'The primary id associated with your application.'
2327
2387
  },
2328
- :'utilization.total_ram_mib' => {
2329
- :default => nil,
2330
- :allow_nil => true,
2388
+ :put_for_data_send => {
2389
+ :default => false,
2331
2390
  :public => false,
2332
- :type => Integer,
2391
+ :type => Boolean,
2333
2392
  :allowed_from_server => false,
2334
- :description => 'This value represents the total amount of memory available to the host (not the process), in mebibytes (1024 squared or 1,048,576 bytes).'
2393
+ :description => 'Use HTTP PUT requests instead of POST.'
2335
2394
  },
2336
- :'datastore_tracer.instance_reporting.enabled' => {
2395
+ :report_instance_busy => {
2337
2396
  :default => true,
2338
- :public => true,
2397
+ :public => false,
2339
2398
  :type => Boolean,
2340
2399
  :allowed_from_server => false,
2341
- :description => 'If `false`, the agent will not report datastore instance metrics, nor add `host` or `port_path_or_id` parameters to transaction or slow SQL traces.'
2400
+ :description => 'Enable or disable transmission of metrics recording the percentage of time application instances spend servicing requests (duty cycle metrics).'
2342
2401
  },
2343
- :'datastore_tracer.database_name_reporting.enabled' => {
2402
+ :restart_thread_in_children => {
2344
2403
  :default => true,
2345
- :public => true,
2404
+ :public => false,
2346
2405
  :type => Boolean,
2347
2406
  :allowed_from_server => false,
2348
- :description => 'If `false`, the agent will not add `database_name` parameter to transaction or slow sql traces.'
2407
+ :description => 'Controls whether to check on running a transaction whether to respawn the harvest thread.'
2349
2408
  },
2350
- :'clear_transaction_state_after_fork' => {
2351
- :default => false,
2352
- :public => true,
2409
+ :'resque.use_ruby_dns' => {
2410
+ :default => true,
2411
+ :public => false,
2353
2412
  :type => Boolean,
2354
2413
  :allowed_from_server => false,
2355
- :description => 'If `true`, the agent will clear `Tracer::State` in `Agent.drop_buffered_data`.'
2356
- },
2357
- :account_id => {
2358
- :default => nil,
2359
- :allow_nil => true,
2360
- :public => false,
2361
- :type => String,
2362
- :allowed_from_server => true,
2363
- :description => 'The account id associated with your application.'
2364
- },
2365
- :primary_application_id => {
2366
- :default => nil,
2367
- :allow_nil => true,
2368
- :public => false,
2369
- :type => String,
2370
- :allowed_from_server => true,
2371
- :description => 'The primary id associated with your application.'
2414
+ :description => 'Replace the libc DNS resolver with the all Ruby resolver Resolv'
2372
2415
  },
2373
- :'distributed_tracing.enabled' => {
2416
+ :'rum.enabled' => {
2374
2417
  :default => true,
2375
- :public => true,
2376
- :type => Boolean,
2377
- :allowed_from_server => true,
2378
- :description => 'Distributed tracing lets you see the path that a request takes through your distributed system. Enabling distributed tracing changes the behavior of some New Relic features, so carefully consult the [transition guide](/docs/transition-guide-distributed-tracing) before you enable this feature.'
2379
- },
2380
- :trusted_account_key => {
2381
- :default => nil,
2382
- :allow_nil => true,
2383
2418
  :public => false,
2384
- :type => String,
2419
+ :type => Boolean,
2385
2420
  :allowed_from_server => true,
2386
- :description => 'A shared key to validate that a distributed trace payload came from a trusted account.'
2421
+ :description => 'Enable or disable page load timing (sometimes referred to as real user monitoring or RUM).'
2387
2422
  },
2388
2423
  :sampling_target => {
2389
2424
  :default => 10,
@@ -2399,72 +2434,93 @@ A map of error classes to a list of messages. When an error of one of the classe
2399
2434
  :allowed_from_server => true,
2400
2435
  :description => 'The period during which a target number of transactions should be marked as sampled.'
2401
2436
  },
2402
- :'span_events.enabled' => {
2437
+ :send_environment_info => {
2403
2438
  :default => true,
2404
- :public => true,
2439
+ :public => false,
2405
2440
  :type => Boolean,
2406
- :allowed_from_server => true,
2407
- :description => 'If `true`, enables span event sampling.'
2441
+ :allowed_from_server => false,
2442
+ :description => 'Enable or disable transmission of application environment information to the New Relic data collection service.'
2408
2443
  },
2409
- :'span_events.queue_size' => {
2410
- :default => 10_000,
2411
- :public => true,
2412
- :type => Integer,
2444
+ :simple_compression => {
2445
+ :default => false,
2446
+ :public => false,
2447
+ :type => Boolean,
2413
2448
  :allowed_from_server => false,
2414
- :external => :infinite_tracing,
2415
- :description => "Sets the maximum number of span events to buffer when streaming to the trace observer."
2449
+ :description => 'When enabled the agent will compress payloads destined for the collector, but will not pre-compress parts of the payload.'
2416
2450
  },
2417
- :'span_events.max_samples_stored' => {
2418
- :default => 2000,
2419
- :public => true,
2451
+ :skip_ar_instrumentation => {
2452
+ :default => false,
2453
+ :public => false,
2454
+ :type => Boolean,
2455
+ :allowed_from_server => false,
2456
+ :description => 'Enable or disable active record instrumentation.'
2457
+ },
2458
+ :'synthetics.traces_limit' => {
2459
+ :default => 20,
2460
+ :public => false,
2420
2461
  :type => Integer,
2421
2462
  :allowed_from_server => true,
2422
- :description => 'Defines the maximum number of span events reported from a single harvest. Any Integer between 1 and 10000 is valid.'
2463
+ :description => 'Maximum number of synthetics transaction traces to hold for a given harvest'
2423
2464
  },
2424
- :'exclude_newrelic_header' => {
2465
+ :'synthetics.events_limit' => {
2466
+ :default => 200,
2467
+ :public => false,
2468
+ :type => Integer,
2469
+ :allowed_from_server => true,
2470
+ :description => 'Maximum number of synthetics transaction events to hold for a given harvest'
2471
+ },
2472
+ :test_mode => {
2425
2473
  :default => false,
2426
- :public => true,
2474
+ :public => false,
2427
2475
  :type => Boolean,
2476
+ :allowed_from_server => false,
2477
+ :description => 'Used in tests for the agent to start up, but not connect to the collector. Formerly used `developer_mode` in test config for this purpose.'
2478
+ },
2479
+ :'thread_profiler.max_profile_overhead' => {
2480
+ :default => 0.05,
2481
+ :public => false,
2482
+ :type => Float,
2428
2483
  :allowed_from_server => true,
2429
- :description => "Allows newrelic distributed tracing headers to be suppressed on outbound requests."
2484
+ :description => 'Maximum overhead percentage for thread profiling before agent reduces polling frequency'
2430
2485
  },
2431
- :'infinite_tracing.trace_observer.host' => {
2432
- :default => '',
2433
- :public => true,
2486
+ :trusted_account_ids => {
2487
+ :default => [],
2488
+ :public => false,
2489
+ :type => Array,
2490
+ :allowed_from_server => true,
2491
+ :description => 'List of trusted New Relic account IDs for the purposes of cross-application tracing. Inbound requests from applications including cross-application headers that do not come from an account in this list will be ignored.'
2492
+ },
2493
+ :trusted_account_key => {
2494
+ :default => nil,
2495
+ :allow_nil => true,
2496
+ :public => false,
2434
2497
  :type => String,
2435
- :allowed_from_server => false,
2436
- :external => :infinite_tracing,
2437
- :description => "Configures the hostname for the Trace Observer Host. " \
2438
- "When configured, enables tail-based sampling by sending all recorded spans " \
2439
- "to a Trace Observer for further sampling decisions, irrespective of any usual " \
2440
- "agent sampling decision."
2498
+ :allowed_from_server => true,
2499
+ :description => 'A shared key to validate that a distributed trace payload came from a trusted account.'
2441
2500
  },
2442
- :'infinite_tracing.trace_observer.port' => {
2443
- :default => 443,
2444
- :public => true,
2445
- :type => Integer,
2501
+ :'utilization.billing_hostname' => {
2502
+ :default => nil,
2503
+ :allow_nil => true,
2504
+ :public => false,
2505
+ :type => String,
2446
2506
  :allowed_from_server => false,
2447
- :external => :infinite_tracing,
2448
- :description => "Configures the TCP/IP port for the Trace Observer Host"
2507
+ :description => 'The configured server name by a customer.'
2449
2508
  },
2450
- :'infinite_tracing.compression_level' => {
2451
- :default => :none,
2509
+ :'utilization.logical_processors' => {
2510
+ :default => nil,
2511
+ :allow_nil => true,
2452
2512
  :public => false,
2453
- :type => Symbol,
2513
+ :type => Integer,
2454
2514
  :allowed_from_server => false,
2455
- :external => :infinite_tracing,
2456
- :description => "Configure the compression level for data sent to the Trace Observer\nMay be one of " \
2457
- "[none|low|medium|high]\nBy default, compression is not used (level = none)"
2515
+ :description => 'The total number of hyper-threaded execution contexts available.'
2458
2516
  },
2459
- :'infinite_tracing.batching' => {
2460
- :default => false,
2517
+ :'utilization.total_ram_mib' => {
2518
+ :default => nil,
2519
+ :allow_nil => true,
2461
2520
  :public => false,
2462
- :type => Boolean,
2521
+ :type => Integer,
2463
2522
  :allowed_from_server => false,
2464
- :external => :infinite_tracing,
2465
- :description => "If true, data sent to the Trace Observer will be batched instead of the default of each " \
2466
- "span being sent individually"
2467
-
2523
+ :description => 'This value represents the total amount of memory available to the host (not the process), in mebibytes (1024 squared or 1,048,576 bytes).'
2468
2524
  }
2469
2525
  }.freeze
2470
2526
  end