newrelic_rpm 8.12.0 → 8.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -0
  3. data/.rubocop_todo.yml +14 -7
  4. data/CHANGELOG.md +33 -0
  5. data/README.md +1 -1
  6. data/lib/new_relic/agent/agent_logger.rb +1 -1
  7. data/lib/new_relic/agent/audit_logger.rb +1 -1
  8. data/lib/new_relic/agent/configuration/default_source.rb +1403 -1369
  9. data/lib/new_relic/agent/configuration/environment_source.rb +2 -2
  10. data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +1 -1
  11. data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +1 -1
  12. data/lib/new_relic/agent/instrumentation/active_merchant.rb +0 -2
  13. data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +0 -2
  14. data/lib/new_relic/agent/instrumentation/authlogic.rb +0 -2
  15. data/lib/new_relic/agent/instrumentation/data_mapper.rb +0 -1
  16. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +0 -2
  17. data/lib/new_relic/agent/instrumentation/excon.rb +17 -0
  18. data/lib/new_relic/agent/instrumentation/rack/chain.rb +10 -2
  19. data/lib/new_relic/agent/instrumentation/rack/prepend.rb +9 -2
  20. data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +0 -1
  21. data/lib/new_relic/agent/instrumentation/redis/chain.rb +18 -6
  22. data/lib/new_relic/agent/instrumentation/redis/constants.rb +17 -0
  23. data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +28 -18
  24. data/lib/new_relic/agent/instrumentation/redis/middleware.rb +16 -0
  25. data/lib/new_relic/agent/instrumentation/redis/prepend.rb +6 -0
  26. data/lib/new_relic/agent/instrumentation/redis.rb +6 -0
  27. data/lib/new_relic/agent/instrumentation/sidekiq/client.rb +20 -0
  28. data/lib/new_relic/agent/instrumentation/sidekiq/extensions/delayed_class.rb +30 -0
  29. data/lib/new_relic/agent/instrumentation/sidekiq/server.rb +37 -0
  30. data/lib/new_relic/agent/instrumentation/sidekiq.rb +6 -70
  31. data/lib/new_relic/agent/instrumentation/sinatra.rb +0 -2
  32. data/lib/new_relic/agent/instrumentation/sunspot.rb +0 -2
  33. data/lib/new_relic/agent/method_tracer_helpers.rb +1 -1
  34. data/lib/new_relic/agent/parameter_filtering.rb +7 -1
  35. data/lib/new_relic/agent/tracer.rb +1 -1
  36. data/lib/new_relic/constants.rb +2 -0
  37. data/lib/new_relic/control/instrumentation.rb +4 -8
  38. data/lib/new_relic/local_environment.rb +1 -1
  39. data/lib/new_relic/rack/browser_monitoring.rb +1 -0
  40. data/lib/new_relic/version.rb +1 -1
  41. data/lib/tasks/helpers/prompt.rb +1 -1
  42. data/lib/tasks/instrumentation_generator/README.md +2 -2
  43. data/lib/tasks/instrumentation_generator/TODO.md +5 -5
  44. data/newrelic_rpm.gemspec +1 -1
  45. data/test/agent_helper.rb +18 -0
  46. metadata +9 -4
@@ -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,696 +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,
760
+ :type => Boolean,
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).'
763
+ },
764
+ :'browser_monitoring.capture_attributes' => {
765
+ :default => false,
766
+ :public => true,
717
767
  :type => Boolean,
718
768
  :deprecated => true,
719
769
  :allowed_from_server => false,
720
- :description => 'Enable or disable retrying failed connections to the New Relic data collection service.'
770
+ :description => 'Use [`browser_monitoring.attributes.enabled`](#browser_monitoring-attributes-enabled) instead.'
721
771
  },
722
- :force_install_exit_handler => {
723
- :default => false,
772
+ # Analytics events
773
+ :'analytics_events.capture_attributes' => {
774
+ :default => true,
724
775
  :public => true,
725
776
  :type => Boolean,
777
+ :deprecated => true,
726
778
  :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.'
733
- },
734
- :force_reconnect => {
735
- :default => false,
736
- :public => false,
737
- :type => Boolean,
738
- :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.elasticsearch' => {
920
- :default => 'auto',
954
+ :'transaction_events.attributes.exclude' => {
955
+ :default => [],
921
956
  :public => true,
922
- :type => String,
923
- :dynamic_name => true,
957
+ :type => Array,
924
958
  :allowed_from_server => false,
925
- :description => 'Controls auto-instrumentation of the elasticsearch library 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.'
926
961
  },
927
- :'instrumentation.httprb' => {
928
- :default => instrumentation_value_of(:disable_httprb),
929
- :documentation_default => 'auto',
962
+ :'transaction_events.attributes.include' => {
963
+ :default => [],
930
964
  :public => true,
931
- :type => String,
932
- :dynamic_name => true,
965
+ :type => Array,
933
966
  :allowed_from_server => false,
934
- :description => 'Controls auto-instrumentation of http.rb gem 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.'
935
969
  },
936
- :'instrumentation.resque' => {
937
- :default => instrumentation_value_of(:disable_resque),
938
- :documentation_default => 'auto',
939
- :public => true,
940
- :type => String,
941
- :dynamic_name => true,
942
- :allowed_from_server => false,
943
- :description => "Controls auto-instrumentation of resque at start up. May be one of [auto|prepend|chain|disabled]."
944
- },
945
- :'instrumentation.thread' => {
946
- :default => 'auto',
947
- :public => true,
948
- :type => String,
949
- :dynamic_name => true,
950
- :allowed_from_server => false,
951
- :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]."
952
- },
953
- :'instrumentation.thread.tracing' => {
954
- :default => false,
970
+ :'transaction_segments.attributes.enabled' => {
971
+ :default => true,
955
972
  :public => true,
956
973
  :type => Boolean,
957
974
  :allowed_from_server => false,
958
- :description => "Controls auto-instrumentation of the Thread class at start up to automatically add tracing to all Threads created in the application."
975
+ :description => 'If `true`, the agent captures attributes on transaction segments.'
959
976
  },
960
- :'instrumentation.redis' => {
961
- :default => instrumentation_value_of(:disable_redis),
962
- :documentation_default => 'auto',
977
+ :'transaction_segments.attributes.exclude' => {
978
+ :default => [],
963
979
  :public => true,
964
- :type => String,
965
- :dynamic_name => true,
966
- :allowed_from_server => false,
967
- :description => "Controls auto-instrumentation of Redis at start up. May be one of [auto|prepend|chain|disabled]."
968
- },
969
- :'instrumentation.rake' => {
970
- :default => instrumentation_value_of(:disable_rake),
971
- :documentation_default => 'auto',
972
- :public => :true,
973
- :type => String,
974
- :dynamic_name => true,
975
- :allowed_from_server => false,
976
- :description => "Controls auto-instrumentation of rake at start up. May be one of [auto|prepend|chain|disabled]."
977
- },
978
- :'instrumentation.mongo' => {
979
- :default => instrumentation_value_of(:disable_mongo),
980
- :documentation_default => 'enabled',
981
- :public => :true,
982
- :type => String,
983
- :dynamic_name => true,
980
+ :type => Array,
984
981
  :allowed_from_server => false,
985
- :description => "Controls auto-instrumentation of Mongo at start up. May be one of [enabled|disabled]."
982
+ :transform => DefaultSource.method(:convert_to_list),
983
+ :description => 'Prefix of attributes to exclude from transaction segments. Allows `*` as wildcard at end.'
986
984
  },
987
- :'instrumentation.delayed_job' => {
988
- :default => instrumentation_value_of(:disable_dj),
989
- :documentation_default => 'auto',
985
+ :'transaction_segments.attributes.include' => {
986
+ :default => [],
990
987
  :public => true,
991
- :type => String,
992
- :dynamic_name => true,
988
+ :type => Array,
993
989
  :allowed_from_server => false,
994
- :description => 'Controls auto-instrumentation of Delayed Job at start up. May be one of [auto|prepend|chain|disabled].'
990
+ :transform => DefaultSource.method(:convert_to_list),
991
+ :description => 'Prefix of attributes to include on transaction segments. Allows `*` as wildcard at end.'
995
992
  },
996
- :'instrumentation.httpclient' => {
997
- :default => instrumentation_value_of(:disable_httpclient),
998
- :documentation_default => 'auto',
993
+ :'transaction_tracer.attributes.enabled' => {
994
+ :default => value_of(:'transaction_tracer.capture_attributes'),
995
+ :documentation_default => true,
999
996
  :public => true,
1000
- :type => String,
1001
- :dynamic_name => true,
997
+ :type => Boolean,
1002
998
  :allowed_from_server => false,
1003
- :description => "Controls auto-instrumentation of HTTPClient at start up. May be one of [auto|prepend|chain|disabled]."
999
+ :description => 'If `true`, the agent captures attributes from transaction traces.'
1004
1000
  },
1005
- :'instrumentation.curb' => {
1006
- :default => instrumentation_value_of(:disable_curb),
1007
- :documentation_default => 'auto',
1001
+ :'transaction_tracer.attributes.exclude' => {
1002
+ :default => [],
1008
1003
  :public => true,
1009
- :type => String,
1010
- :dynamic_name => true,
1004
+ :type => Array,
1011
1005
  :allowed_from_server => false,
1012
- :description => 'Controls auto-instrumentation of Curb 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.'
1013
1008
  },
1014
- :'instrumentation.sinatra' => {
1015
- :default => instrumentation_value_of(:disable_sinatra),
1016
- :documentation_default => 'auto',
1017
- :public => :true,
1018
- :type => String,
1019
- :dynamic_name => true,
1009
+ :'transaction_tracer.attributes.include' => {
1010
+ :default => [],
1011
+ :public => true,
1012
+ :type => Array,
1020
1013
  :allowed_from_server => false,
1021
- :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.'
1022
1016
  },
1023
- :'instrumentation.rack' => {
1024
- :default => instrumentation_value_of(:disable_rack),
1025
- :documentation_default => 'auto',
1017
+ # Audit log
1018
+ :'audit_log.enabled' => {
1019
+ :default => false,
1026
1020
  :public => true,
1027
- :type => String,
1028
- :dynamic_name => true,
1021
+ :type => Boolean,
1029
1022
  :allowed_from_server => false,
1030
- :description => "Controls auto-instrumentation of Rack. When enabled, the agent hooks into the " \
1031
- "`to_app` method in Rack::Builder to find gems to instrument during " \
1032
- "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).'
1033
1024
  },
1034
- :'instrumentation.rack_urlmap' => {
1035
- :default => instrumentation_value_of(:disable_rack_urlmap),
1036
- :documentation_default => 'auto',
1025
+ :'audit_log.endpoints' => {
1026
+ :default => [".*"],
1037
1027
  :public => true,
1038
- :type => String,
1039
- :dynamic_name => true,
1028
+ :type => Array,
1040
1029
  :allowed_from_server => false,
1041
- :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'
1042
1032
  },
1043
- :'instrumentation.puma_rack' => {
1044
- :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)
1045
- :documentation_default => 'auto',
1033
+ :'audit_log.path' => {
1034
+ :default => DefaultSource.audit_log_path,
1035
+ :documentation_default => 'config/newrelic_audit.log',
1046
1036
  :public => true,
1047
1037
  :type => String,
1048
- :dynamic_name => true,
1049
1038
  :allowed_from_server => false,
1050
- :description => "Controls auto-instrumentation of Puma::Rack. When enabled, the agent hooks into the " \
1051
- "`to_app` method in Puma::Rack::Builder to find gems to instrument during " \
1052
- "application startup. May be one of [auto|prepend|chain|disabled]."
1039
+ :description => 'Specifies a path to the audit log file (including the filename).'
1053
1040
  },
1054
- :'instrumentation.puma_rack_urlmap' => {
1055
- :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)
1056
- :documentation_default => 'auto',
1041
+ # Autostart
1042
+ :'autostart.denylisted_constants' => {
1043
+ :default => 'Rails::Console',
1057
1044
  :public => true,
1058
1045
  :type => String,
1059
- :dynamic_name => true,
1060
1046
  :allowed_from_server => false,
1061
- :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`.'
1062
1048
  },
1063
- :'instrumentation.memcached' => {
1064
- :default => instrumentation_value_of(:disable_memcached),
1065
- :documentation_default => 'auto',
1049
+ :'autostart.denylisted_executables' => {
1050
+ :default => 'irb,rspec',
1066
1051
  :public => true,
1067
1052
  :type => String,
1068
- :dynamic_name => true,
1069
1053
  :allowed_from_server => false,
1070
- :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`.'
1071
1055
  },
1072
- :'instrumentation.memcache_client' => {
1073
- :default => instrumentation_value_of(:disable_memcache_client),
1074
- :documentation_default => 'auto',
1056
+ :'autostart.denylisted_rake_tasks' => {
1057
+ :default => AUTOSTART_DENYLISTED_RAKE_TASKS,
1075
1058
  :public => true,
1076
1059
  :type => String,
1077
- :dynamic_name => true,
1078
1060
  :allowed_from_server => false,
1079
- :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`.'
1080
1062
  },
1081
- :'instrumentation.memcache' => {
1082
- :default => instrumentation_value_of(:disable_dalli),
1083
- :documentation_default => 'auto',
1063
+ # Code level metrics
1064
+ :'code_level_metrics.enabled' => {
1065
+ :default => true,
1084
1066
  :public => true,
1085
- :type => String,
1086
- :dynamic_name => true,
1087
- :allowed_from_server => false,
1088
- :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/'
1089
1071
  },
1090
- :'instrumentation.logger' => {
1091
- :default => instrumentation_value_from_boolean(:'application_logging.enabled'),
1092
- :documentation_default => 'auto',
1072
+ # Cross application tracer
1073
+ :"cross_application_tracer.enabled" => {
1074
+ :default => false,
1093
1075
  :public => true,
1094
- :type => String,
1095
- :dynamic_name => true,
1096
- :allowed_from_server => false,
1097
- :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
+ )
1098
1083
  },
1099
- :'instrumentation.tilt' => {
1100
- :default => "auto",
1084
+ # Custom attributes
1085
+ :'custom_attributes.enabled' => {
1086
+ :default => true,
1101
1087
  :public => true,
1102
- :type => String,
1103
- :dynamic_name => true,
1088
+ :type => Boolean,
1104
1089
  :allowed_from_server => false,
1105
- :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.'
1106
1091
  },
1107
- :'instrumentation.grpc_client' => {
1108
- :default => instrumentation_value_of(:disable_grpc_client),
1109
- :documentation_default => 'auto',
1092
+ # Custom events
1093
+ :'custom_insights_events.enabled' => {
1094
+ :default => true,
1110
1095
  :public => true,
1111
- :type => String,
1112
- :dynamic_name => true,
1113
- :allowed_from_server => false,
1114
- :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).'
1115
1099
  },
1116
- :'instrumentation.grpc.host_denylist' => {
1117
- :default => [],
1100
+ :'custom_insights_events.max_samples_stored' => {
1101
+ :default => 3000,
1118
1102
  :public => true,
1119
- :type => Array,
1120
- :allowed_from_server => false,
1121
- :transform => DefaultSource.method(:convert_to_regexp_list),
1122
- :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
1123
1107
  },
1124
- :'instrumentation.grpc_server' => {
1125
- :default => instrumentation_value_of(:disable_grpc_server),
1126
- :documentation_default => 'auto',
1108
+ # Datastore tracer
1109
+ :'datastore_tracer.database_name_reporting.enabled' => {
1110
+ :default => true,
1127
1111
  :public => true,
1128
- :type => String,
1129
- :dynamic_name => true,
1112
+ :type => Boolean,
1130
1113
  :allowed_from_server => false,
1131
- :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.'
1132
1115
  },
1133
- :disable_data_mapper => {
1134
- :default => false,
1116
+ :'datastore_tracer.instance_reporting.enabled' => {
1117
+ :default => true,
1135
1118
  :public => true,
1136
1119
  :type => Boolean,
1137
1120
  :allowed_from_server => false,
1138
- :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.'
1139
1122
  },
1140
- :disable_activejob => {
1123
+ # Disabling
1124
+ :disable_action_cable_instrumentation => {
1141
1125
  :default => false,
1142
1126
  :public => true,
1143
1127
  :type => Boolean,
1144
1128
  :dynamic_name => true,
1145
1129
  :allowed_from_server => false,
1146
- :description => 'If `true`, disables ActiveJob instrumentation.'
1130
+ :description => 'If `true`, disables Action Cable instrumentation.'
1147
1131
  },
1148
- :disable_action_cable_instrumentation => {
1132
+ :disable_activejob => {
1149
1133
  :default => false,
1150
1134
  :public => true,
1151
1135
  :type => Boolean,
1152
1136
  :dynamic_name => true,
1153
1137
  :allowed_from_server => false,
1154
- :description => 'If `true`, disables Action Cable instrumentation.'
1138
+ :description => 'If `true`, disables ActiveJob instrumentation.'
1155
1139
  },
1156
1140
  :disable_active_storage => {
1157
1141
  :default => false,
@@ -1161,25 +1145,64 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
1161
1145
  :allowed_from_server => false,
1162
1146
  :description => 'If `true`, disables ActiveStorage instrumentation.'
1163
1147
  },
1164
- :disable_memcached => {
1165
- :default => value_of(:disable_memcache_instrumentation),
1148
+ :disable_activerecord_instrumentation => {
1149
+ :default => value_of(:skip_ar_instrumentation),
1166
1150
  :documentation_default => false,
1167
1151
  :public => true,
1168
1152
  :type => Boolean,
1169
- :deprecated => true,
1170
1153
  :allowed_from_server => false,
1171
- :description => deprecated_description(:'instrumentation.memcached', 'If `true`, disables instrumentation for the memcached gem.')
1154
+ :description => 'If `true`, disables active record instrumentation.'
1172
1155
  },
1173
- :disable_memcache_client => {
1174
- :default => value_of(:disable_memcache_instrumentation),
1175
- :documentation_default => false,
1156
+ :disable_active_record_notifications => {
1157
+ :default => false,
1176
1158
  :public => true,
1177
1159
  :type => Boolean,
1178
- :deprecated => true,
1160
+ :dynamic_name => true,
1179
1161
  :allowed_from_server => false,
1180
- :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.'
1181
1163
  },
1182
- :disable_dalli => {
1164
+ :disable_bunny => {
1165
+ :default => false,
1166
+ :public => true,
1167
+ :type => Boolean,
1168
+ :deprecated => true,
1169
+ :dynamic_name => true,
1170
+ :allowed_from_server => false,
1171
+ :description => deprecated_description(:'instrumentation.bunny', 'If `true`, disables instrumentation for the bunny gem.')
1172
+ },
1173
+ :disable_cpu_sampler => {
1174
+ :default => false,
1175
+ :public => true,
1176
+ :type => Boolean,
1177
+ :dynamic_name => true,
1178
+ :allowed_from_server => false,
1179
+ :description => 'If `true`, the agent won\'t sample the CPU usage of the host process.'
1180
+ },
1181
+ :disable_curb => {
1182
+ :default => false,
1183
+ :public => true,
1184
+ :type => Boolean,
1185
+ :deprecated => true,
1186
+ :dynamic_name => true,
1187
+ :allowed_from_server => false,
1188
+ :description => deprecated_description(:'instrumentation.curb', 'If `true`, disables instrumentation for the curb gem.')
1189
+ },
1190
+ :disable_database_instrumentation => {
1191
+ :default => false,
1192
+ :public => true,
1193
+ :type => Boolean,
1194
+ :allowed_from_server => false,
1195
+ :deprecated => true,
1196
+ :description => 'Use [`disable_sequel_instrumentation`](#disable_sequel_instrumentation) instead.'
1197
+ },
1198
+ :disable_data_mapper => {
1199
+ :default => false,
1200
+ :public => true,
1201
+ :type => Boolean,
1202
+ :allowed_from_server => false,
1203
+ :description => 'If `true`, disables DataMapper instrumentation.'
1204
+ },
1205
+ :disable_dalli => {
1183
1206
  :default => value_of(:disable_memcache_instrumentation),
1184
1207
  :documentation_default => false,
1185
1208
  :public => true,
@@ -1197,147 +1220,170 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
1197
1220
  :allowed_from_server => false,
1198
1221
  :description => deprecated_description(:'instrumentation.memcache', "If `true`, disables instrumentation for the dalli gem's additional CAS client support.")
1199
1222
  },
1200
- :disable_memcache_instrumentation => {
1223
+ :disable_delayed_job_sampler => {
1201
1224
  :default => false,
1202
1225
  :public => true,
1203
1226
  :type => Boolean,
1204
- :deprecated => true,
1227
+ :dynamic_name => true,
1205
1228
  :allowed_from_server => false,
1206
- :description => deprecated_description(:'instrumentation.memcache', 'If `true`, disables memcache instrumentation.')
1229
+ :description => 'If `true`, the agent won\'t measure the depth of Delayed Job queues.'
1207
1230
  },
1208
- :disable_gc_profiler => {
1231
+ :disable_dj => {
1209
1232
  :default => false,
1210
1233
  :public => true,
1234
+ :deprecated => true,
1211
1235
  :type => Boolean,
1212
1236
  :allowed_from_server => false,
1213
- :description => 'If `true`, disables the use of GC::Profiler to measure time spent in garbage collection'
1237
+ :description => deprecated_description(:'instrumentation.delayed_job', 'If `true`, disables [Delayed::Job instrumentation](/docs/agents/ruby-agent/background-jobs/delayedjob).')
1214
1238
  },
1215
- :'sidekiq.capture_params' => {
1239
+ :disable_excon => {
1216
1240
  :default => false,
1217
1241
  :public => true,
1218
1242
  :type => Boolean,
1219
- :allowed_from_server => false,
1220
1243
  :dynamic_name => true,
1221
1244
  :deprecated => true,
1222
- :description => 'If `true`, enables the capture of job arguments for transaction traces and traced errors in Sidekiq.'
1245
+ :allowed_from_server => false,
1246
+ :description => deprecated_description(:'instrumentation.excon', 'If `true`, disables instrumentation for the excon gem.')
1223
1247
  },
1224
- :'resque.capture_params' => {
1225
- :default => false,
1248
+ :disable_memcached => {
1249
+ :default => value_of(:disable_memcache_instrumentation),
1250
+ :documentation_default => false,
1226
1251
  :public => true,
1227
1252
  :type => Boolean,
1228
- :allowed_from_server => false,
1229
- :dynamic_name => true,
1230
1253
  :deprecated => true,
1231
- :description => 'If `true`, enables the capture of job arguments for transaction traces and traced errors in Resque.'
1254
+ :allowed_from_server => false,
1255
+ :description => deprecated_description(:'instrumentation.memcached', 'If `true`, disables instrumentation for the memcached gem.')
1232
1256
  },
1233
- :'resque.use_ruby_dns' => {
1234
- :default => true,
1235
- :public => false,
1257
+ :disable_memcache_client => {
1258
+ :default => value_of(:disable_memcache_instrumentation),
1259
+ :documentation_default => false,
1260
+ :public => true,
1236
1261
  :type => Boolean,
1262
+ :deprecated => true,
1237
1263
  :allowed_from_server => false,
1238
- :description => 'Replace the libc DNS resolver with the all Ruby resolver Resolv'
1264
+ :description => deprecated_description(:'instrumentation.memcache-client', 'If `true`, disables instrumentation for the memcache-client gem.')
1239
1265
  },
1240
- :capture_memcache_keys => {
1266
+ :disable_memcache_instrumentation => {
1241
1267
  :default => false,
1242
1268
  :public => true,
1243
1269
  :type => Boolean,
1244
- :allowed_from_server => true,
1245
- :description => 'Enable or disable the capture of memcache keys from transaction traces.'
1270
+ :deprecated => true,
1271
+ :allowed_from_server => false,
1272
+ :description => deprecated_description(:'instrumentation.memcache', 'If `true`, disables memcache instrumentation.')
1246
1273
  },
1247
- :'transaction_tracer.enabled' => {
1248
- :default => true,
1274
+ :disable_gc_profiler => {
1275
+ :default => false,
1249
1276
  :public => true,
1250
1277
  :type => Boolean,
1251
- :allowed_from_server => true,
1252
- :description => 'If `true`, enables collection of [transaction traces](/docs/apm/traces/transaction-traces/transaction-traces).'
1278
+ :allowed_from_server => false,
1279
+ :description => 'If `true`, disables the use of GC::Profiler to measure time spent in garbage collection'
1253
1280
  },
1254
- :'transaction_tracer.transaction_threshold' => {
1255
- :default => DefaultSource.transaction_tracer_transaction_threshold,
1281
+ :disable_grape => {
1282
+ :default => false,
1256
1283
  :public => true,
1257
- :type => Float,
1258
- :allowed_from_server => true,
1259
- :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`.'
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.')
1260
1289
  },
1261
- :'transaction_tracer.record_sql' => {
1262
- :default => 'obfuscated',
1290
+ :disable_httpclient => {
1291
+ :default => false,
1263
1292
  :public => true,
1264
- :type => String,
1265
- :allowed_from_server => true,
1266
- :description => 'Obfuscation level for SQL queries reported in transaction trace nodes.
1267
-
1268
- By default, this is set to `obfuscated`, which strips out the numeric and string literals.
1269
-
1270
- - If you do not want the agent to capture query information, set this to `none`.
1271
- - If you want the agent to capture all query information in its original form, set this to `raw`.
1272
- - When you enable [high security mode](/docs/agents/manage-apm-agents/configuration/high-security-mode), this is automatically set to `obfuscated`.
1273
- '
1293
+ :type => Boolean,
1294
+ :dynamic_name => true,
1295
+ :deprecated => true,
1296
+ :allowed_from_server => false,
1297
+ :description => deprecated_description(:'instrumentation.httpclient', 'If `true`, disables instrumentation for the httpclient gem.')
1274
1298
  },
1275
- :'transaction_tracer.record_redis_arguments' => {
1299
+ :disable_httprb => {
1276
1300
  :default => false,
1277
1301
  :public => true,
1278
1302
  :type => Boolean,
1303
+ :dynamic_name => true,
1304
+ :deprecated => true,
1279
1305
  :allowed_from_server => false,
1280
- :description => 'If `true`, the agent records Redis command arguments in transaction traces.'
1306
+ :description => deprecated_description(:'instrumentation.httprb', 'If `true`, the agent won\'t install instrumentation for the http.rb gem.')
1281
1307
  },
1282
- :'transaction_tracer.capture_attributes' => {
1283
- :default => true,
1308
+ :disable_mongo => {
1309
+ :default => false,
1284
1310
  :public => true,
1285
1311
  :type => Boolean,
1312
+ :allowed_from_server => false,
1313
+ :dynamic_name => true,
1286
1314
  :deprecated => true,
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).')
1316
+ },
1317
+ :disable_memory_sampler => {
1318
+ :default => false,
1319
+ :public => true,
1320
+ :type => Boolean,
1321
+ :dynamic_name => true,
1287
1322
  :allowed_from_server => false,
1288
- :description => 'Use [`transaction_tracer.attributes.enabled`](#transaction_tracer-attributes-enabled) instead.'
1323
+ :description => 'If `true`, the agent won\'t sample the memory usage of the host process.'
1289
1324
  },
1290
- :'transaction_tracer.explain_threshold' => {
1291
- :default => 0.5,
1325
+ :disable_middleware_instrumentation => {
1326
+ :default => false,
1292
1327
  :public => true,
1293
- :type => Float,
1294
- :allowed_from_server => true,
1295
- :description => 'Threshold (in seconds) above which the agent will collect explain plans. Relevant only when [`explain_enabled`](#transaction_tracer.explain_enabled) is true.'
1328
+ :type => Boolean,
1329
+ :allowed_from_server => false,
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).'
1296
1331
  },
1297
- :'transaction_tracer.explain_enabled' => {
1298
- :default => true,
1332
+ :disable_net_http => {
1333
+ :default => false,
1299
1334
  :public => true,
1300
1335
  :type => Boolean,
1301
- :allowed_from_server => true,
1302
- :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.'
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.')
1303
1341
  },
1304
- :'transaction_tracer.stack_trace_threshold' => {
1305
- :default => 0.5,
1342
+ :disable_puma_rack => {
1343
+ :default => value_of(:disable_rack),
1344
+ :documentation_default => false,
1306
1345
  :public => true,
1307
- :type => Float,
1308
- :allowed_from_server => true,
1309
- :description => 'Specify a threshold in seconds. The agent includes stack traces in transaction trace nodes when the stack trace duration exceeds this threshold.'
1346
+ :type => Boolean,
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.')
1310
1351
  },
1311
- :'transaction_tracer.limit_segments' => {
1312
- :default => 4000,
1352
+ :disable_puma_rack_urlmap => {
1353
+ :default => value_of(:disable_rack_urlmap),
1354
+ :documentation_default => false,
1313
1355
  :public => true,
1314
- :type => Integer,
1315
- :allowed_from_server => true,
1316
- :description => 'Maximum number of transaction trace nodes to record in a single transaction trace.'
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.')
1317
1361
  },
1318
- :disable_sequel_instrumentation => {
1362
+ :disable_rack => {
1319
1363
  :default => false,
1320
1364
  :public => true,
1321
1365
  :type => Boolean,
1366
+ :dynamic_name => true,
1322
1367
  :allowed_from_server => false,
1323
- :description => 'If `true`, disables [Sequel instrumentation](/docs/agents/ruby-agent/frameworks/sequel-instrumentation).'
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.')
1324
1370
  },
1325
- :disable_database_instrumentation => {
1371
+ :disable_rack_urlmap => {
1326
1372
  :default => false,
1327
1373
  :public => true,
1328
1374
  :type => Boolean,
1375
+ :dynamic_name => true,
1329
1376
  :allowed_from_server => false,
1330
1377
  :deprecated => true,
1331
- :description => 'Use [`disable_sequel_instrumentation`](#disable_sequel_instrumentation) instead.'
1378
+ :description => deprecated_description(:'instrumentation.rack_urlmap', 'If `true`, prevents the agent from hooking into Rack::URLMap to install middleware tracing.')
1332
1379
  },
1333
- :disable_mongo => {
1380
+ :disable_rake => {
1334
1381
  :default => false,
1335
1382
  :public => true,
1336
1383
  :type => Boolean,
1337
1384
  :allowed_from_server => false,
1338
- :dynamic_name => true,
1339
1385
  :deprecated => true,
1340
- :description => deprecated_description(:'instrumentation.mongo', 'If `true`, the agent won\'t install [instrumentation for the Mongo gem](/docs/agents/ruby-agent/frameworks/mongo-instrumentation).')
1386
+ :description => deprecated_description(:'instrumentation.rake', 'If `true`, disables Rake instrumentation.')
1341
1387
  },
1342
1388
  :disable_redis => {
1343
1389
  :default => false,
@@ -1347,74 +1393,100 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
1347
1393
  :allowed_from_server => false,
1348
1394
  :description => deprecated_description(:'instrumentation.redis', 'If `true`, the agent won\'t install [instrumentation for Redis](/docs/agents/ruby-agent/frameworks/redis-instrumentation).')
1349
1395
  },
1350
- :disable_redis_instrumentation => {
1396
+ :disable_resque => {
1351
1397
  :default => false,
1352
- :public => false,
1398
+ :public => true,
1353
1399
  :type => Boolean,
1354
1400
  :deprecated => true,
1355
1401
  :allowed_from_server => false,
1356
- :description => deprecated_description(:'instrumentation.redis', 'Disables installation of Redis instrumentation. Standard key to use is disable_redis.')
1402
+ :description => deprecated_description(:'instrumentation.resque', 'If `true`, disables [Resque instrumentation](/docs/agents/ruby-agent/background-jobs/resque-instrumentation).')
1357
1403
  },
1358
- :'message_tracer.segment_parameters.enabled' => {
1359
- :default => true,
1404
+ :disable_samplers => {
1405
+ :default => false,
1360
1406
  :public => true,
1361
1407
  :type => Boolean,
1362
- :allowed_from_server => true,
1363
- :description => 'If `true`, the agent will collect metadata about messages and attach them as segment parameters.'
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).'
1364
1410
  },
1365
- :'slow_sql.enabled' => {
1366
- :default => value_of(:'transaction_tracer.enabled'),
1367
- :documentation_default => true,
1411
+ :disable_sequel_instrumentation => {
1412
+ :default => false,
1368
1413
  :public => true,
1369
1414
  :type => Boolean,
1370
- :allowed_from_server => true,
1371
- :description => 'If `true`, the agent collects [slow SQL queries](/docs/apm/applications-menu/monitoring/viewing-slow-query-details).'
1415
+ :allowed_from_server => false,
1416
+ :description => 'If `true`, disables [Sequel instrumentation](/docs/agents/ruby-agent/frameworks/sequel-instrumentation).'
1372
1417
  },
1373
- :'slow_sql.explain_threshold' => {
1374
- :default => value_of(:'transaction_tracer.explain_threshold'),
1375
- :documentation_default => 0.5,
1418
+ :disable_sidekiq => {
1419
+ :default => false,
1376
1420
  :public => true,
1377
- :type => Float,
1378
- :allowed_from_server => true,
1379
- :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.'
1421
+ :type => Boolean,
1422
+ :allowed_from_server => false,
1423
+ :description => 'If `true`, disables [Sidekiq instrumentation](/docs/agents/ruby-agent/background-jobs/sidekiq-instrumentation).'
1380
1424
  },
1381
- :'slow_sql.explain_enabled' => {
1382
- :default => value_of(:'transaction_tracer.explain_enabled'),
1383
- :documentation_default => true,
1425
+ :disable_sinatra => {
1426
+ :default => false,
1384
1427
  :public => true,
1385
1428
  :type => Boolean,
1386
- :allowed_from_server => true,
1387
- :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.'
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).')
1388
1432
  },
1389
- :'slow_sql.record_sql' => {
1390
- :default => value_of(:'transaction_tracer.record_sql'),
1391
- :documentation_default => 'obfuscated',
1433
+ :disable_sinatra_auto_middleware => {
1434
+ :default => false,
1392
1435
  :public => true,
1393
- :type => String,
1394
- :allowed_from_server => true,
1395
- :description => 'Defines an obfuscation level for slow SQL queries. Valid options are `obfuscated`, `raw`, or `none`).'
1436
+ :type => Boolean,
1437
+ :allowed_from_server => false,
1438
+ :description => <<-DESCRIPTION
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).
1440
+
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>
1455
+ DESCRIPTION
1396
1456
  },
1397
- :'slow_sql.use_longer_sql_id' => {
1457
+ :disable_typhoeus => {
1398
1458
  :default => false,
1399
1459
  :public => true,
1400
1460
  :type => Boolean,
1401
- :allowed_from_server => true,
1402
- :description => 'Generate a longer sql_id for slow SQL traces. sql_id is used for aggregation of similar queries.'
1461
+ :dynamic_name => true,
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.')
1403
1465
  },
1404
- :'mongo.capture_queries' => {
1405
- :default => true,
1466
+ :disable_view_instrumentation => {
1467
+ :default => false,
1406
1468
  :public => true,
1407
1469
  :type => Boolean,
1408
- :allowed_from_server => true,
1409
- :description => 'If `true`, the agent captures Mongo queries in transaction traces.'
1470
+ :allowed_from_server => false,
1471
+ :description => 'If `true`, disables view instrumentation.'
1410
1472
  },
1411
- :'mongo.obfuscate_queries' => {
1473
+ :disable_vm_sampler => {
1474
+ :default => false,
1475
+ :public => true,
1476
+ :type => Boolean,
1477
+ :dynamic_name => true,
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).'
1480
+ },
1481
+ # Distributed tracing
1482
+ :'distributed_tracing.enabled' => {
1412
1483
  :default => true,
1413
1484
  :public => true,
1414
1485
  :type => Boolean,
1415
1486
  :allowed_from_server => true,
1416
- :description => 'If `true`, the agent obfuscates Mongo queries in transaction traces.'
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.'
1417
1488
  },
1489
+ # Elasticsearch
1418
1490
  :'elasticsearch.capture_queries' => {
1419
1491
  :default => true,
1420
1492
  :public => true,
@@ -1429,550 +1501,535 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
1429
1501
  :allowed_from_server => true,
1430
1502
  :description => 'If `true`, the agent obfuscates Elasticsearch queries in transaction traces.'
1431
1503
  },
1432
- :'error_collector.enabled' => {
1504
+ # Heroku
1505
+ :'heroku.use_dyno_names' => {
1433
1506
  :default => true,
1434
1507
  :public => true,
1435
1508
  :type => Boolean,
1436
- :allowed_from_server => true,
1437
- :description => 'If `true`, the agent captures traced errors and error count metrics.'
1509
+ :allowed_from_server => false,
1510
+ :description => 'If `true`, the agent uses Heroku dyno names as the hostname.'
1438
1511
  },
1439
- :'error_collector.capture_attributes' => {
1440
- :default => true,
1512
+ :'heroku.dyno_name_prefixes_to_shorten' => {
1513
+ :default => %w[scheduler run],
1441
1514
  :public => true,
1442
- :type => Boolean,
1443
- :deprecated => true,
1515
+ :type => Array,
1444
1516
  :allowed_from_server => false,
1445
- :description => 'Use [`error_collector.attributes.enabled`](#error_collector-attributes-enabled) instead.'
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>).'
1446
1519
  },
1447
- :'error_collector.ignore_errors' => {
1448
- :default => 'ActionController::RoutingError,Sinatra::NotFound',
1520
+ # Infinite tracing
1521
+ :'infinite_tracing.trace_observer.host' => {
1522
+ :default => '',
1449
1523
  :public => true,
1450
1524
  :type => String,
1451
- :deprecated => true,
1452
- :allowed_from_server => true,
1453
- :dynamic_name => true,
1454
- :description => <<-DESCRIPTION
1455
- Use `error_collector.ignore_classes` instead. Specify a comma-delimited list of error classes that the agent should ignore.
1456
-
1457
- <Callout variant="caution">
1458
- 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.
1459
- </Callout>
1460
- DESCRIPTION
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."
1461
1531
  },
1462
- :'error_collector.ignore_classes' => {
1463
- :default => [],
1532
+ :'infinite_tracing.trace_observer.port' => {
1533
+ :default => 443,
1464
1534
  :public => true,
1465
- :type => Array,
1466
- :allowed_from_server => 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"
1539
+ },
1540
+ # Instrumentation
1541
+ :'instrumentation.active_support_logger' => {
1542
+ :default => instrumentation_value_from_boolean(:'application_logging.enabled'),
1543
+ :documentation_default => 'auto',
1467
1544
  :dynamic_name => true,
1468
- :description => <<-DESCRIPTION
1469
- A list of error classes that the agent should ignore.
1470
-
1471
- <Callout variant="caution">
1472
- This option can't be set via environment variable.
1473
- </Callout>
1474
- DESCRIPTION
1545
+ :public => true,
1546
+ :type => String,
1547
+ :allowed_from_server => false,
1548
+ :description => 'Controls auto-instrumentation of ActiveSupport::Logger at start up. May be one of [auto|prepend|chain|disabled].'
1475
1549
  },
1476
- :'error_collector.ignore_messages' => {
1477
- :default => {},
1550
+ :'instrumentation.bunny' => {
1551
+ :default => instrumentation_value_of(:disable_bunny),
1552
+ :documentation_default => 'auto',
1478
1553
  :public => true,
1479
- :type => Hash,
1480
- :allowed_from_server => true,
1554
+ :type => String,
1481
1555
  :dynamic_name => true,
1482
- :description => <<-DESCRIPTION
1483
- 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.
1484
-
1485
- <Callout variant="caution">
1486
- This option can't be set via environment variable.
1487
- </Callout>
1488
- DESCRIPTION
1556
+ :allowed_from_server => false,
1557
+ :description => 'Controls auto-instrumentation of bunny at start up. May be one of [auto|prepend|chain|disabled].'
1489
1558
  },
1490
- :'error_collector.ignore_status_codes' => {
1491
- :default => '',
1559
+ :'instrumentation.curb' => {
1560
+ :default => instrumentation_value_of(:disable_curb),
1561
+ :documentation_default => 'auto',
1492
1562
  :public => true,
1493
1563
  :type => String,
1494
- :allowed_from_server => true,
1495
1564
  :dynamic_name => true,
1496
- :description => 'A comma separated list of status codes, possibly including ranges. Errors associated with these status codes, where applicable, will be ignored.'
1565
+ :allowed_from_server => false,
1566
+ :description => 'Controls auto-instrumentation of Curb at start up. May be one of [auto|prepend|chain|disabled].'
1497
1567
  },
1498
- :'error_collector.expected_classes' => {
1499
- :default => [],
1568
+ :'instrumentation.delayed_job' => {
1569
+ :default => instrumentation_value_of(:disable_dj),
1570
+ :documentation_default => 'auto',
1500
1571
  :public => true,
1501
- :type => Array,
1502
- :allowed_from_server => true,
1572
+ :type => String,
1503
1573
  :dynamic_name => true,
1504
- :description => <<-DESCRIPTION
1505
- A list of error classes that the agent should treat as expected.
1506
-
1507
- <Callout variant="caution">
1508
- This option can't be set via environment variable.
1509
- </Callout>
1510
- DESCRIPTION
1574
+ :allowed_from_server => false,
1575
+ :description => 'Controls auto-instrumentation of Delayed Job at start up. May be one of [auto|prepend|chain|disabled].'
1511
1576
  },
1512
- :'error_collector.expected_messages' => {
1513
- :default => {},
1577
+ :'instrumentation.elasticsearch' => {
1578
+ :default => 'auto',
1514
1579
  :public => true,
1515
- :type => Hash,
1516
- :allowed_from_server => true,
1580
+ :type => String,
1517
1581
  :dynamic_name => true,
1518
- :description => <<-DESCRIPTION
1519
- 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.
1520
-
1521
- <Callout variant="caution">
1522
- This option can't be set via environment variable.
1523
- </Callout>
1524
- DESCRIPTION
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].'
1525
1584
  },
1526
- :'error_collector.expected_status_codes' => {
1527
- :default => '',
1528
- :public => true,
1585
+ :'instrumentation.excon' => {
1586
+ :default => instrumentation_value_of(:disable_excon),
1587
+ :documentation_default => 'enabled',
1588
+ :public => :true,
1529
1589
  :type => String,
1530
- :allowed_from_server => true,
1531
1590
  :dynamic_name => true,
1532
- :description => 'A comma separated list of status codes, possibly including ranges. Errors associated with these status codes, where applicable, will be treated as expected.'
1591
+ :allowed_from_server => false,
1592
+ :description => "Controls auto-instrumentation of Excon at start up. May be one of [enabled|disabled]."
1533
1593
  },
1534
- :'error_collector.max_backtrace_frames' => {
1535
- :default => 50,
1536
- :public => true,
1537
- :type => Integer,
1594
+ :'instrumentation.grape' => {
1595
+ :default => instrumentation_value_of(:disable_grape_instrumentation),
1596
+ :documentation_default => 'auto',
1597
+ :public => :true,
1598
+ :type => String,
1599
+ :dynamic_name => true,
1538
1600
  :allowed_from_server => false,
1539
- :description => 'Defines the maximum number of frames in an error backtrace. Backtraces over this amount are truncated at the beginning and end.'
1601
+ :description => "Controls auto-instrumentation of Grape at start up. May be one of [auto|prepend|chain|disabled]."
1540
1602
  },
1541
- :'error_collector.capture_events' => {
1542
- :default => value_of(:'error_collector.enabled'),
1543
- :documentation_default => true,
1603
+ :'instrumentation.grpc_client' => {
1604
+ :default => instrumentation_value_of(:disable_grpc_client),
1605
+ :documentation_default => 'auto',
1544
1606
  :public => true,
1545
- :type => Boolean,
1546
- :allowed_from_server => true,
1607
+ :type => String,
1547
1608
  :dynamic_name => true,
1548
- :description => 'If `true`, the agent collects [TransactionError events](/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights).'
1609
+ :allowed_from_server => false,
1610
+ :description => 'Controls auto-instrumentation of gRPC clients at start up. May be one of [auto|prepend|chain|disabled].'
1549
1611
  },
1550
- :'error_collector.max_event_samples_stored' => {
1551
- :default => 100,
1612
+ :'instrumentation.grpc.host_denylist' => {
1613
+ :default => [],
1552
1614
  :public => true,
1553
- :type => Integer,
1554
- :allowed_from_server => true,
1555
- :description => 'Defines the maximum number of [TransactionError events](/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights) reported per harvest cycle.'
1556
- },
1557
- :'rum.enabled' => {
1558
- :default => true,
1559
- :public => false,
1560
- :type => Boolean,
1561
- :allowed_from_server => true,
1562
- :description => 'Enable or disable page load timing (sometimes referred to as real user monitoring or RUM).'
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.*")
1563
1619
  },
1564
- :browser_key => {
1565
- :default => '',
1566
- :public => false,
1620
+ :'instrumentation.grpc_server' => {
1621
+ :default => instrumentation_value_of(:disable_grpc_server),
1622
+ :documentation_default => 'auto',
1623
+ :public => true,
1567
1624
  :type => String,
1568
- :allowed_from_server => true,
1569
- :description => 'Real user monitoring license key for the browser timing header.'
1625
+ :dynamic_name => true,
1626
+ :allowed_from_server => false,
1627
+ :description => 'Controls auto-instrumentation of gRPC servers at start up. May be one of [auto|prepend|chain|disabled].'
1570
1628
  },
1571
- :beacon => {
1572
- :default => '',
1573
- :public => false,
1629
+ :'instrumentation.httpclient' => {
1630
+ :default => instrumentation_value_of(:disable_httpclient),
1631
+ :documentation_default => 'auto',
1632
+ :public => true,
1574
1633
  :type => String,
1575
- :allowed_from_server => true,
1576
- :description => 'Beacon for real user monitoring.'
1634
+ :dynamic_name => true,
1635
+ :allowed_from_server => false,
1636
+ :description => "Controls auto-instrumentation of HTTPClient at start up. May be one of [auto|prepend|chain|disabled]."
1577
1637
  },
1578
- :error_beacon => {
1579
- :default => '',
1580
- :public => false,
1581
- :type => String,
1582
- :allowed_from_server => true,
1583
- :description => 'Error beacon for real user monitoring.'
1638
+ :'instrumentation.httprb' => {
1639
+ :default => instrumentation_value_of(:disable_httprb),
1640
+ :documentation_default => 'auto',
1641
+ :public => true,
1642
+ :type => String,
1643
+ :dynamic_name => true,
1644
+ :allowed_from_server => false,
1645
+ :description => 'Controls auto-instrumentation of http.rb gem at start up. May be one of [auto|prepend|chain|disabled].'
1584
1646
  },
1585
- :application_id => {
1586
- :default => '',
1587
- :public => false,
1647
+ :'instrumentation.logger' => {
1648
+ :default => instrumentation_value_from_boolean(:'application_logging.enabled'),
1649
+ :documentation_default => 'auto',
1650
+ :public => true,
1588
1651
  :type => String,
1589
- :allowed_from_server => true,
1590
- :description => 'Application ID for real user monitoring.'
1652
+ :dynamic_name => true,
1653
+ :allowed_from_server => false,
1654
+ :description => 'Controls auto-instrumentation of Ruby standard library Logger at start up. May be one of [auto|prepend|chain|disabled].'
1591
1655
  },
1592
- :js_agent_file => {
1593
- :default => '',
1594
- :public => false,
1656
+ :'instrumentation.memcache' => {
1657
+ :default => instrumentation_value_of(:disable_dalli),
1658
+ :documentation_default => 'auto',
1659
+ :public => true,
1595
1660
  :type => String,
1596
- :allowed_from_server => true,
1597
- :description => 'JavaScript agent file for real user monitoring.'
1661
+ :dynamic_name => true,
1662
+ :allowed_from_server => false,
1663
+ :description => 'Controls auto-instrumentation of dalli gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
1598
1664
  },
1599
- :'browser_monitoring.auto_instrument' => {
1600
- :default => value_of(:'rum.enabled'),
1601
- :documentation_default => true,
1665
+ :'instrumentation.memcached' => {
1666
+ :default => instrumentation_value_of(:disable_memcached),
1667
+ :documentation_default => 'auto',
1602
1668
  :public => true,
1603
- :type => Boolean,
1604
- :allowed_from_server => true,
1605
- :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).'
1669
+ :type => String,
1670
+ :dynamic_name => true,
1671
+ :allowed_from_server => false,
1672
+ :description => 'Controls auto-instrumentation of memcached gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
1606
1673
  },
1607
- :'browser_monitoring.capture_attributes' => {
1608
- :default => false,
1674
+ :'instrumentation.memcache_client' => {
1675
+ :default => instrumentation_value_of(:disable_memcache_client),
1676
+ :documentation_default => 'auto',
1609
1677
  :public => true,
1610
- :type => Boolean,
1611
- :deprecated => true,
1678
+ :type => String,
1679
+ :dynamic_name => true,
1612
1680
  :allowed_from_server => false,
1613
- :description => 'Use [`browser_monitoring.attributes.enabled`](#browser_monitoring-attributes-enabled) instead.'
1681
+ :description => 'Controls auto-instrumentation of memcache-client gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
1614
1682
  },
1615
- :'browser_monitoring.loader' => {
1616
- :default => DefaultSource.browser_monitoring_loader,
1617
- :public => false,
1683
+ :'instrumentation.mongo' => {
1684
+ :default => instrumentation_value_of(:disable_mongo),
1685
+ :documentation_default => 'enabled',
1686
+ :public => :true,
1618
1687
  :type => String,
1619
- :allowed_from_server => true,
1620
- :description => 'Type of JavaScript agent loader to use for browser monitoring instrumentation.'
1688
+ :dynamic_name => true,
1689
+ :allowed_from_server => false,
1690
+ :description => "Controls auto-instrumentation of Mongo at start up. May be one of [enabled|disabled]."
1621
1691
  },
1622
- :'browser_monitoring.loader_version' => {
1623
- :default => '',
1624
- :public => false,
1692
+ :'instrumentation.net_http' => {
1693
+ :default => instrumentation_value_of(:disable_net_http, :prepend_net_instrumentation),
1694
+ :documentation_default => 'auto',
1695
+ :public => true,
1625
1696
  :type => String,
1626
- :allowed_from_server => true,
1627
- :description => 'Version of JavaScript agent loader (returned from the New Relic [collector](/docs/apm/new-relic-apm/getting-started/glossary#collector).)'
1697
+ :dynamic_name => true,
1698
+ :allowed_from_server => false,
1699
+ :description => "Controls auto-instrumentation of Net::HTTP at start up. May be one of [auto|prepend|chain|disabled]."
1628
1700
  },
1629
- :'browser_monitoring.debug' => {
1630
- :default => false,
1631
- :public => false,
1632
- :type => Boolean,
1633
- :allowed_from_server => true,
1634
- :description => 'Enable or disable debugging version of JavaScript agent loader for browser monitoring instrumentation.'
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',
1704
+ :public => true,
1705
+ :type => String,
1706
+ :dynamic_name => true,
1707
+ :allowed_from_server => false,
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]."
1635
1711
  },
1636
- :'browser_monitoring.ssl_for_http' => {
1637
- :default => nil,
1638
- :allow_nil => true,
1639
- :public => false,
1640
- :type => Boolean,
1641
- :allowed_from_server => true,
1642
- :description => 'Enable or disable HTTPS instrumentation by JavaScript agent on HTTP pages.'
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',
1715
+ :public => true,
1716
+ :type => String,
1717
+ :dynamic_name => true,
1718
+ :allowed_from_server => false,
1719
+ :description => 'Controls auto-instrumentation of Puma::Rack::URLMap at start up. May be one of [auto|prepend|chain|disabled].'
1643
1720
  },
1644
- :js_agent_loader => {
1645
- :default => '',
1646
- :public => false,
1721
+ :'instrumentation.rack' => {
1722
+ :default => instrumentation_value_of(:disable_rack),
1723
+ :documentation_default => 'auto',
1724
+ :public => true,
1647
1725
  :type => String,
1648
- :allowed_from_server => true,
1649
- :description => 'JavaScript agent loader content.'
1726
+ :dynamic_name => true,
1727
+ :allowed_from_server => false,
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]."
1650
1731
  },
1651
- :js_errors_beta => {
1652
- :default => false,
1653
- :public => false,
1654
- :type => Boolean,
1732
+ :'instrumentation.rack_urlmap' => {
1733
+ :default => instrumentation_value_of(:disable_rack_urlmap),
1734
+ :documentation_default => 'auto',
1735
+ :public => true,
1736
+ :type => String,
1737
+ :dynamic_name => true,
1655
1738
  :allowed_from_server => false,
1656
- :deprecated => true,
1657
- :description => 'Enable or disable beta JavaScript error reporting.'
1739
+ :description => 'Controls auto-instrumentation of Rack::URLMap at start up. May be one of [auto|prepend|chain|disabled].'
1658
1740
  },
1659
- :trusted_account_ids => {
1660
- :default => [],
1661
- :public => false,
1662
- :type => Array,
1663
- :allowed_from_server => true,
1664
- :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.'
1741
+ :'instrumentation.rake' => {
1742
+ :default => instrumentation_value_of(:disable_rake),
1743
+ :documentation_default => 'auto',
1744
+ :public => :true,
1745
+ :type => String,
1746
+ :dynamic_name => true,
1747
+ :allowed_from_server => false,
1748
+ :description => "Controls auto-instrumentation of rake at start up. May be one of [auto|prepend|chain|disabled]."
1665
1749
  },
1666
- :"cross_application_tracer.enabled" => {
1667
- :default => false,
1750
+ :'instrumentation.redis' => {
1751
+ :default => instrumentation_value_of(:disable_redis),
1752
+ :documentation_default => 'auto',
1668
1753
  :public => true,
1669
- :type => Boolean,
1670
- :allowed_from_server => true,
1671
- :deprecated => true,
1672
- :description => deprecated_description(
1673
- :'distributed_tracing-enabled',
1674
- 'If `true`, enables [cross-application tracing](/docs/agents/ruby-agent/features/cross-application-tracing-ruby/) when `distributed_tracing.enabled` is set to `false`.'
1675
- )
1754
+ :type => String,
1755
+ :dynamic_name => true,
1756
+ :allowed_from_server => false,
1757
+ :description => "Controls auto-instrumentation of Redis at start up. May be one of [auto|prepend|chain|disabled]."
1676
1758
  },
1677
- :cross_application_tracing => {
1678
- :default => nil,
1679
- :allow_nil => true,
1680
- :public => false,
1681
- :type => Boolean,
1759
+ :'instrumentation.resque' => {
1760
+ :default => instrumentation_value_of(:disable_resque),
1761
+ :documentation_default => 'auto',
1762
+ :public => true,
1763
+ :type => String,
1764
+ :dynamic_name => true,
1682
1765
  :allowed_from_server => false,
1683
- :deprecated => true,
1684
- :description => 'Deprecated in favor of distributed_tracing.enabled'
1766
+ :description => "Controls auto-instrumentation of resque at start up. May be one of [auto|prepend|chain|disabled]."
1685
1767
  },
1686
- :encoding_key => {
1687
- :default => '',
1688
- :public => false,
1768
+ :'instrumentation.sinatra' => {
1769
+ :default => instrumentation_value_of(:disable_sinatra),
1770
+ :documentation_default => 'auto',
1771
+ :public => :true,
1689
1772
  :type => String,
1690
- :allowed_from_server => true,
1691
- :description => 'Encoding key for cross-application tracing.'
1773
+ :dynamic_name => true,
1774
+ :allowed_from_server => false,
1775
+ :description => "Controls auto-instrumentation of Sinatra at start up. May be one of [auto|prepend|chain|disabled]."
1692
1776
  },
1693
- :cross_process_id => {
1694
- :default => '',
1695
- :public => false,
1777
+ :'instrumentation.thread' => {
1778
+ :default => 'auto',
1779
+ :public => true,
1696
1780
  :type => String,
1697
- :allowed_from_server => true,
1698
- :description => 'Cross process ID for cross-application tracing.'
1781
+ :dynamic_name => true,
1782
+ :allowed_from_server => false,
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]."
1699
1784
  },
1700
- :'thread_profiler.enabled' => {
1701
- :default => DefaultSource.thread_profiler_enabled,
1702
- :documentation_default => false,
1785
+ :'instrumentation.thread.tracing' => {
1786
+ :default => false,
1703
1787
  :public => true,
1704
1788
  :type => Boolean,
1705
- :allowed_from_server => true,
1706
- :description => 'If `true`, enables use of the [thread profiler](/docs/apm/applications-menu/events/thread-profiler-tool).'
1789
+ :allowed_from_server => false,
1790
+ :description => "Controls auto-instrumentation of the Thread class at start up to automatically add tracing to all Threads created in the application."
1707
1791
  },
1708
- :'thread_profiler.max_profile_overhead' => {
1709
- :default => 0.05,
1710
- :public => false,
1711
- :type => Float,
1712
- :allowed_from_server => true,
1713
- :description => 'Maximum overhead percentage for thread profiling before agent reduces polling frequency'
1792
+ :'instrumentation.tilt' => {
1793
+ :default => "auto",
1794
+ :public => true,
1795
+ :type => String,
1796
+ :dynamic_name => true,
1797
+ :allowed_from_server => false,
1798
+ :description => 'Controls auto-instrumentation of the Tilt template rendering library at start up. May be one of [auto|prepend|chain|disabled].'
1714
1799
  },
1715
- :marshaller => {
1716
- :default => 'json',
1800
+ :'instrumentation.typhoeus' => {
1801
+ :default => instrumentation_value_of(:disable_typhoeus),
1802
+ :documentation_default => 'auto',
1717
1803
  :public => true,
1718
1804
  :type => String,
1805
+ :dynamic_name => true,
1719
1806
  :allowed_from_server => false,
1720
- :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.'
1807
+ :description => "Controls auto-instrumentation of Typhoeus at start up. May be one of [auto|prepend|chain|disabled]."
1721
1808
  },
1722
- :'analytics_events.enabled' => {
1809
+ # Message tracer
1810
+ :'message_tracer.segment_parameters.enabled' => {
1723
1811
  :default => true,
1724
1812
  :public => true,
1725
1813
  :type => Boolean,
1726
- :deprecated => true,
1727
1814
  :allowed_from_server => true,
1728
- :description => deprecated_description(:'transaction_events.enabled', 'If `true`, enables analytics event sampling.')
1815
+ :description => 'If `true`, the agent will collect metadata about messages and attach them as segment parameters.'
1729
1816
  },
1730
- :'analytics_events.max_samples_stored' => {
1731
- :default => 1200,
1817
+ # Mongo
1818
+ :'mongo.capture_queries' => {
1819
+ :default => true,
1732
1820
  :public => true,
1733
- :type => Integer,
1734
- :deprecated => true,
1821
+ :type => Boolean,
1735
1822
  :allowed_from_server => true,
1736
- :description => deprecated_description(:'transaction_events.max_samples_stored', 'Defines the maximum number of request events reported from a single harvest.')
1823
+ :description => 'If `true`, the agent captures Mongo queries in transaction traces.'
1737
1824
  },
1738
- :'transaction_events.enabled' => {
1739
- :default => value_of(:'analytics_events.enabled'),
1740
- :documentation_default => true,
1825
+ :'mongo.obfuscate_queries' => {
1826
+ :default => true,
1741
1827
  :public => true,
1742
1828
  :type => Boolean,
1743
1829
  :allowed_from_server => true,
1744
- :description => 'If `true`, enables transaction event sampling.'
1830
+ :description => 'If `true`, the agent obfuscates Mongo queries in transaction traces.'
1745
1831
  },
1746
- :'transaction_events.max_samples_stored' => {
1747
- :default => value_of(:'analytics_events.max_samples_stored'),
1748
- :documentation_default => 1200,
1749
- :public => true,
1750
- :type => Integer,
1751
- :allowed_from_server => true,
1752
- :description => 'Defines the maximum number of transaction events reported from a single harvest.'
1753
- },
1754
- :'analytics_events.capture_attributes' => {
1755
- :default => true,
1832
+ # Process host
1833
+ :'process_host.display_name' => {
1834
+ :default => proc { NewRelic::Agent::Hostname.get },
1756
1835
  :public => true,
1757
- :type => Boolean,
1758
- :deprecated => true,
1759
- :allowed_from_server => false,
1760
- :description => 'Use [`transaction_events.attributes.enabled`](#transaction_events-attributes-enabled) instead.'
1761
- },
1762
- :restart_thread_in_children => {
1763
- :default => true,
1764
- :public => false,
1765
- :type => Boolean,
1766
- :allowed_from_server => false,
1767
- :description => 'Controls whether to check on running a transaction whether to respawn the harvest thread.'
1768
- },
1769
- :normalize_json_string_encodings => {
1770
- :default => true,
1771
- :public => false,
1772
- :type => Boolean,
1836
+ :type => String,
1773
1837
  :allowed_from_server => false,
1774
- :description => 'Controls whether to normalize string encodings prior to serializing data for the collector to JSON.'
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).'
1775
1839
  },
1776
- :backport_fast_active_record_connection_lookup => {
1777
- :default => false,
1840
+ # Rake
1841
+ :'rake.tasks' => {
1842
+ :default => [],
1778
1843
  :public => true,
1779
- :type => Boolean,
1844
+ :type => Array,
1780
1845
  :allowed_from_server => false,
1781
- :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.'
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].'
1782
1852
  },
1783
- :disable_vm_sampler => {
1784
- :default => false,
1853
+ :'rake.connect_timeout' => {
1854
+ :default => 10,
1785
1855
  :public => true,
1786
- :type => Boolean,
1787
- :dynamic_name => true,
1856
+ :type => Integer,
1788
1857
  :allowed_from_server => false,
1789
- :description => 'If `true`, the agent won\'t [sample performance measurements from the Ruby VM](/docs/agents/ruby-agent/features/ruby-vm-measurements).'
1858
+ :description => 'Timeout for waiting on connect to complete before a rake task'
1790
1859
  },
1791
- :disable_memory_sampler => {
1860
+ # Resque
1861
+ :'resque.capture_params' => {
1792
1862
  :default => false,
1793
1863
  :public => true,
1794
1864
  :type => Boolean,
1795
- :dynamic_name => true,
1796
1865
  :allowed_from_server => false,
1797
- :description => 'If `true`, the agent won\'t sample the memory usage of the host process.'
1798
- },
1799
- :disable_cpu_sampler => {
1800
- :default => false,
1801
- :public => true,
1802
- :type => Boolean,
1803
1866
  :dynamic_name => true,
1804
- :allowed_from_server => false,
1805
- :description => 'If `true`, the agent won\'t sample the CPU usage of the host process.'
1867
+ :deprecated => true,
1868
+ :description => 'If `true`, enables the capture of job arguments for transaction traces and traced errors in Resque.'
1806
1869
  },
1807
- :disable_delayed_job_sampler => {
1808
- :default => false,
1870
+ # Rules
1871
+ :'rules.ignore_url_regexes' => {
1872
+ :default => [],
1809
1873
  :public => true,
1810
- :type => Boolean,
1811
- :dynamic_name => true,
1812
- :allowed_from_server => false,
1813
- :description => 'If `true`, the agent won\'t measure the depth of Delayed Job queues.'
1874
+ :type => Array,
1875
+ :allowed_from_server => true,
1876
+ :transform => DefaultSource.method(:convert_to_regexp_list),
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.'
1814
1878
  },
1815
- :disable_active_record_notifications => {
1879
+ # Sidekiq
1880
+ :'sidekiq.capture_params' => {
1816
1881
  :default => false,
1817
1882
  :public => true,
1818
1883
  :type => Boolean,
1819
- :dynamic_name => true,
1820
1884
  :allowed_from_server => false,
1821
- :description => 'If `true`, disables instrumentation for ActiveRecord 4, 5, and 6.'
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.'
1822
1888
  },
1823
- :disable_bunny => {
1824
- :default => false,
1889
+ # Slow SQL
1890
+ :'slow_sql.enabled' => {
1891
+ :default => value_of(:'transaction_tracer.enabled'),
1892
+ :documentation_default => true,
1825
1893
  :public => true,
1826
1894
  :type => Boolean,
1827
- :deprecated => true,
1828
- :dynamic_name => true,
1829
- :allowed_from_server => false,
1830
- :description => deprecated_description(:'instrumentation.bunny', 'If `true`, disables instrumentation for the bunny gem.')
1895
+ :allowed_from_server => true,
1896
+ :description => 'If `true`, the agent collects [slow SQL queries](/docs/apm/applications-menu/monitoring/viewing-slow-query-details).'
1831
1897
  },
1832
- :disable_curb => {
1833
- :default => false,
1898
+ :'slow_sql.explain_threshold' => {
1899
+ :default => value_of(:'transaction_tracer.explain_threshold'),
1900
+ :documentation_default => 0.5,
1834
1901
  :public => true,
1835
- :type => Boolean,
1836
- :deprecated => true,
1837
- :dynamic_name => true,
1838
- :allowed_from_server => false,
1839
- :description => deprecated_description(:'instrumentation.curb', 'If `true`, disables instrumentation for the curb gem.')
1902
+ :type => Float,
1903
+ :allowed_from_server => true,
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.'
1840
1905
  },
1841
- :disable_excon => {
1842
- :default => false,
1906
+ :'slow_sql.explain_enabled' => {
1907
+ :default => value_of(:'transaction_tracer.explain_enabled'),
1908
+ :documentation_default => true,
1843
1909
  :public => true,
1844
1910
  :type => Boolean,
1845
- :dynamic_name => true,
1846
- :deprecated => true,
1847
- :allowed_from_server => false,
1848
- :description => deprecated_description(:'instrumentation.excon', 'If `true`, disables instrumentation for the excon gem.')
1911
+ :allowed_from_server => true,
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.'
1849
1913
  },
1850
- :'instrumentation.excon' => {
1851
- :default => instrumentation_value_of(:disable_excon),
1852
- :documentation_default => 'enabled',
1853
- :public => :true,
1914
+ :'slow_sql.record_sql' => {
1915
+ :default => value_of(:'transaction_tracer.record_sql'),
1916
+ :documentation_default => 'obfuscated',
1917
+ :public => true,
1854
1918
  :type => String,
1855
- :dynamic_name => true,
1856
- :allowed_from_server => false,
1857
- :description => "Controls auto-instrumentation of Excon at start up. May be one of [enabled|disabled]."
1919
+ :allowed_from_server => true,
1920
+ :description => 'Defines an obfuscation level for slow SQL queries. Valid options are `obfuscated`, `raw`, or `none`).'
1858
1921
  },
1859
- :disable_httpclient => {
1922
+ :'slow_sql.use_longer_sql_id' => {
1860
1923
  :default => false,
1861
1924
  :public => true,
1862
1925
  :type => Boolean,
1863
- :dynamic_name => true,
1864
- :deprecated => true,
1865
- :allowed_from_server => false,
1866
- :description => deprecated_description(:'instrumentation.httpclient', 'If `true`, disables instrumentation for the httpclient gem.')
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.'
1867
1928
  },
1868
- :disable_net_http => {
1869
- :default => false,
1929
+ # Span events
1930
+ :'span_events.enabled' => {
1931
+ :default => true,
1870
1932
  :public => true,
1871
1933
  :type => Boolean,
1872
- :dynamic_name => true,
1873
- :allowed_from_server => false,
1874
- :deprecated => true,
1875
- :description => deprecated_description(:'instrumentation.net_http',
1876
- 'If `true`, disables instrumentation for Net::HTTP.')
1934
+ :allowed_from_server => true,
1935
+ :description => 'If `true`, enables span event sampling.'
1877
1936
  },
1878
- :disable_rack => {
1879
- :default => false,
1937
+ :'span_events.queue_size' => {
1938
+ :default => 10_000,
1880
1939
  :public => true,
1881
- :type => Boolean,
1882
- :dynamic_name => true,
1940
+ :type => Integer,
1883
1941
  :allowed_from_server => false,
1884
- :deprecated => true,
1885
- :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.')
1942
+ :external => :infinite_tracing,
1943
+ :description => "Sets the maximum number of span events to buffer when streaming to the trace observer."
1886
1944
  },
1887
- :disable_rack_urlmap => {
1888
- :default => false,
1945
+ :'span_events.max_samples_stored' => {
1946
+ :default => 2000,
1889
1947
  :public => true,
1890
- :type => Boolean,
1891
- :dynamic_name => true,
1892
- :allowed_from_server => false,
1893
- :deprecated => true,
1894
- :description => deprecated_description(:'instrumentation.rack_urlmap', 'If `true`, prevents the agent from hooking into Rack::URLMap to install middleware tracing.')
1948
+ :type => Integer,
1949
+ :allowed_from_server => true,
1950
+ :description => 'Defines the maximum number of span events reported from a single harvest. Any Integer between 1 and 10000 is valid.'
1895
1951
  },
1896
- :disable_puma_rack => {
1897
- :default => value_of(:disable_rack),
1952
+ # Strip exception messages
1953
+ :'strip_exception_messages.enabled' => {
1954
+ :default => value_of(:high_security),
1898
1955
  :documentation_default => false,
1899
1956
  :public => true,
1900
1957
  :type => Boolean,
1901
- :dynamic_name => true,
1902
1958
  :allowed_from_server => false,
1903
- :deprecated => true,
1904
- :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.')
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).'
1905
1960
  },
1906
- :disable_puma_rack_urlmap => {
1907
- :default => value_of(:disable_rack_urlmap),
1908
- :documentation_default => false,
1961
+ :'strip_exception_messages.allowed_classes' => {
1962
+ :default => '',
1909
1963
  :public => true,
1910
- :type => Boolean,
1911
- :dynamic_name => true,
1964
+ :type => String,
1912
1965
  :allowed_from_server => false,
1913
- :deprecated => true,
1914
- :description => deprecated_description(:'instrumentation.puma_rack_urlmap', 'If `true`, prevents the agent from hooking into Puma::Rack::URLMap to install middleware tracing.')
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"`.'
1915
1968
  },
1916
- :disable_typhoeus => {
1917
- :default => false,
1969
+ # Thread profiler
1970
+ :'thread_profiler.enabled' => {
1971
+ :default => DefaultSource.thread_profiler_enabled,
1972
+ :documentation_default => false,
1918
1973
  :public => true,
1919
1974
  :type => Boolean,
1920
- :dynamic_name => true,
1921
- :deprecated => true,
1922
- :allowed_from_server => false,
1923
- :description => deprecated_description(:'instrumentation.typhoeus', 'If `true`, the agent won\'t install instrumentation for the typhoeus gem.')
1975
+ :allowed_from_server => true,
1976
+ :description => 'If `true`, enables use of the [thread profiler](/docs/apm/applications-menu/events/thread-profiler-tool).'
1924
1977
  },
1925
- :disable_httprb => {
1926
- :default => false,
1978
+ # Utilization
1979
+ :'utilization.detect_aws' => {
1980
+ :default => true,
1927
1981
  :public => true,
1928
1982
  :type => Boolean,
1929
- :dynamic_name => true,
1930
- :deprecated => true,
1931
1983
  :allowed_from_server => false,
1932
- :description => deprecated_description(:'instrumentation.httprb', 'If `true`, the agent won\'t install instrumentation for the http.rb gem.')
1984
+ :dynamic_name => true,
1985
+ :description => 'If `true`, the agent automatically detects that it is running in an AWS environment.'
1933
1986
  },
1934
- :disable_middleware_instrumentation => {
1935
- :default => false,
1987
+ :'utilization.detect_azure' => {
1988
+ :default => true,
1936
1989
  :public => true,
1937
1990
  :type => Boolean,
1938
1991
  :allowed_from_server => false,
1939
- :description => 'If `true`, the agent won\'t wrap third-party middlewares in instrumentation (regardless of whether they are installed via Rack::Builder or Rails).'
1992
+ :dynamic_name => true,
1993
+ :description => 'If `true`, the agent automatically detects that it is running in an Azure environment.'
1940
1994
  },
1941
- :disable_rails_middleware => {
1942
- :default => false,
1943
- :public => false,
1995
+ :'utilization.detect_docker' => {
1996
+ :default => true,
1997
+ :public => true,
1944
1998
  :type => Boolean,
1945
1999
  :allowed_from_server => false,
1946
- :description => 'Internal name for controlling Rails 3+ middleware instrumentation'
2000
+ :description => 'If `true`, the agent automatically detects that it is running in Docker.'
1947
2001
  },
1948
- :'heroku.use_dyno_names' => {
2002
+ :'utilization.detect_gcp' => {
1949
2003
  :default => true,
1950
2004
  :public => true,
1951
2005
  :type => Boolean,
1952
2006
  :allowed_from_server => false,
1953
- :description => 'If `true`, the agent uses Heroku dyno names as the hostname.'
2007
+ :dynamic_name => true,
2008
+ :description => 'If `true`, the agent automatically detects that it is running in an Google Cloud Platform environment.'
1954
2009
  },
1955
- :'heroku.dyno_name_prefixes_to_shorten' => {
1956
- :default => %w[scheduler run],
2010
+ :'utilization.detect_kubernetes' => {
2011
+ :default => true,
1957
2012
  :public => true,
1958
- :type => Array,
2013
+ :type => Boolean,
1959
2014
  :allowed_from_server => false,
1960
- :transform => DefaultSource.method(:convert_to_list),
1961
- :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>).'
2015
+ :description => 'If `true`, the agent automatically detects that it is running in Kubernetes.'
1962
2016
  },
1963
- :'process_host.display_name' => {
1964
- :default => proc { NewRelic::Agent::Hostname.get },
2017
+ :'utilization.detect_pcf' => {
2018
+ :default => true,
1965
2019
  :public => true,
1966
- :type => String,
2020
+ :type => Boolean,
1967
2021
  :allowed_from_server => false,
1968
- :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).'
2022
+ :dynamic_name => true,
2023
+ :description => 'If `true`, the agent automatically detects that it is running in a Pivotal Cloud Foundry environment.'
1969
2024
  },
1970
- :labels => {
1971
- :default => '',
1972
- :public => true,
2025
+ # Private
2026
+ :account_id => {
2027
+ :default => nil,
2028
+ :allow_nil => true,
2029
+ :public => false,
1973
2030
  :type => String,
1974
- :allowed_from_server => false,
1975
- :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>`.'
2031
+ :allowed_from_server => true,
2032
+ :description => 'The account id associated with your application.'
1976
2033
  },
1977
2034
  :aggressive_keepalive => {
1978
2035
  :default => true,
@@ -1981,431 +2038,387 @@ A map of error classes to a list of messages. When an error of one of the classe
1981
2038
  :allowed_from_server => true,
1982
2039
  :description => 'If true, attempt to keep the TCP connection to the collector alive between harvests.'
1983
2040
  },
1984
- :keep_alive_timeout => {
1985
- :default => 60,
2041
+ :api_host => {
2042
+ :default => DefaultSource.api_host,
1986
2043
  :public => false,
1987
- :type => Integer,
1988
- :allowed_from_server => true,
1989
- :description => 'Timeout for keep alive on TCP connection to collector if supported by Ruby version. Only used in conjunction when aggressive_keepalive is enabled.'
1990
- },
1991
- :ca_bundle_path => {
1992
- :default => nil,
1993
- :allow_nil => true,
1994
- :public => true,
1995
2044
  :type => String,
1996
2045
  :allowed_from_server => false,
1997
- :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."
1998
- },
1999
- :'rules.ignore_url_regexes' => {
2000
- :default => [],
2001
- :public => true,
2002
- :type => Array,
2003
- :allowed_from_server => true,
2004
- :transform => DefaultSource.method(:convert_to_regexp_list),
2005
- :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.'
2046
+ :description => 'API host for New Relic.'
2006
2047
  },
2007
- :'synthetics.traces_limit' => {
2008
- :default => 20,
2048
+ :api_port => {
2049
+ :default => value_of(:port),
2009
2050
  :public => false,
2010
2051
  :type => Integer,
2011
- :allowed_from_server => true,
2012
- :description => 'Maximum number of synthetics transaction traces to hold for a given harvest'
2052
+ :allowed_from_server => false,
2053
+ :description => 'Port for the New Relic API host.'
2013
2054
  },
2014
- :'synthetics.events_limit' => {
2015
- :default => 200,
2055
+ :application_id => {
2056
+ :default => '',
2016
2057
  :public => false,
2017
- :type => Integer,
2058
+ :type => String,
2018
2059
  :allowed_from_server => true,
2019
- :description => 'Maximum number of synthetics transaction events to hold for a given harvest'
2060
+ :description => 'Application ID for real user monitoring.'
2020
2061
  },
2021
- :'custom_insights_events.enabled' => {
2022
- :default => true,
2023
- :public => true,
2024
- :type => Boolean,
2062
+ :beacon => {
2063
+ :default => '',
2064
+ :public => false,
2065
+ :type => String,
2025
2066
  :allowed_from_server => true,
2026
- :description => 'If `true`, the agent captures [custom events](/docs/insights/new-relic-insights/adding-querying-data/inserting-custom-events-new-relic-apm-agents).'
2067
+ :description => 'Beacon for real user monitoring.'
2027
2068
  },
2028
- :'custom_insights_events.max_samples_stored' => {
2029
- :default => 3000,
2030
- :public => true,
2031
- :type => Integer,
2069
+ :browser_key => {
2070
+ :default => '',
2071
+ :public => false,
2072
+ :type => String,
2032
2073
  :allowed_from_server => true,
2033
- :description => 'Specify a maximum number of custom events to buffer in memory at a time.',
2034
- :dynamic_name => true
2035
- },
2036
- :'application_logging.enabled' => {
2037
- :default => true,
2038
- :public => true,
2039
- :type => Boolean,
2040
- :allowed_from_server => false,
2041
- :description => 'If `true`, enables log decoration and the collection of log events and metrics.'
2042
- },
2043
- :'application_logging.forwarding.enabled' => {
2044
- :default => true,
2045
- :public => true,
2046
- :type => Boolean,
2047
- :allowed_from_server => false,
2048
- :description => 'If `true`, the agent captures log records emitted by your application.'
2074
+ :description => 'Real user monitoring license key for the browser timing header.'
2049
2075
  },
2050
- :'application_logging.forwarding.max_samples_stored' => {
2051
- :default => 10000,
2052
- :public => true,
2053
- :type => Integer,
2076
+ :'browser_monitoring.loader' => {
2077
+ :default => DefaultSource.browser_monitoring_loader,
2078
+ :public => false,
2079
+ :type => String,
2054
2080
  :allowed_from_server => true,
2055
- :description => 'Defines the maximum number of log records to buffer in memory at a time.',
2056
- :dynamic_name => true
2081
+ :description => 'Type of JavaScript agent loader to use for browser monitoring instrumentation.'
2057
2082
  },
2058
- :'application_logging.metrics.enabled' => {
2059
- :default => true,
2060
- :public => true,
2061
- :type => Boolean,
2083
+ :'browser_monitoring.loader_version' => {
2084
+ :default => '',
2085
+ :public => false,
2086
+ :type => String,
2062
2087
  :allowed_from_server => true,
2063
- :description => 'If `true`, the agent captures metrics related to logging for your application.'
2088
+ :description => 'Version of JavaScript agent loader (returned from the New Relic [collector](/docs/apm/new-relic-apm/getting-started/glossary#collector).)'
2064
2089
  },
2065
- :'application_logging.local_decorating.enabled' => {
2090
+ :'browser_monitoring.debug' => {
2066
2091
  :default => false,
2067
- :public => true,
2092
+ :public => false,
2068
2093
  :type => Boolean,
2069
- :allowed_from_server => false,
2070
- :description => 'If `true`, the agent decorates logs with metadata to link to entities, hosts, traces, and spans.'
2094
+ :allowed_from_server => true,
2095
+ :description => 'Enable or disable debugging version of JavaScript agent loader for browser monitoring instrumentation.'
2071
2096
  },
2072
- :'code_level_metrics.enabled' => {
2073
- :default => true,
2074
- :public => true,
2097
+ :'browser_monitoring.ssl_for_http' => {
2098
+ :default => nil,
2099
+ :allow_nil => true,
2100
+ :public => false,
2075
2101
  :type => Boolean,
2076
2102
  :allowed_from_server => true,
2077
- :description => "If `true`, the agent will report source code level metrics for traced methods.\nsee: " \
2078
- 'https://docs.newrelic.com/docs/apm/agents/ruby-agent/features/ruby-codestream-integration/'
2103
+ :description => 'Enable or disable HTTPS instrumentation by JavaScript agent on HTTP pages.'
2079
2104
  },
2080
- :'instrumentation.active_support_logger' => {
2081
- :default => instrumentation_value_from_boolean(:'application_logging.enabled'),
2082
- :documentation_default => 'auto',
2083
- :dynamic_name => true,
2084
- :public => true,
2105
+ :compressed_content_encoding => {
2106
+ :default => 'gzip',
2107
+ :public => false,
2085
2108
  :type => String,
2086
2109
  :allowed_from_server => false,
2087
- :description => 'Controls auto-instrumentation of ActiveSupport::Logger at start up. May be one of [auto|prepend|chain|disabled].'
2110
+ :description => 'Encoding to use if data needs to be compressed. The options are deflate and gzip.'
2088
2111
  },
2089
- :disable_grape_instrumentation => {
2090
- :default => false,
2112
+ :config_search_paths => {
2113
+ :default => DefaultSource.config_search_paths,
2091
2114
  :public => false,
2092
- :type => Boolean,
2115
+ :type => Array,
2093
2116
  :allowed_from_server => false,
2094
- :deprecated => true,
2095
- :description => deprecated_description(:'instrumentation.grape',
2096
- 'If `true`, the agent won\'t install Grape instrumentation.')
2117
+ :description => "An array of candidate locations for the agent's configuration file."
2097
2118
  },
2098
- :disable_grape => {
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 => {
2099
2134
  :default => false,
2100
- :public => true,
2135
+ :public => false,
2101
2136
  :type => Boolean,
2102
2137
  :allowed_from_server => false,
2103
2138
  :deprecated => true,
2104
2139
  :description => deprecated_description(:'instrumentation.grape',
2105
2140
  'If `true`, the agent won\'t install Grape instrumentation.')
2106
2141
  },
2107
- :'instrumentation.grape' => {
2108
- :default => instrumentation_value_of(:disable_grape_instrumentation),
2109
- :documentation_default => 'auto',
2110
- :public => :true,
2111
- :type => String,
2112
- :dynamic_name => true,
2142
+ :dispatcher => {
2143
+ :default => DefaultSource.dispatcher,
2144
+ :public => false,
2145
+ :type => Symbol,
2113
2146
  :allowed_from_server => false,
2114
- :description => "Controls auto-instrumentation of Grape at start up. May be one of [auto|prepend|chain|disabled]."
2147
+ :description => 'Autodetected application component that reports metrics to New Relic.'
2115
2148
  },
2116
- :'attributes.enabled' => {
2117
- :default => true,
2118
- :public => true,
2149
+ :disable_harvest_thread => {
2150
+ :default => false,
2151
+ :public => false,
2119
2152
  :type => Boolean,
2120
2153
  :allowed_from_server => false,
2121
- :description => 'If `true`, enables capture of attributes for all destinations.'
2154
+ :description => 'Enable or disable the harvest thread.'
2122
2155
  },
2123
- :'transaction_tracer.attributes.enabled' => {
2124
- :default => value_of(:'transaction_tracer.capture_attributes'),
2125
- :documentation_default => true,
2126
- :public => true,
2156
+ :disable_rails_middleware => {
2157
+ :default => false,
2158
+ :public => false,
2127
2159
  :type => Boolean,
2128
2160
  :allowed_from_server => false,
2129
- :description => 'If `true`, the agent captures attributes from transaction traces.'
2161
+ :description => 'Internal name for controlling Rails 3+ middleware instrumentation'
2130
2162
  },
2131
- :'transaction_events.attributes.enabled' => {
2132
- :default => value_of(:'analytics_events.capture_attributes'),
2133
- :documentation_default => true,
2134
- :public => true,
2163
+ :disable_rake_instrumentation => {
2164
+ :default => false,
2165
+ :public => false,
2135
2166
  :type => Boolean,
2136
2167
  :allowed_from_server => false,
2137
- :description => 'If `true`, the agent captures attributes from transaction events.'
2168
+ :deprecated => true,
2169
+ :description => deprecated_description(:'instrumentation.rake', 'Enable or disable Rake instrumentation. Preferred key is `disable_rake`')
2138
2170
  },
2139
- :'error_collector.attributes.enabled' => {
2140
- :default => value_of(:'error_collector.capture_attributes'),
2141
- :documentation_default => true,
2142
- :public => true,
2171
+ :disable_redis_instrumentation => {
2172
+ :default => false,
2173
+ :public => false,
2143
2174
  :type => Boolean,
2175
+ :deprecated => true,
2144
2176
  :allowed_from_server => false,
2145
- :description => 'If `true`, the agent captures attributes from error collection.'
2177
+ :description => deprecated_description(:'instrumentation.redis', 'Disables installation of Redis instrumentation. Standard key to use is disable_redis.')
2146
2178
  },
2147
- :'browser_monitoring.attributes.enabled' => {
2148
- :default => value_of(:'browser_monitoring.capture_attributes'),
2149
- :documentation_default => false,
2150
- :public => true,
2179
+ :cross_application_tracing => {
2180
+ :default => nil,
2181
+ :allow_nil => true,
2182
+ :public => false,
2151
2183
  :type => Boolean,
2152
2184
  :allowed_from_server => false,
2153
- :description => 'If `true`, the agent captures attributes from browser monitoring.'
2185
+ :deprecated => true,
2186
+ :description => 'Deprecated in favor of distributed_tracing.enabled'
2154
2187
  },
2155
- :'span_events.attributes.enabled' => {
2188
+ :enabled => {
2156
2189
  :default => true,
2157
- :public => true,
2190
+ :public => false,
2158
2191
  :type => Boolean,
2192
+ :aliases => [:enable],
2159
2193
  :allowed_from_server => false,
2160
- :description => 'If `true`, the agent captures attributes on span events.'
2194
+ :description => 'Enable or disable the agent.'
2161
2195
  },
2162
- :'transaction_segments.attributes.enabled' => {
2163
- :default => true,
2164
- :public => true,
2165
- :type => Boolean,
2166
- :allowed_from_server => false,
2167
- :description => 'If `true`, the agent captures attributes on transaction segments.'
2196
+ :encoding_key => {
2197
+ :default => '',
2198
+ :public => false,
2199
+ :type => String,
2200
+ :allowed_from_server => true,
2201
+ :description => 'Encoding key for cross-application tracing.'
2168
2202
  },
2169
- :'attributes.exclude' => {
2170
- :default => [],
2171
- :public => true,
2172
- :type => Array,
2173
- :allowed_from_server => false,
2174
- :transform => DefaultSource.method(:convert_to_list),
2175
- :description => 'Prefix of attributes to exclude from all destinations. Allows `*` as wildcard at end.'
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.'
2176
2210
  },
2177
- :'transaction_tracer.attributes.exclude' => {
2178
- :default => [],
2179
- :public => true,
2180
- :type => Array,
2181
- :allowed_from_server => false,
2182
- :transform => DefaultSource.method(:convert_to_list),
2183
- :description => 'Prefix of attributes to exclude from transaction traces. Allows `*` as wildcard at end.'
2211
+ :error_beacon => {
2212
+ :default => '',
2213
+ :public => false,
2214
+ :type => String,
2215
+ :allowed_from_server => true,
2216
+ :description => 'Error beacon for real user monitoring.'
2184
2217
  },
2185
- :'transaction_events.attributes.exclude' => {
2186
- :default => [],
2187
- :public => true,
2188
- :type => Array,
2189
- :allowed_from_server => false,
2190
- :transform => DefaultSource.method(:convert_to_list),
2191
- :description => 'Prefix of attributes to exclude from transaction events. Allows `*` as wildcard at end.'
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.'
2192
2224
  },
2193
- :'error_collector.attributes.exclude' => {
2194
- :default => [],
2195
- :public => true,
2196
- :type => Array,
2197
- :allowed_from_server => false,
2198
- :transform => DefaultSource.method(:convert_to_list),
2199
- :description => 'Prefix of attributes to exclude from error collection. Allows `*` as wildcard at end.'
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.')
2200
2233
  },
2201
- :'browser_monitoring.attributes.exclude' => {
2202
- :default => [],
2203
- :public => true,
2204
- :type => Array,
2205
- :allowed_from_server => false,
2206
- :transform => DefaultSource.method(:convert_to_list),
2207
- :description => 'Prefix of attributes to exclude from browser monitoring. Allows `*` as wildcard at end.'
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.'
2208
2241
  },
2209
- :'span_events.attributes.exclude' => {
2210
- :default => [],
2211
- :public => true,
2212
- :type => Array,
2213
- :allowed_from_server => false,
2214
- :transform => DefaultSource.method(:convert_to_list),
2215
- :description => 'Prefix of attributes to exclude from span events. Allows `*` as wildcard at end.'
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.'
2216
2249
  },
2217
- :'transaction_segments.attributes.exclude' => {
2218
- :default => [],
2219
- :public => true,
2220
- :type => Array,
2221
- :allowed_from_server => false,
2222
- :transform => DefaultSource.method(:convert_to_list),
2223
- :description => 'Prefix of attributes to exclude from transaction segments. Allows `*` as wildcard at end.'
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.'
2224
2257
  },
2225
- :'attributes.include' => {
2226
- :default => [],
2227
- :public => true,
2228
- :type => Array,
2229
- :allowed_from_server => false,
2230
- :transform => DefaultSource.method(:convert_to_list),
2231
- :description => 'Prefix of attributes to include in all destinations. Allows `*` as wildcard at end.'
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.'
2232
2265
  },
2233
- :'transaction_tracer.attributes.include' => {
2234
- :default => [],
2235
- :public => true,
2236
- :type => Array,
2237
- :allowed_from_server => false,
2238
- :transform => DefaultSource.method(:convert_to_list),
2239
- :description => 'Prefix of attributes to include in transaction traces. Allows `*` as wildcard at end.'
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.'
2240
2273
  },
2241
- :'transaction_events.attributes.include' => {
2242
- :default => [],
2243
- :public => true,
2244
- :type => Array,
2274
+ :force_reconnect => {
2275
+ :default => false,
2276
+ :public => false,
2277
+ :type => Boolean,
2245
2278
  :allowed_from_server => false,
2246
- :transform => DefaultSource.method(:convert_to_list),
2247
- :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.'
2248
2280
  },
2249
- :'error_collector.attributes.include' => {
2250
- :default => [],
2251
- :public => true,
2252
- :type => Array,
2281
+ :framework => {
2282
+ :default => DefaultSource.framework,
2283
+ :public => false,
2284
+ :type => Symbol,
2253
2285
  :allowed_from_server => false,
2254
- :transform => DefaultSource.method(:convert_to_list),
2255
- :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.'
2256
2287
  },
2257
- :'browser_monitoring.attributes.include' => {
2258
- :default => [],
2259
- :public => true,
2260
- :type => Array,
2288
+ :host => {
2289
+ :default => DefaultSource.host,
2290
+ :public => false,
2291
+ :type => String,
2261
2292
  :allowed_from_server => false,
2262
- :transform => DefaultSource.method(:convert_to_list),
2263
- :description => 'Prefix of attributes to include in browser monitoring. Allows `*` as wildcard at end.'
2293
+ :description => "URI for the New Relic data collection service."
2264
2294
  },
2265
- :'span_events.attributes.include' => {
2266
- :default => [],
2267
- :public => true,
2268
- :type => Array,
2295
+ :'infinite_tracing.batching' => {
2296
+ :default => false,
2297
+ :public => false,
2298
+ :type => Boolean,
2269
2299
  :allowed_from_server => false,
2270
- :transform => DefaultSource.method(:convert_to_list),
2271
- :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"
2272
2303
  },
2273
- :'transaction_segments.attributes.include' => {
2274
- :default => [],
2275
- :public => true,
2276
- :type => Array,
2304
+ :'infinite_tracing.compression_level' => {
2305
+ :default => :none,
2306
+ :public => false,
2307
+ :type => Symbol,
2277
2308
  :allowed_from_server => false,
2278
- :transform => DefaultSource.method(:convert_to_list),
2279
- :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.'
2280
2326
  },
2281
- :'custom_attributes.enabled' => {
2282
- :default => true,
2283
- :public => true,
2327
+ :js_errors_beta => {
2328
+ :default => false,
2329
+ :public => false,
2284
2330
  :type => Boolean,
2285
2331
  :allowed_from_server => false,
2286
- :description => 'If `false`, custom attributes will not be sent on events.'
2332
+ :deprecated => true,
2333
+ :description => 'Enable or disable beta JavaScript error reporting.'
2287
2334
  },
2288
- :'utilization.detect_aws' => {
2289
- :default => true,
2290
- :public => true,
2291
- :type => Boolean,
2292
- :allowed_from_server => false,
2293
- :dynamic_name => true,
2294
- :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.'
2295
2341
  },
2296
- :'utilization.detect_azure' => {
2342
+ :keep_retrying => {
2297
2343
  :default => true,
2298
- :public => true,
2344
+ :public => false,
2299
2345
  :type => Boolean,
2346
+ :deprecated => true,
2300
2347
  :allowed_from_server => false,
2301
- :dynamic_name => true,
2302
- :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.'
2303
2349
  },
2304
- :'utilization.detect_gcp' => {
2305
- :default => true,
2306
- :public => true,
2307
- :type => Boolean,
2308
- :allowed_from_server => false,
2309
- :dynamic_name => true,
2310
- :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.'
2311
2356
  },
2312
- :'utilization.detect_pcf' => {
2357
+ :normalize_json_string_encodings => {
2313
2358
  :default => true,
2314
- :public => true,
2359
+ :public => false,
2315
2360
  :type => Boolean,
2316
2361
  :allowed_from_server => false,
2317
- :dynamic_name => true,
2318
- :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.'
2319
2363
  },
2320
- :'utilization.detect_docker' => {
2321
- :default => true,
2322
- :public => true,
2323
- :type => Boolean,
2364
+ :port => {
2365
+ :default => 443,
2366
+ :public => false,
2367
+ :type => Integer,
2324
2368
  :allowed_from_server => false,
2325
- :description => 'If `true`, the agent automatically detects that it is running in Docker.'
2369
+ :description => 'Port for the New Relic data collection service.'
2326
2370
  },
2327
- :'utilization.detect_kubernetes' => {
2371
+ :prepend_net_instrumentation => {
2328
2372
  :default => true,
2329
- :public => true,
2373
+ :public => false,
2330
2374
  :type => Boolean,
2331
2375
  :allowed_from_server => false,
2332
- :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.')
2333
2379
  },
2334
- :'utilization.billing_hostname' => {
2380
+ :primary_application_id => {
2335
2381
  :default => nil,
2336
2382
  :allow_nil => true,
2337
2383
  :public => false,
2338
2384
  :type => String,
2339
- :allowed_from_server => false,
2340
- :description => 'The configured server name by a customer.'
2341
- },
2342
- :'utilization.logical_processors' => {
2343
- :default => nil,
2344
- :allow_nil => true,
2345
- :public => false,
2346
- :type => Integer,
2347
- :allowed_from_server => false,
2348
- :description => 'The total number of hyper-threaded execution contexts available.'
2385
+ :allowed_from_server => true,
2386
+ :description => 'The primary id associated with your application.'
2349
2387
  },
2350
- :'utilization.total_ram_mib' => {
2351
- :default => nil,
2352
- :allow_nil => true,
2388
+ :put_for_data_send => {
2389
+ :default => false,
2353
2390
  :public => false,
2354
- :type => Integer,
2391
+ :type => Boolean,
2355
2392
  :allowed_from_server => false,
2356
- :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.'
2357
2394
  },
2358
- :'datastore_tracer.instance_reporting.enabled' => {
2395
+ :report_instance_busy => {
2359
2396
  :default => true,
2360
- :public => true,
2397
+ :public => false,
2361
2398
  :type => Boolean,
2362
2399
  :allowed_from_server => false,
2363
- :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).'
2364
2401
  },
2365
- :'datastore_tracer.database_name_reporting.enabled' => {
2402
+ :restart_thread_in_children => {
2366
2403
  :default => true,
2367
- :public => true,
2404
+ :public => false,
2368
2405
  :type => Boolean,
2369
2406
  :allowed_from_server => false,
2370
- :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.'
2371
2408
  },
2372
- :'clear_transaction_state_after_fork' => {
2373
- :default => false,
2374
- :public => true,
2409
+ :'resque.use_ruby_dns' => {
2410
+ :default => true,
2411
+ :public => false,
2375
2412
  :type => Boolean,
2376
2413
  :allowed_from_server => false,
2377
- :description => 'If `true`, the agent will clear `Tracer::State` in `Agent.drop_buffered_data`.'
2378
- },
2379
- :account_id => {
2380
- :default => nil,
2381
- :allow_nil => true,
2382
- :public => false,
2383
- :type => String,
2384
- :allowed_from_server => true,
2385
- :description => 'The account id associated with your application.'
2386
- },
2387
- :primary_application_id => {
2388
- :default => nil,
2389
- :allow_nil => true,
2390
- :public => false,
2391
- :type => String,
2392
- :allowed_from_server => true,
2393
- :description => 'The primary id associated with your application.'
2414
+ :description => 'Replace the libc DNS resolver with the all Ruby resolver Resolv'
2394
2415
  },
2395
- :'distributed_tracing.enabled' => {
2416
+ :'rum.enabled' => {
2396
2417
  :default => true,
2397
- :public => true,
2398
- :type => Boolean,
2399
- :allowed_from_server => true,
2400
- :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.'
2401
- },
2402
- :trusted_account_key => {
2403
- :default => nil,
2404
- :allow_nil => true,
2405
2418
  :public => false,
2406
- :type => String,
2419
+ :type => Boolean,
2407
2420
  :allowed_from_server => true,
2408
- :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).'
2409
2422
  },
2410
2423
  :sampling_target => {
2411
2424
  :default => 10,
@@ -2421,72 +2434,93 @@ A map of error classes to a list of messages. When an error of one of the classe
2421
2434
  :allowed_from_server => true,
2422
2435
  :description => 'The period during which a target number of transactions should be marked as sampled.'
2423
2436
  },
2424
- :'span_events.enabled' => {
2437
+ :send_environment_info => {
2425
2438
  :default => true,
2426
- :public => true,
2439
+ :public => false,
2427
2440
  :type => Boolean,
2428
- :allowed_from_server => true,
2429
- :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.'
2430
2443
  },
2431
- :'span_events.queue_size' => {
2432
- :default => 10_000,
2433
- :public => true,
2434
- :type => Integer,
2444
+ :simple_compression => {
2445
+ :default => false,
2446
+ :public => false,
2447
+ :type => Boolean,
2435
2448
  :allowed_from_server => false,
2436
- :external => :infinite_tracing,
2437
- :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.'
2438
2450
  },
2439
- :'span_events.max_samples_stored' => {
2440
- :default => 2000,
2441
- :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,
2442
2461
  :type => Integer,
2443
2462
  :allowed_from_server => true,
2444
- :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'
2445
2464
  },
2446
- :'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 => {
2447
2473
  :default => false,
2448
- :public => true,
2474
+ :public => false,
2449
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,
2450
2483
  :allowed_from_server => true,
2451
- :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'
2452
2485
  },
2453
- :'infinite_tracing.trace_observer.host' => {
2454
- :default => '',
2455
- :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,
2456
2497
  :type => String,
2457
- :allowed_from_server => false,
2458
- :external => :infinite_tracing,
2459
- :description => "Configures the hostname for the Trace Observer Host. " \
2460
- "When configured, enables tail-based sampling by sending all recorded spans " \
2461
- "to a Trace Observer for further sampling decisions, irrespective of any usual " \
2462
- "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.'
2463
2500
  },
2464
- :'infinite_tracing.trace_observer.port' => {
2465
- :default => 443,
2466
- :public => true,
2467
- :type => Integer,
2501
+ :'utilization.billing_hostname' => {
2502
+ :default => nil,
2503
+ :allow_nil => true,
2504
+ :public => false,
2505
+ :type => String,
2468
2506
  :allowed_from_server => false,
2469
- :external => :infinite_tracing,
2470
- :description => "Configures the TCP/IP port for the Trace Observer Host"
2507
+ :description => 'The configured server name by a customer.'
2471
2508
  },
2472
- :'infinite_tracing.compression_level' => {
2473
- :default => :none,
2509
+ :'utilization.logical_processors' => {
2510
+ :default => nil,
2511
+ :allow_nil => true,
2474
2512
  :public => false,
2475
- :type => Symbol,
2513
+ :type => Integer,
2476
2514
  :allowed_from_server => false,
2477
- :external => :infinite_tracing,
2478
- :description => "Configure the compression level for data sent to the Trace Observer\nMay be one of " \
2479
- "[none|low|medium|high]\nBy default, compression is not used (level = none)"
2515
+ :description => 'The total number of hyper-threaded execution contexts available.'
2480
2516
  },
2481
- :'infinite_tracing.batching' => {
2482
- :default => false,
2517
+ :'utilization.total_ram_mib' => {
2518
+ :default => nil,
2519
+ :allow_nil => true,
2483
2520
  :public => false,
2484
- :type => Boolean,
2521
+ :type => Integer,
2485
2522
  :allowed_from_server => false,
2486
- :external => :infinite_tracing,
2487
- :description => "If true, data sent to the Trace Observer will be batched instead of the default of each " \
2488
- "span being sent individually"
2489
-
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).'
2490
2524
  }
2491
2525
  }.freeze
2492
2526
  end