newrelic_rpm 9.9.0 → 9.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.build_ignore +1 -0
- data/CHANGELOG.md +463 -1
- data/CONTRIBUTING.md +2 -2
- data/README.md +16 -17
- data/Rakefile +1 -1
- data/lib/boot/strap.rb +102 -0
- data/lib/new_relic/agent/agent.rb +6 -0
- data/lib/new_relic/agent/agent_helpers/connect.rb +3 -0
- data/lib/new_relic/agent/agent_helpers/harvest.rb +3 -0
- data/lib/new_relic/agent/agent_helpers/shutdown.rb +3 -0
- data/lib/new_relic/agent/agent_helpers/start_worker_thread.rb +1 -0
- data/lib/new_relic/agent/agent_helpers/startup.rb +7 -0
- data/lib/new_relic/agent/agent_logger.rb +1 -0
- data/lib/new_relic/agent/aws.rb +68 -0
- data/lib/new_relic/agent/configuration/default_source.rb +603 -105
- data/lib/new_relic/agent/configuration/environment_source.rb +5 -1
- data/lib/new_relic/agent/configuration/manager.rb +28 -2
- data/lib/new_relic/agent/configuration/yaml_source.rb +7 -2
- data/lib/new_relic/agent/database/obfuscation_helpers.rb +11 -11
- data/lib/new_relic/agent/database/obfuscator.rb +1 -0
- data/lib/new_relic/agent/database.rb +41 -1
- data/lib/new_relic/agent/database_adapter.rb +1 -1
- data/lib/new_relic/agent/datastores/redis.rb +1 -1
- data/lib/new_relic/agent/distributed_tracing/cross_app_tracing.rb +1 -1
- data/lib/new_relic/agent/distributed_tracing.rb +4 -2
- data/lib/new_relic/agent/error_collector.rb +37 -10
- data/lib/new_relic/agent/external.rb +2 -0
- data/lib/new_relic/agent/health_check.rb +136 -0
- data/lib/new_relic/agent/http_clients/uri_util.rb +1 -1
- data/lib/new_relic/agent/instrumentation/action_dispatch.rb +1 -1
- data/lib/new_relic/agent/instrumentation/action_dispatch_subscriber.rb +1 -1
- data/lib/new_relic/agent/instrumentation/action_mailbox.rb +1 -1
- data/lib/new_relic/agent/instrumentation/action_mailer.rb +1 -1
- data/lib/new_relic/agent/instrumentation/active_job.rb +1 -1
- data/lib/new_relic/agent/instrumentation/active_job_subscriber.rb +6 -2
- data/lib/new_relic/agent/instrumentation/active_merchant.rb +0 -13
- data/lib/new_relic/agent/instrumentation/active_record.rb +7 -12
- data/lib/new_relic/agent/instrumentation/active_record_helper.rb +7 -3
- data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +11 -9
- data/lib/new_relic/agent/instrumentation/active_record_prepend.rb +2 -2
- data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +9 -16
- data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger.rb +0 -2
- data/lib/new_relic/agent/instrumentation/active_support_logger.rb +0 -2
- data/lib/new_relic/agent/instrumentation/async_http.rb +2 -3
- data/lib/new_relic/agent/instrumentation/aws_sdk_firehose/chain.rb +21 -0
- data/lib/new_relic/agent/instrumentation/aws_sdk_firehose/instrumentation.rb +66 -0
- data/lib/new_relic/agent/instrumentation/aws_sdk_firehose/prepend.rb +15 -0
- data/lib/new_relic/agent/instrumentation/aws_sdk_firehose.rb +22 -0
- data/lib/new_relic/agent/instrumentation/aws_sdk_kinesis/chain.rb +21 -0
- data/lib/new_relic/agent/instrumentation/aws_sdk_kinesis/instrumentation.rb +91 -0
- data/lib/new_relic/agent/instrumentation/aws_sdk_kinesis/prepend.rb +15 -0
- data/lib/new_relic/agent/instrumentation/aws_sdk_kinesis.rb +22 -0
- data/lib/new_relic/agent/instrumentation/aws_sdk_lambda/chain.rb +33 -0
- data/lib/new_relic/agent/instrumentation/aws_sdk_lambda/instrumentation.rb +93 -0
- data/lib/new_relic/agent/instrumentation/aws_sdk_lambda/prepend.rb +23 -0
- data/lib/new_relic/agent/instrumentation/aws_sdk_lambda.rb +23 -0
- data/lib/new_relic/agent/instrumentation/aws_sqs/chain.rb +37 -0
- data/lib/new_relic/agent/instrumentation/aws_sqs/instrumentation.rb +67 -0
- data/lib/new_relic/agent/instrumentation/aws_sqs/prepend.rb +21 -0
- data/lib/new_relic/agent/instrumentation/aws_sqs.rb +23 -0
- data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +14 -0
- data/lib/new_relic/agent/instrumentation/bunny.rb +3 -4
- data/lib/new_relic/agent/instrumentation/concurrent_ruby.rb +1 -3
- data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +4 -0
- data/lib/new_relic/agent/instrumentation/curb.rb +4 -5
- data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +0 -23
- data/lib/new_relic/agent/instrumentation/dynamodb/chain.rb +27 -0
- data/lib/new_relic/agent/instrumentation/dynamodb/instrumentation.rb +64 -0
- data/lib/new_relic/agent/instrumentation/dynamodb/prepend.rb +19 -0
- data/lib/new_relic/agent/instrumentation/dynamodb.rb +23 -0
- data/lib/new_relic/agent/instrumentation/elasticsearch/chain.rb +1 -2
- data/lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb +53 -7
- data/lib/new_relic/agent/instrumentation/elasticsearch.rb +1 -3
- data/lib/new_relic/agent/instrumentation/ethon.rb +1 -5
- data/lib/new_relic/agent/instrumentation/excon.rb +1 -17
- data/lib/new_relic/agent/instrumentation/fiber/chain.rb +1 -1
- data/lib/new_relic/agent/instrumentation/fiber/prepend.rb +1 -1
- data/lib/new_relic/agent/instrumentation/fiber.rb +0 -2
- data/lib/new_relic/agent/instrumentation/grape/instrumentation.rb +0 -3
- data/lib/new_relic/agent/instrumentation/grape.rb +1 -1
- data/lib/new_relic/agent/instrumentation/grpc/client/instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/httpclient.rb +1 -5
- data/lib/new_relic/agent/instrumentation/httprb.rb +0 -1
- data/lib/new_relic/agent/instrumentation/httpx/instrumentation.rb +1 -1
- data/lib/new_relic/agent/instrumentation/httpx.rb +1 -5
- data/lib/new_relic/agent/instrumentation/logger.rb +1 -3
- data/lib/new_relic/agent/instrumentation/logstasher/chain.rb +21 -0
- data/lib/new_relic/agent/instrumentation/logstasher/instrumentation.rb +24 -0
- data/lib/new_relic/agent/instrumentation/logstasher/prepend.rb +13 -0
- data/lib/new_relic/agent/instrumentation/logstasher.rb +25 -0
- data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +1 -1
- data/lib/new_relic/agent/instrumentation/memcache/helper.rb +2 -2
- data/lib/new_relic/agent/instrumentation/memcache/instrumentation.rb +1 -1
- data/lib/new_relic/agent/instrumentation/memcache/prepend.rb +1 -1
- data/lib/new_relic/agent/instrumentation/memcache.rb +0 -1
- data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +1 -1
- data/lib/new_relic/agent/instrumentation/net_http/instrumentation.rb +3 -3
- data/lib/new_relic/agent/instrumentation/net_http.rb +2 -1
- data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +0 -2
- data/lib/new_relic/agent/instrumentation/opensearch/chain.rb +21 -0
- data/lib/new_relic/agent/instrumentation/opensearch/instrumentation.rb +66 -0
- data/lib/{tasks/instrumentation_generator/templates/instrumentation.tt → new_relic/agent/instrumentation/opensearch/prepend.rb} +4 -4
- data/lib/new_relic/agent/instrumentation/opensearch.rb +23 -0
- data/lib/new_relic/agent/instrumentation/padrino.rb +3 -3
- data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +3 -0
- data/lib/new_relic/agent/instrumentation/rails_notifications/action_controller.rb +9 -5
- data/lib/new_relic/agent/instrumentation/rake.rb +1 -2
- data/lib/new_relic/agent/instrumentation/rdkafka/chain.rb +72 -0
- data/lib/new_relic/agent/instrumentation/rdkafka/instrumentation.rb +70 -0
- data/lib/new_relic/agent/instrumentation/rdkafka/prepend.rb +67 -0
- data/lib/new_relic/agent/instrumentation/rdkafka.rb +25 -0
- data/lib/new_relic/agent/instrumentation/redis/cluster_middleware.rb +26 -0
- data/lib/new_relic/agent/instrumentation/redis/constants.rb +2 -2
- data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +14 -11
- data/lib/new_relic/agent/instrumentation/redis/middleware.rb +3 -0
- data/lib/new_relic/agent/instrumentation/redis.rb +11 -5
- data/lib/new_relic/agent/instrumentation/resque.rb +8 -6
- data/lib/new_relic/agent/instrumentation/roda.rb +5 -5
- data/lib/new_relic/agent/instrumentation/ruby_kafka/chain.rb +55 -0
- data/lib/new_relic/agent/instrumentation/ruby_kafka/instrumentation.rb +67 -0
- data/lib/new_relic/agent/instrumentation/ruby_kafka/prepend.rb +60 -0
- data/lib/new_relic/agent/instrumentation/ruby_kafka.rb +25 -0
- data/lib/new_relic/agent/instrumentation/ruby_openai.rb +2 -2
- data/lib/new_relic/agent/instrumentation/sidekiq/extensions/delay_extensions.rb +24 -0
- data/lib/new_relic/agent/instrumentation/sidekiq/extensions/delayed_class.rb +2 -2
- data/lib/new_relic/agent/instrumentation/sidekiq.rb +9 -15
- data/lib/new_relic/agent/instrumentation/sinatra.rb +3 -19
- data/lib/new_relic/agent/instrumentation/stripe.rb +1 -1
- data/lib/new_relic/agent/instrumentation/stripe_subscriber.rb +22 -1
- data/lib/new_relic/agent/instrumentation/thread.rb +0 -2
- data/lib/new_relic/agent/instrumentation/tilt.rb +0 -4
- data/lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb +2 -2
- data/lib/new_relic/agent/instrumentation/typhoeus.rb +0 -1
- data/lib/new_relic/agent/instrumentation/view_component/instrumentation.rb +11 -5
- data/lib/new_relic/agent/instrumentation/view_component.rb +0 -2
- data/lib/new_relic/agent/javascript_instrumentor.rb +2 -3
- data/lib/new_relic/agent/llm/chat_completion_summary.rb +1 -1
- data/lib/new_relic/agent/llm/embedding.rb +1 -1
- data/lib/new_relic/agent/local_log_decorator.rb +20 -3
- data/lib/new_relic/agent/log_event_aggregator.rb +119 -28
- data/lib/new_relic/agent/logging.rb +1 -1
- data/lib/new_relic/agent/messaging.rb +16 -5
- data/lib/new_relic/agent/method_tracer.rb +3 -0
- data/lib/new_relic/agent/monitors/inbound_request_monitor.rb +1 -1
- data/lib/new_relic/agent/monitors/synthetics_monitor.rb +1 -1
- data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +2 -2
- data/lib/new_relic/agent/new_relic_service.rb +8 -2
- data/lib/new_relic/agent/opentelemetry/context/propagation/trace_propagator.rb +66 -0
- data/lib/new_relic/agent/opentelemetry/context/propagation.rb +15 -0
- data/lib/{tasks/instrumentation_generator/templates/Envfile.tt → new_relic/agent/opentelemetry/context.rb} +9 -5
- data/lib/new_relic/agent/opentelemetry/trace/span.rb +31 -0
- data/lib/new_relic/agent/opentelemetry/trace/tracer.rb +129 -0
- data/lib/new_relic/agent/opentelemetry/trace/tracer_provider.rb +18 -0
- data/lib/new_relic/agent/opentelemetry/trace.rb +15 -0
- data/lib/new_relic/agent/opentelemetry/transaction_patch.rb +69 -0
- data/lib/new_relic/agent/opentelemetry_bridge.rb +32 -0
- data/lib/new_relic/agent/parameter_filtering.rb +1 -1
- data/lib/new_relic/agent/samplers/cpu_sampler.rb +1 -1
- data/lib/new_relic/agent/samplers/memory_sampler.rb +1 -1
- data/lib/new_relic/agent/serverless_handler.rb +247 -12
- data/lib/new_relic/agent/serverless_handler_event_sources.json +155 -0
- data/lib/new_relic/agent/serverless_handler_event_sources.rb +49 -0
- data/lib/new_relic/agent/span_event_primitive.rb +16 -11
- data/lib/new_relic/agent/system_info.rb +14 -0
- data/lib/new_relic/agent/threading/backtrace_node.rb +10 -1
- data/lib/new_relic/agent/tracer.rb +1 -1
- data/lib/new_relic/agent/transaction/abstract_segment.rb +2 -1
- data/lib/new_relic/agent/transaction/datastore_segment.rb +1 -1
- data/lib/new_relic/agent/transaction/distributed_tracer.rb +3 -3
- data/lib/new_relic/agent/transaction/external_request_segment.rb +0 -10
- data/lib/new_relic/agent/transaction/message_broker_segment.rb +4 -1
- data/lib/new_relic/agent/transaction/request_attributes.rb +14 -7
- data/lib/new_relic/agent/transaction/trace_context.rb +34 -5
- data/lib/new_relic/agent/transaction/tracing.rb +3 -3
- data/lib/new_relic/agent/transaction.rb +4 -7
- data/lib/new_relic/agent/transaction_time_aggregator.rb +1 -1
- data/lib/new_relic/agent/utilization/ecs.rb +22 -0
- data/lib/new_relic/agent/utilization/ecs_v4.rb +22 -0
- data/lib/new_relic/agent/utilization_data.rb +40 -5
- data/lib/new_relic/agent/vm/c_ruby_vm.rb +3 -3
- data/lib/new_relic/agent.rb +124 -2
- data/lib/new_relic/constants.rb +1 -0
- data/lib/new_relic/control/frameworks/grape.rb +14 -0
- data/lib/new_relic/control/frameworks/padrino.rb +14 -0
- data/lib/new_relic/control/frameworks/rails4.rb +1 -3
- data/lib/new_relic/control/instance_methods.rb +6 -0
- data/lib/new_relic/control/instrumentation.rb +1 -1
- data/lib/new_relic/control/private_instance_methods.rb +4 -0
- data/lib/new_relic/control/security_interface.rb +57 -0
- data/lib/new_relic/control.rb +1 -1
- data/lib/new_relic/dependency_detection.rb +11 -14
- data/lib/new_relic/environment_report.rb +2 -2
- data/lib/new_relic/helper.rb +22 -0
- data/lib/new_relic/language_support.rb +3 -1
- data/lib/new_relic/local_environment.rb +1 -4
- data/lib/new_relic/rack/browser_monitoring.rb +20 -8
- data/lib/new_relic/version.rb +1 -1
- data/lib/sequel/extensions/new_relic_instrumentation.rb +3 -2
- data/lib/tasks/config.rake +7 -3
- data/lib/tasks/gha.rake +31 -0
- data/lib/tasks/helpers/config.html.erb +3 -2
- data/lib/tasks/helpers/format.rb +1 -1
- data/lib/tasks/helpers/newrelicyml.rb +80 -13
- data/newrelic.yml +425 -162
- data/newrelic_rpm.gemspec +3 -1
- data/test/agent_helper.rb +24 -2
- metadata +91 -22
- data/lib/tasks/instrumentation_generator/README.md +0 -63
- data/lib/tasks/instrumentation_generator/TODO.md +0 -33
- data/lib/tasks/instrumentation_generator/instrumentation.thor +0 -121
- data/lib/tasks/instrumentation_generator/templates/chain.tt +0 -21
- data/lib/tasks/instrumentation_generator/templates/chain_method.tt +0 -7
- data/lib/tasks/instrumentation_generator/templates/dependency_detection.tt +0 -29
- data/lib/tasks/instrumentation_generator/templates/instrumentation_method.tt +0 -3
- data/lib/tasks/instrumentation_generator/templates/newrelic.yml.tt +0 -19
- data/lib/tasks/instrumentation_generator/templates/prepend.tt +0 -13
- data/lib/tasks/instrumentation_generator/templates/prepend_method.tt +0 -3
- data/lib/tasks/instrumentation_generator/templates/test.tt +0 -15
@@ -35,6 +35,15 @@ module NewRelic
|
|
35
35
|
end
|
36
36
|
|
37
37
|
class DefaultSource
|
38
|
+
BOOLEAN_MAP = {
|
39
|
+
'true' => true,
|
40
|
+
'yes' => true,
|
41
|
+
'on' => true,
|
42
|
+
'false' => false,
|
43
|
+
'no' => false,
|
44
|
+
'off' => false
|
45
|
+
}.freeze
|
46
|
+
|
38
47
|
attr_reader :defaults
|
39
48
|
|
40
49
|
extend Forwardable
|
@@ -64,6 +73,12 @@ module NewRelic
|
|
64
73
|
value_from_defaults(key, :allowlist)
|
65
74
|
end
|
66
75
|
|
76
|
+
def self.boolean_for(key, value)
|
77
|
+
string_value = (value.respond_to?(:call) ? value.call : value).to_s
|
78
|
+
|
79
|
+
BOOLEAN_MAP.fetch(string_value, nil)
|
80
|
+
end
|
81
|
+
|
67
82
|
def self.default_for(key)
|
68
83
|
value_from_defaults(key, :default)
|
69
84
|
end
|
@@ -72,7 +87,7 @@ module NewRelic
|
|
72
87
|
value_from_defaults(key, :transform)
|
73
88
|
end
|
74
89
|
|
75
|
-
def self.config_search_paths
|
90
|
+
def self.config_search_paths
|
76
91
|
proc {
|
77
92
|
yaml = 'newrelic.yml'
|
78
93
|
config_yaml = File.join('config', yaml)
|
@@ -124,14 +139,16 @@ module NewRelic
|
|
124
139
|
case Rails::VERSION::MAJOR
|
125
140
|
when 3
|
126
141
|
:rails3
|
127
|
-
when 4..
|
142
|
+
when 4..8
|
128
143
|
:rails_notifications
|
129
144
|
else
|
130
145
|
::NewRelic::Agent.logger.warn("Detected untested Rails version #{Rails::VERSION::STRING}")
|
131
146
|
:rails_notifications
|
132
147
|
end
|
148
|
+
when defined?(::Padrino) && defined?(::Padrino::PathRouter::Router) then :padrino
|
133
149
|
when defined?(::Sinatra) && defined?(::Sinatra::Base) then :sinatra
|
134
150
|
when defined?(::Roda) then :roda
|
151
|
+
when defined?(::Grape) then :grape
|
135
152
|
when defined?(::NewRelic::IA) then :external
|
136
153
|
else :ruby
|
137
154
|
end
|
@@ -370,9 +387,9 @@ module NewRelic
|
|
370
387
|
:allowed_from_server => false,
|
371
388
|
:description => <<~DESCRIPTION
|
372
389
|
An array of ActiveSupport custom event names to subscribe to and instrument. For example,
|
373
|
-
|
374
|
-
|
375
|
-
|
390
|
+
\t\t- one.custom.event
|
391
|
+
\t\t- another.event
|
392
|
+
\t\t- a.third.event
|
376
393
|
DESCRIPTION
|
377
394
|
},
|
378
395
|
:'ai_monitoring.enabled' => {
|
@@ -390,9 +407,11 @@ module NewRelic
|
|
390
407
|
:description => <<~DESCRIPTION
|
391
408
|
If `false`, LLM instrumentation (OpenAI only for now) will not capture input and output content on specific LLM events.
|
392
409
|
|
393
|
-
|
394
|
-
|
395
|
-
|
410
|
+
\tThe excluded attributes include:
|
411
|
+
\t- `content` from LlmChatCompletionMessage events
|
412
|
+
\t- `input` from LlmEmbedding events
|
413
|
+
|
414
|
+
\tThis is an optional security setting to prevent recording sensitive data sent to and received from your LLMs.
|
396
415
|
DESCRIPTION
|
397
416
|
},
|
398
417
|
# this is only set via server side config
|
@@ -408,6 +427,7 @@ module NewRelic
|
|
408
427
|
:public => true,
|
409
428
|
:type => String,
|
410
429
|
:allowed_from_server => false,
|
430
|
+
:exclude_from_reported_settings => true,
|
411
431
|
:description => 'Your New Relic <InlinePopover type="userKey" />. Required when using the New Relic REST API v2 to record deployments using the `newrelic deployments` command.'
|
412
432
|
},
|
413
433
|
:backport_fast_active_record_connection_lookup => {
|
@@ -423,7 +443,7 @@ module NewRelic
|
|
423
443
|
:public => true,
|
424
444
|
:type => String,
|
425
445
|
:allowed_from_server => false,
|
426
|
-
:description => "Manual override for the path to your local CA bundle. This CA bundle
|
446
|
+
:description => "Manual override for the path to your local CA bundle. This CA bundle validates the SSL certificate presented by New Relic's data collection service."
|
427
447
|
},
|
428
448
|
:capture_memcache_keys => {
|
429
449
|
:default => false,
|
@@ -440,9 +460,9 @@ module NewRelic
|
|
440
460
|
:description => <<~DESCRIPTION
|
441
461
|
When `true`, the agent captures HTTP request parameters and attaches them to transaction traces, traced errors, and [`TransactionError` events](/attribute-dictionary?attribute_name=&events_tids%5B%5D=8241).
|
442
462
|
|
443
|
-
|
444
|
-
|
445
|
-
|
463
|
+
<Callout variant="caution">
|
464
|
+
\tWhen using the `capture_params` setting, the Ruby agent will not attempt to filter secret information. `Recommendation:` To filter secret information from request parameters, use the [`attributes.include` setting](/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby) instead. For more information, see the <a href="/docs/agents/ruby-agent/attributes/ruby-attribute-examples#ex_req_params">Ruby attribute examples</a>.
|
465
|
+
</Callout>
|
446
466
|
DESCRIPTION
|
447
467
|
},
|
448
468
|
:'clear_transaction_state_after_fork' => {
|
@@ -452,6 +472,14 @@ module NewRelic
|
|
452
472
|
:allowed_from_server => false,
|
453
473
|
:description => 'If `true`, the agent will clear `Tracer::State` in `Agent.drop_buffered_data`.'
|
454
474
|
},
|
475
|
+
:'cloud.aws.account_id' => {
|
476
|
+
:default => nil,
|
477
|
+
:public => true,
|
478
|
+
:type => String,
|
479
|
+
:allow_nil => true,
|
480
|
+
:allowed_from_server => false,
|
481
|
+
:description => 'The AWS account ID for the AWS account associated with this app'
|
482
|
+
},
|
455
483
|
:config_path => {
|
456
484
|
:default => DefaultSource.config_path,
|
457
485
|
:public => true,
|
@@ -459,10 +487,10 @@ module NewRelic
|
|
459
487
|
:allowed_from_server => false,
|
460
488
|
:description => <<~DESC
|
461
489
|
Path to `newrelic.yml`. If undefined, the agent checks the following directories (in order):
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
490
|
+
\t- `config/newrelic.yml`
|
491
|
+
\t- `newrelic.yml`
|
492
|
+
\t- `$HOME/.newrelic/newrelic.yml`
|
493
|
+
\t- `$HOME/newrelic.yml`
|
466
494
|
DESC
|
467
495
|
},
|
468
496
|
:'exclude_newrelic_header' => {
|
@@ -477,12 +505,14 @@ module NewRelic
|
|
477
505
|
:public => true,
|
478
506
|
:type => Boolean,
|
479
507
|
:allowed_from_server => false,
|
480
|
-
:description =>
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
508
|
+
:description => <<~DESC
|
509
|
+
The exit handler that sends all cached data to the collector before shutting down is forcibly installed. \
|
510
|
+
This is true even when it detects scenarios where it generally should not be. The known use case for this \
|
511
|
+
option is when Sinatra runs as an embedded service within another framework. The agent detects the Sinatra \
|
512
|
+
app and skips the `at_exit` handler as a result. Sinatra classically runs the entire application in an \
|
513
|
+
`at_exit` block and would otherwise misbehave if the agent's `at_exit` handler was also installed in those \
|
514
|
+
circumstances. Note: `send_data_on_exit` should also be set to `true` in tandem with this setting.
|
515
|
+
DESC
|
486
516
|
},
|
487
517
|
:high_security => {
|
488
518
|
:default => false,
|
@@ -616,7 +646,7 @@ module NewRelic
|
|
616
646
|
:public => true,
|
617
647
|
:type => Boolean,
|
618
648
|
:allowed_from_server => true,
|
619
|
-
:description =>
|
649
|
+
: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) isn't set separately."
|
620
650
|
},
|
621
651
|
:'transaction_tracer.explain_threshold' => {
|
622
652
|
:default => 0.5,
|
@@ -644,13 +674,13 @@ module NewRelic
|
|
644
674
|
:public => true,
|
645
675
|
:type => String,
|
646
676
|
:allowed_from_server => true,
|
647
|
-
:description =>
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
677
|
+
:description => <<~DESC
|
678
|
+
Obfuscation level for SQL queries reported in transaction trace nodes.
|
679
|
+
\tBy default, this is set to `obfuscated`, which strips out the numeric and string literals.
|
680
|
+
\t- If you do not want the agent to capture query information, set this to `none`.
|
681
|
+
\t- If you want the agent to capture all query information in its original form, set this to `raw`.
|
682
|
+
\t- When you enable [high security mode](/docs/agents/manage-apm-agents/configuration/high-security-mode), this is automatically set to `obfuscated`.
|
683
|
+
DESC
|
654
684
|
},
|
655
685
|
|
656
686
|
:'transaction_tracer.stack_trace_threshold' => {
|
@@ -668,20 +698,6 @@ module NewRelic
|
|
668
698
|
: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`.'
|
669
699
|
},
|
670
700
|
# Error collector
|
671
|
-
:'error_collector.ignore_classes' => {
|
672
|
-
:default => ['ActionController::RoutingError', 'Sinatra::NotFound'],
|
673
|
-
:public => true,
|
674
|
-
:type => Array,
|
675
|
-
:allowed_from_server => true,
|
676
|
-
:dynamic_name => true,
|
677
|
-
:description => <<~DESCRIPTION
|
678
|
-
A list of error classes that the agent should ignore.
|
679
|
-
|
680
|
-
<Callout variant="caution">
|
681
|
-
This option can't be set via environment variable.
|
682
|
-
</Callout>
|
683
|
-
DESCRIPTION
|
684
|
-
},
|
685
701
|
:'error_collector.capture_events' => {
|
686
702
|
:default => value_of(:'error_collector.enabled'),
|
687
703
|
:documentation_default => true,
|
@@ -706,10 +722,9 @@ module NewRelic
|
|
706
722
|
:dynamic_name => true,
|
707
723
|
:description => <<~DESCRIPTION
|
708
724
|
A list of error classes that the agent should treat as expected.
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
</Callout>
|
725
|
+
\t<Callout variant="caution">
|
726
|
+
\t\tThis option can't be set via environment variable.
|
727
|
+
\t</Callout>
|
713
728
|
DESCRIPTION
|
714
729
|
},
|
715
730
|
:'error_collector.expected_messages' => {
|
@@ -720,10 +735,9 @@ module NewRelic
|
|
720
735
|
:dynamic_name => true,
|
721
736
|
:description => <<~DESCRIPTION
|
722
737
|
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.
|
723
|
-
|
724
|
-
|
725
|
-
|
726
|
-
</Callout>
|
738
|
+
\t<Callout variant="caution">
|
739
|
+
\t\tThis option can't be set via environment variable.
|
740
|
+
\t</Callout>
|
727
741
|
DESCRIPTION
|
728
742
|
},
|
729
743
|
:'error_collector.expected_status_codes' => {
|
@@ -734,19 +748,35 @@ module NewRelic
|
|
734
748
|
:dynamic_name => true,
|
735
749
|
:description => 'A comma separated list of status codes, possibly including ranges. Errors associated with these status codes, where applicable, will be treated as expected.'
|
736
750
|
},
|
737
|
-
|
751
|
+
:'error_collector.ignore_classes' => {
|
752
|
+
:default => ['ActionController::RoutingError', 'Sinatra::NotFound'],
|
753
|
+
:public => true,
|
754
|
+
:type => Array,
|
755
|
+
:allowed_from_server => true,
|
756
|
+
:dynamic_name => true,
|
757
|
+
:description => <<~DESCRIPTION
|
758
|
+
A list of error classes that the agent should ignore.
|
759
|
+
\t<Callout variant="caution">
|
760
|
+
\t\tThis option can't be set via environment variable.
|
761
|
+
\t</Callout>
|
762
|
+
DESCRIPTION
|
763
|
+
},
|
738
764
|
:'error_collector.ignore_messages' => {
|
739
|
-
|
765
|
+
# we have to keep the hash rocket in the actual default so the
|
766
|
+
# class name key is treated like a string rather than a symbol.
|
767
|
+
# however, this isn't valid yaml, so document something that is
|
768
|
+
# valid yaml
|
769
|
+
:default => {'ThreadError' => ['queue empty']},
|
770
|
+
:documentation_default => {'ThreadError': ['queue empty']},
|
740
771
|
:public => true,
|
741
772
|
:type => Hash,
|
742
773
|
:allowed_from_server => true,
|
743
774
|
:dynamic_name => true,
|
744
775
|
:description => <<~DESCRIPTION
|
745
776
|
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.
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
</Callout>
|
777
|
+
\t<Callout variant="caution">
|
778
|
+
\t\tThis option can't be set via environment variable.
|
779
|
+
\t</Callout>
|
750
780
|
DESCRIPTION
|
751
781
|
},
|
752
782
|
:'error_collector.ignore_status_codes' => {
|
@@ -780,6 +810,15 @@ module NewRelic
|
|
780
810
|
:allowed_from_server => true,
|
781
811
|
: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).'
|
782
812
|
},
|
813
|
+
# CSP nonce
|
814
|
+
:'browser_monitoring.content_security_policy_nonce' => {
|
815
|
+
:default => value_of(:'rum.enabled'),
|
816
|
+
:documentation_default => true,
|
817
|
+
:public => true,
|
818
|
+
:type => Boolean,
|
819
|
+
:allowed_from_server => false,
|
820
|
+
:description => 'If `true`, enables auto-injection of [Content Security Policy Nonce](https://content-security-policy.com/nonce/) in browser monitoring scripts. For now, auto-injection only works with Rails 5.2+.'
|
821
|
+
},
|
783
822
|
# Transaction events
|
784
823
|
:'transaction_events.enabled' => {
|
785
824
|
:default => true,
|
@@ -819,19 +858,19 @@ module NewRelic
|
|
819
858
|
:description => <<~DESCRIPTION
|
820
859
|
Sets the minimum level a log event must have to be forwarded to New Relic.
|
821
860
|
|
822
|
-
|
861
|
+
\tThis is based on the integer values of [Ruby's `Logger::Severity` constants](https://github.com/ruby/logger/blob/113b82a06b3076b93a71cd467e1605b23afb3088/lib/logger/severity.rb).
|
823
862
|
|
824
|
-
|
863
|
+
\tThe intention is to forward logs with the level given to the configuration, as well as any logs with a higher level of severity.
|
825
864
|
|
826
|
-
|
865
|
+
\tFor example, setting this value to "debug" will forward all log events to New Relic. Setting this value to "error" will only forward log events with the levels "error", "fatal", and "unknown".
|
827
866
|
|
828
|
-
|
829
|
-
|
830
|
-
|
831
|
-
|
832
|
-
|
833
|
-
|
834
|
-
|
867
|
+
\tValid values (ordered lowest to highest):
|
868
|
+
\t- "debug"
|
869
|
+
\t- "info"
|
870
|
+
\t- "warn"
|
871
|
+
\t- "error"
|
872
|
+
\t- "fatal"
|
873
|
+
\t- "unknown"
|
835
874
|
DESCRIPTION
|
836
875
|
},
|
837
876
|
:'application_logging.forwarding.custom_attributes' => {
|
@@ -842,6 +881,21 @@ module NewRelic
|
|
842
881
|
:allowed_from_server => false,
|
843
882
|
:description => 'A hash with key/value pairs to add as custom attributes to all log events forwarded to New Relic. If sending using an environment variable, the value must be formatted like: "key1=value1,key2=value2"'
|
844
883
|
},
|
884
|
+
:'application_logging.forwarding.labels.enabled' => {
|
885
|
+
:default => false,
|
886
|
+
:public => true,
|
887
|
+
:type => Boolean,
|
888
|
+
:allowed_from_server => false,
|
889
|
+
:description => 'If `true`, the agent attaches [labels](https://docs.newrelic.com/docs/apm/agents/ruby-agent/configuration/ruby-agent-configuration/#labels) to log records.'
|
890
|
+
},
|
891
|
+
:'application_logging.forwarding.labels.exclude' => {
|
892
|
+
:default => [],
|
893
|
+
:public => true,
|
894
|
+
:type => Array,
|
895
|
+
:transform => DefaultSource.method(:convert_to_list),
|
896
|
+
:allowed_from_server => false,
|
897
|
+
:description => 'A case-insensitive array or comma-delimited string containing the labels to exclude from log records.'
|
898
|
+
},
|
845
899
|
:'application_logging.forwarding.max_samples_stored' => {
|
846
900
|
:default => 10000,
|
847
901
|
:public => true,
|
@@ -1070,6 +1124,7 @@ module NewRelic
|
|
1070
1124
|
Rails::Command::InitializersCommand
|
1071
1125
|
Rails::Command::NotesCommand
|
1072
1126
|
Rails::Command::RoutesCommand
|
1127
|
+
Rails::Command::RunnerCommand
|
1073
1128
|
Rails::Command::SecretsCommand
|
1074
1129
|
Rails::Console
|
1075
1130
|
Rails::DBConsole].join(','),
|
@@ -1098,7 +1153,7 @@ module NewRelic
|
|
1098
1153
|
:public => true,
|
1099
1154
|
:type => Boolean,
|
1100
1155
|
:allowed_from_server => true,
|
1101
|
-
:description => "If `true`, the agent will report source code level metrics for traced methods.\
|
1156
|
+
:description => "If `true`, the agent will report source code level metrics for traced methods.\n\tSee: " \
|
1102
1157
|
'https://docs.newrelic.com/docs/apm/agents/ruby-agent/features/ruby-codestream-integration/'
|
1103
1158
|
},
|
1104
1159
|
# Cross application tracer
|
@@ -1110,7 +1165,7 @@ module NewRelic
|
|
1110
1165
|
:deprecated => true,
|
1111
1166
|
:description => deprecated_description(
|
1112
1167
|
:'distributed_tracing.enabled',
|
1113
|
-
'If `true`, enables [cross-application tracing](/docs/agents/ruby-agent/features/cross-application-tracing-ruby/) when `distributed_tracing.enabled` is set to `false`.'
|
1168
|
+
' If `true`, enables [cross-application tracing](/docs/agents/ruby-agent/features/cross-application-tracing-ruby/) when `distributed_tracing.enabled` is set to `false`.'
|
1114
1169
|
)
|
1115
1170
|
},
|
1116
1171
|
# Custom attributes
|
@@ -1121,6 +1176,56 @@ module NewRelic
|
|
1121
1176
|
:allowed_from_server => false,
|
1122
1177
|
:description => 'If `false`, custom attributes will not be sent on events.'
|
1123
1178
|
},
|
1179
|
+
:automatic_custom_instrumentation_method_list => {
|
1180
|
+
:default => NewRelic::EMPTY_ARRAY,
|
1181
|
+
:public => true,
|
1182
|
+
:type => Array,
|
1183
|
+
:allowed_from_server => false,
|
1184
|
+
:transform => proc { |arr| NewRelic::Agent.add_automatic_method_tracers(arr) },
|
1185
|
+
:description => <<~DESCRIPTION
|
1186
|
+
An array of `CLASS#METHOD` (for instance methods) and/or `CLASS.METHOD` (for class methods) strings representing Ruby methods that the agent can automatically add custom instrumentation to. This doesn't require any modifications of the source code that defines the methods.
|
1187
|
+
|
1188
|
+
\tUse fully qualified class names (using the `::` delimiter) that include any module or class namespacing.
|
1189
|
+
|
1190
|
+
\tHere is some Ruby source code that defines a `render_png` instance method for an `Image` class and a `notify` class method for a `User` class, both within a `MyCompany` module namespace:
|
1191
|
+
|
1192
|
+
\t```rb
|
1193
|
+
\t\tmodule MyCompany
|
1194
|
+
\t\t\tclass Image
|
1195
|
+
\t\t\t\tdef render_png
|
1196
|
+
\t\t\t\t\t# code to render a PNG
|
1197
|
+
\t\t\t\tend
|
1198
|
+
\t\t\tend
|
1199
|
+
|
1200
|
+
\t\t\tclass User
|
1201
|
+
\t\t\t\tdef self.notify
|
1202
|
+
\t\t\t\t\t# code to notify users
|
1203
|
+
\t\t\t\tend
|
1204
|
+
\t\t\tend
|
1205
|
+
\t\tend
|
1206
|
+
\t```
|
1207
|
+
|
1208
|
+
\tGiven that source code, the `newrelic.yml` config file might request instrumentation for both of these methods like so:
|
1209
|
+
|
1210
|
+
\t```yaml
|
1211
|
+
\t\tautomatic_custom_instrumentation_method_list:
|
1212
|
+
\t\t\t- MyCompany::Image#render_png
|
1213
|
+
\t\t\t- MyCompany::User.notify
|
1214
|
+
\t```
|
1215
|
+
|
1216
|
+
\tThat configuration example uses YAML array syntax to specify both methods. Alternatively, you can use a comma-delimited string:
|
1217
|
+
|
1218
|
+
\t```yaml
|
1219
|
+
\t\tautomatic_custom_instrumentation_method_list: 'MyCompany::Image#render_png, MyCompany::User.notify'
|
1220
|
+
\t```
|
1221
|
+
|
1222
|
+
\tWhitespace around the comma(s) in the list is optional. When configuring the agent with a list of methods via the `NEW_RELIC_AUTOMATIC_CUSTOM_INSTRUMENTATION_METHOD_LIST` environment variable, use this comma-delimited string format:
|
1223
|
+
|
1224
|
+
\t```sh
|
1225
|
+
\t\texport NEW_RELIC_AUTOMATIC_CUSTOM_INSTRUMENTATION_METHOD_LIST='MyCompany::Image#render_png, MyCompany::User.notify'
|
1226
|
+
\t```
|
1227
|
+
DESCRIPTION
|
1228
|
+
},
|
1124
1229
|
# Custom events
|
1125
1230
|
:'custom_insights_events.enabled' => {
|
1126
1231
|
:default => true,
|
@@ -1134,8 +1239,13 @@ module NewRelic
|
|
1134
1239
|
:public => true,
|
1135
1240
|
:type => Integer,
|
1136
1241
|
:allowed_from_server => true,
|
1137
|
-
:
|
1138
|
-
|
1242
|
+
:dynamic_name => true,
|
1243
|
+
# Keep the extra two-space indent before the second bullet to appease translation tool
|
1244
|
+
:description => <<~DESC
|
1245
|
+
- Specify a maximum number of custom events to buffer in memory at a time.
|
1246
|
+
- When configuring the agent for [AI monitoring](/docs/ai-monitoring/intro-to-ai-monitoring), \
|
1247
|
+
set to max value `100000`. This ensures the agent captures the maximum amount of LLM events.
|
1248
|
+
DESC
|
1139
1249
|
},
|
1140
1250
|
# Datastore tracer
|
1141
1251
|
:'datastore_tracer.database_name_reporting.enabled' => {
|
@@ -1200,6 +1310,7 @@ module NewRelic
|
|
1200
1310
|
:default => false,
|
1201
1311
|
:public => true,
|
1202
1312
|
:type => Boolean,
|
1313
|
+
:aliases => %i[disable_active_job],
|
1203
1314
|
:allowed_from_server => false,
|
1204
1315
|
:description => 'If `true`, disables Active Job instrumentation.'
|
1205
1316
|
},
|
@@ -1274,9 +1385,9 @@ module NewRelic
|
|
1274
1385
|
:description => <<~DESCRIPTION
|
1275
1386
|
If `true`, the agent won't wrap third-party middlewares in instrumentation (regardless of whether they are installed via `Rack::Builder` or Rails).
|
1276
1387
|
|
1277
|
-
|
1278
|
-
|
1279
|
-
|
1388
|
+
<Callout variant="important">
|
1389
|
+
When middleware instrumentation is disabled, if an application is using middleware that could alter the response code, the HTTP status code reported on the transaction may not reflect the altered value.
|
1390
|
+
</Callout>
|
1280
1391
|
DESCRIPTION
|
1281
1392
|
},
|
1282
1393
|
:disable_samplers => {
|
@@ -1315,20 +1426,18 @@ module NewRelic
|
|
1315
1426
|
:description => <<~DESCRIPTION
|
1316
1427
|
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).
|
1317
1428
|
|
1318
|
-
|
1319
|
-
|
1320
|
-
|
1321
|
-
To continue using cross application tracing, update the following options in your `newrelic.yml` configuration file:
|
1429
|
+
\t<Callout variant="important">
|
1430
|
+
\t\tCross application tracing is deprecated in favor of [distributed tracing](/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.
|
1322
1431
|
|
1323
|
-
|
1324
|
-
# newrelic.yml
|
1432
|
+
\t\tTo continue using cross application tracing, update the following options in your `newrelic.yml` configuration file:
|
1325
1433
|
|
1326
|
-
|
1327
|
-
|
1328
|
-
|
1329
|
-
|
1330
|
-
|
1331
|
-
|
1434
|
+
\t\t```yaml
|
1435
|
+
\t\t\tcross_application_tracer:
|
1436
|
+
\t\t\t\tenabled: true
|
1437
|
+
\t\t\tdistributed_tracing:
|
1438
|
+
\t\t\t\tenabled: false
|
1439
|
+
\t\t```
|
1440
|
+
\t</Callout>
|
1332
1441
|
DESCRIPTION
|
1333
1442
|
},
|
1334
1443
|
:disable_view_instrumentation => {
|
@@ -1354,7 +1463,28 @@ module NewRelic
|
|
1354
1463
|
:allowed_from_server => true,
|
1355
1464
|
: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.'
|
1356
1465
|
},
|
1466
|
+
:'distributed_tracing.sampler.remote_parent_sampled' => {
|
1467
|
+
:default => 'default',
|
1468
|
+
:public => true,
|
1469
|
+
:type => String,
|
1470
|
+
:allowed_from_server => true,
|
1471
|
+
:description => 'This setting controls the behavior of transaction sampling when a remote parent is sampled and the trace flag is set in the traceparent. Available values are `default`, `always_on`, and `always_off`.'
|
1472
|
+
},
|
1473
|
+
:'distributed_tracing.sampler.remote_parent_not_sampled' => {
|
1474
|
+
:default => 'default',
|
1475
|
+
:public => true,
|
1476
|
+
:type => String,
|
1477
|
+
:allowed_from_server => true,
|
1478
|
+
:description => 'This setting controls the behavior of transaction sampling when a remote parent is not sampled and the trace flag is not set in the traceparent. Available values are `default`, `always_on`, and `always_off`.'
|
1479
|
+
},
|
1357
1480
|
# Elasticsearch
|
1481
|
+
:'elasticsearch.capture_cluster_name' => {
|
1482
|
+
:default => true,
|
1483
|
+
:public => true,
|
1484
|
+
:type => Boolean,
|
1485
|
+
:allowed_from_server => true,
|
1486
|
+
:description => 'If `true`, the agent captures the Elasticsearch cluster name in transaction traces.'
|
1487
|
+
},
|
1358
1488
|
:'elasticsearch.capture_queries' => {
|
1359
1489
|
:default => true,
|
1360
1490
|
:public => true,
|
@@ -1426,6 +1556,7 @@ module NewRelic
|
|
1426
1556
|
},
|
1427
1557
|
:'instrumentation.async_http' => {
|
1428
1558
|
:default => 'auto',
|
1559
|
+
:documentation_default => 'auto',
|
1429
1560
|
:public => true,
|
1430
1561
|
:type => String,
|
1431
1562
|
:dynamic_name => true,
|
@@ -1434,14 +1565,85 @@ module NewRelic
|
|
1434
1565
|
},
|
1435
1566
|
:'instrumentation.bunny' => {
|
1436
1567
|
:default => 'auto',
|
1568
|
+
:documentation_default => 'auto',
|
1437
1569
|
:public => true,
|
1438
1570
|
:type => String,
|
1439
1571
|
:dynamic_name => true,
|
1440
1572
|
:allowed_from_server => false,
|
1441
1573
|
:description => 'Controls auto-instrumentation of bunny at start-up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
|
1442
1574
|
},
|
1575
|
+
:'instrumentation.aws_sdk_firehose' => {
|
1576
|
+
:default => 'auto',
|
1577
|
+
:documentation_default => 'auto',
|
1578
|
+
:public => true,
|
1579
|
+
:type => String,
|
1580
|
+
:dynamic_name => true,
|
1581
|
+
:allowed_from_server => false,
|
1582
|
+
:description => 'Controls auto-instrumentation of the aws-sdk-firehose library at start-up. May be one of `auto`, `prepend`, `chain`, `disabled`.'
|
1583
|
+
},
|
1584
|
+
:'instrumentation.aws_sdk_lambda' => {
|
1585
|
+
:default => 'auto',
|
1586
|
+
:documentation_default => 'auto',
|
1587
|
+
:public => true,
|
1588
|
+
:type => String,
|
1589
|
+
:dynamic_name => true,
|
1590
|
+
:allowed_from_server => false,
|
1591
|
+
:description => 'Controls auto-instrumentation of the aws_sdk_lambda library at start-up. May be one of `auto`, `prepend`, `chain`, `disabled`.'
|
1592
|
+
},
|
1593
|
+
:'instrumentation.aws_sdk_kinesis' => {
|
1594
|
+
:default => 'auto',
|
1595
|
+
:documentation_default => 'auto',
|
1596
|
+
:public => true,
|
1597
|
+
:type => String,
|
1598
|
+
:dynamic_name => true,
|
1599
|
+
:allowed_from_server => false,
|
1600
|
+
:description => 'Controls auto-instrumentation of the aws-sdk-kinesis library at start-up. May be one of `auto`, `prepend`, `chain`, `disabled`.'
|
1601
|
+
},
|
1602
|
+
:'instrumentation.ruby_kafka' => {
|
1603
|
+
:default => 'auto',
|
1604
|
+
:public => true,
|
1605
|
+
:type => String,
|
1606
|
+
:dynamic_name => true,
|
1607
|
+
:allowed_from_server => false,
|
1608
|
+
:description => 'Controls auto-instrumentation of the ruby-kafka library at start-up. May be one of `auto`, `prepend`, `chain`, `disabled`.'
|
1609
|
+
},
|
1610
|
+
:'instrumentation.opensearch' => {
|
1611
|
+
:default => 'auto',
|
1612
|
+
:documentation_default => 'auto',
|
1613
|
+
:public => true,
|
1614
|
+
:type => String,
|
1615
|
+
:dynamic_name => true,
|
1616
|
+
:allowed_from_server => false,
|
1617
|
+
:description => 'Controls auto-instrumentation of the opensearch-ruby library at start-up. May be one of `auto`, `prepend`, `chain`, `disabled`.'
|
1618
|
+
},
|
1619
|
+
:'instrumentation.rdkafka' => {
|
1620
|
+
:default => 'auto',
|
1621
|
+
:public => true,
|
1622
|
+
:type => String,
|
1623
|
+
:dynamic_name => true,
|
1624
|
+
:allowed_from_server => false,
|
1625
|
+
:description => 'Controls auto-instrumentation of the rdkafka library at start-up. May be one of `auto`, `prepend`, `chain`, `disabled`.'
|
1626
|
+
},
|
1627
|
+
:'instrumentation.aws_sqs' => {
|
1628
|
+
:default => 'auto',
|
1629
|
+
:public => true,
|
1630
|
+
:type => String,
|
1631
|
+
:dynamic_name => true,
|
1632
|
+
:allowed_from_server => false,
|
1633
|
+
:description => 'Controls auto-instrumentation of the aws-sdk-sqs library at start-up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
|
1634
|
+
},
|
1635
|
+
:'instrumentation.dynamodb' => {
|
1636
|
+
:default => 'auto',
|
1637
|
+
:documentation_default => 'auto',
|
1638
|
+
:public => true,
|
1639
|
+
:type => String,
|
1640
|
+
:dynamic_name => true,
|
1641
|
+
:allowed_from_server => false,
|
1642
|
+
:description => 'Controls auto-instrumentation of the aws-sdk-dynamodb library at start-up. May be one of `auto`, `prepend`, `chain`, `disabled`.'
|
1643
|
+
},
|
1443
1644
|
:'instrumentation.fiber' => {
|
1444
1645
|
:default => 'auto',
|
1646
|
+
:documentation_default => 'auto',
|
1445
1647
|
:public => true,
|
1446
1648
|
:type => String,
|
1447
1649
|
:dynamic_name => true,
|
@@ -1450,6 +1652,7 @@ module NewRelic
|
|
1450
1652
|
},
|
1451
1653
|
:'instrumentation.concurrent_ruby' => {
|
1452
1654
|
:default => 'auto',
|
1655
|
+
:documentation_default => 'auto',
|
1453
1656
|
:public => true,
|
1454
1657
|
:type => String,
|
1455
1658
|
:dynamic_name => true,
|
@@ -1476,6 +1679,7 @@ module NewRelic
|
|
1476
1679
|
},
|
1477
1680
|
:'instrumentation.elasticsearch' => {
|
1478
1681
|
:default => 'auto',
|
1682
|
+
:documentation_default => 'auto',
|
1479
1683
|
:public => true,
|
1480
1684
|
:type => String,
|
1481
1685
|
:dynamic_name => true,
|
@@ -1484,11 +1688,12 @@ module NewRelic
|
|
1484
1688
|
},
|
1485
1689
|
:'instrumentation.ethon' => {
|
1486
1690
|
:default => 'auto',
|
1691
|
+
:documentation_default => 'auto',
|
1487
1692
|
:public => true,
|
1488
1693
|
:type => String,
|
1489
1694
|
:dynamic_name => true,
|
1490
1695
|
:allowed_from_server => false,
|
1491
|
-
:description => 'Controls auto-instrumentation of ethon at start up. May be one of
|
1696
|
+
:description => 'Controls auto-instrumentation of ethon at start up. May be one of `auto`, `prepend`, `chain`, `disabled`'
|
1492
1697
|
},
|
1493
1698
|
:'instrumentation.excon' => {
|
1494
1699
|
:default => 'enabled',
|
@@ -1501,6 +1706,7 @@ module NewRelic
|
|
1501
1706
|
},
|
1502
1707
|
:'instrumentation.grape' => {
|
1503
1708
|
:default => 'auto',
|
1709
|
+
:documentation_default => 'auto',
|
1504
1710
|
:public => true,
|
1505
1711
|
:type => String,
|
1506
1712
|
:dynamic_name => true,
|
@@ -1558,7 +1764,7 @@ module NewRelic
|
|
1558
1764
|
:type => String,
|
1559
1765
|
:dynamic_name => true,
|
1560
1766
|
:allowed_from_server => false,
|
1561
|
-
:description => 'Controls auto-instrumentation of httpx at start up. May be one of
|
1767
|
+
:description => 'Controls auto-instrumentation of httpx at start up. May be one of `auto`, `prepend`, `chain`, `disabled`'
|
1562
1768
|
},
|
1563
1769
|
:'instrumentation.logger' => {
|
1564
1770
|
:default => instrumentation_value_from_boolean(:'application_logging.enabled'),
|
@@ -1569,8 +1775,18 @@ module NewRelic
|
|
1569
1775
|
:allowed_from_server => false,
|
1570
1776
|
:description => 'Controls auto-instrumentation of Ruby standard library Logger at start-up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
|
1571
1777
|
},
|
1778
|
+
:'instrumentation.logstasher' => {
|
1779
|
+
:default => instrumentation_value_from_boolean(:'application_logging.enabled'),
|
1780
|
+
:documentation_default => 'auto',
|
1781
|
+
:public => true,
|
1782
|
+
:type => String,
|
1783
|
+
:dynamic_name => true,
|
1784
|
+
:allowed_from_server => false,
|
1785
|
+
:description => 'Controls auto-instrumentation of the LogStasher library at start-up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
|
1786
|
+
},
|
1572
1787
|
:'instrumentation.memcache' => {
|
1573
1788
|
:default => 'auto',
|
1789
|
+
:documentation_default => 'auto',
|
1574
1790
|
:public => true,
|
1575
1791
|
:type => String,
|
1576
1792
|
:dynamic_name => true,
|
@@ -1620,7 +1836,7 @@ module NewRelic
|
|
1620
1836
|
:type => String,
|
1621
1837
|
:dynamic_name => true,
|
1622
1838
|
:allowed_from_server => false,
|
1623
|
-
:description => 'Controls auto-instrumentation of the ruby-openai gem at start-up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
|
1839
|
+
:description => 'Controls auto-instrumentation of the ruby-openai gem at start-up. May be one of: `auto`, `prepend`, `chain`, `disabled`. Defaults to `disabled` in high security mode.'
|
1624
1840
|
},
|
1625
1841
|
:'instrumentation.puma_rack' => {
|
1626
1842
|
:default => value_of(:'instrumentation.rack'),
|
@@ -1664,6 +1880,7 @@ module NewRelic
|
|
1664
1880
|
},
|
1665
1881
|
:'instrumentation.rake' => {
|
1666
1882
|
:default => 'auto',
|
1883
|
+
:documentation_default => 'auto',
|
1667
1884
|
:public => true,
|
1668
1885
|
:type => String,
|
1669
1886
|
:dynamic_name => true,
|
@@ -1672,6 +1889,7 @@ module NewRelic
|
|
1672
1889
|
},
|
1673
1890
|
:'instrumentation.redis' => {
|
1674
1891
|
:default => 'auto',
|
1892
|
+
:documentation_default => 'auto',
|
1675
1893
|
:public => true,
|
1676
1894
|
:type => String,
|
1677
1895
|
:dynamic_name => true,
|
@@ -1689,6 +1907,7 @@ module NewRelic
|
|
1689
1907
|
},
|
1690
1908
|
:'instrumentation.roda' => {
|
1691
1909
|
:default => 'auto',
|
1910
|
+
:documentation_default => 'auto',
|
1692
1911
|
:public => true,
|
1693
1912
|
:type => String,
|
1694
1913
|
:dynamic_name => true,
|
@@ -1697,6 +1916,7 @@ module NewRelic
|
|
1697
1916
|
},
|
1698
1917
|
:'instrumentation.sinatra' => {
|
1699
1918
|
:default => 'auto',
|
1919
|
+
:documentation_default => 'auto',
|
1700
1920
|
:public => true,
|
1701
1921
|
:type => String,
|
1702
1922
|
:dynamic_name => true,
|
@@ -1712,6 +1932,7 @@ module NewRelic
|
|
1712
1932
|
},
|
1713
1933
|
:'instrumentation.view_component' => {
|
1714
1934
|
:default => 'auto',
|
1935
|
+
:documentation_default => 'auto',
|
1715
1936
|
:public => true,
|
1716
1937
|
:type => String,
|
1717
1938
|
:dynamic_name => true,
|
@@ -1728,7 +1949,7 @@ module NewRelic
|
|
1728
1949
|
:description => <<~DESCRIPTION
|
1729
1950
|
An array of strings to specify which keys inside a Stripe event's `user_data` hash should be reported
|
1730
1951
|
to New Relic. Each string in this array will be turned into a regular expression via `Regexp.new` to
|
1731
|
-
|
1952
|
+
enable advanced matching. Setting the value to `["."]` will report all `user_data`.
|
1732
1953
|
DESCRIPTION
|
1733
1954
|
},
|
1734
1955
|
:'stripe.user_data.exclude' => {
|
@@ -1740,14 +1961,15 @@ module NewRelic
|
|
1740
1961
|
:transform => DefaultSource.method(:convert_to_list),
|
1741
1962
|
:description => <<~DESCRIPTION
|
1742
1963
|
An array of strings to specify which keys and/or values inside a Stripe event's `user_data` hash should
|
1743
|
-
|
1744
|
-
`Regexp.new` to permit advanced matching. For each hash pair, if either the key or value is matched the
|
1745
|
-
|
1746
|
-
|
1964
|
+
\tnot be reported to New Relic. Each string in this array will be turned into a regular expression via
|
1965
|
+
\t`Regexp.new` to permit advanced matching. For each hash pair, if either the key or value is matched the pair
|
1966
|
+
\tisn't reported. By default, no `user_data` is reported. Use this option only if the
|
1967
|
+
\t`stripe.user_data.include` option is also used.
|
1747
1968
|
DESCRIPTION
|
1748
1969
|
},
|
1749
1970
|
:'instrumentation.thread' => {
|
1750
1971
|
:default => 'auto',
|
1972
|
+
:documentation_default => 'auto',
|
1751
1973
|
:public => true,
|
1752
1974
|
:type => String,
|
1753
1975
|
:dynamic_name => true,
|
@@ -1770,6 +1992,7 @@ module NewRelic
|
|
1770
1992
|
},
|
1771
1993
|
:'instrumentation.tilt' => {
|
1772
1994
|
:default => 'auto',
|
1995
|
+
:documentation_default => 'auto',
|
1773
1996
|
:public => true,
|
1774
1997
|
:type => String,
|
1775
1998
|
:dynamic_name => true,
|
@@ -1808,6 +2031,21 @@ module NewRelic
|
|
1808
2031
|
:allowed_from_server => true,
|
1809
2032
|
:description => 'If `true`, the agent obfuscates Mongo queries in transaction traces.'
|
1810
2033
|
},
|
2034
|
+
# OpenSearch
|
2035
|
+
:'opensearch.capture_queries' => {
|
2036
|
+
:default => true,
|
2037
|
+
:public => true,
|
2038
|
+
:type => Boolean,
|
2039
|
+
:allowed_from_server => true,
|
2040
|
+
:description => 'If `true`, the agent captures OpenSearch queries in transaction traces.'
|
2041
|
+
},
|
2042
|
+
:'opensearch.obfuscate_queries' => {
|
2043
|
+
:default => true,
|
2044
|
+
:public => true,
|
2045
|
+
:type => Boolean,
|
2046
|
+
:allowed_from_server => true,
|
2047
|
+
:description => 'If `true`, the agent obfuscates OpenSearch queries in transaction traces.'
|
2048
|
+
},
|
1811
2049
|
# Process host
|
1812
2050
|
:'process_host.display_name' => {
|
1813
2051
|
:default => proc { NewRelic::Agent::Hostname.get },
|
@@ -1827,7 +2065,7 @@ module NewRelic
|
|
1827
2065
|
If `true`, when the agent is in an application using Ruby on Rails, it will start after `config/initializers` run.
|
1828
2066
|
|
1829
2067
|
<Callout variant="caution">
|
1830
|
-
|
2068
|
+
\tThis option may only be set by environment variable.
|
1831
2069
|
</Callout>
|
1832
2070
|
DESCRIPTION
|
1833
2071
|
},
|
@@ -1869,7 +2107,7 @@ module NewRelic
|
|
1869
2107
|
:transform => proc { |bool| NewRelic::Agent::ServerlessHandler.env_var_set? || bool },
|
1870
2108
|
:description => 'If `true`, the agent will operate in a streamlined mode suitable for use with short-lived ' \
|
1871
2109
|
'serverless functions. NOTE: Only AWS Lambda functions are supported currently and this ' \
|
1872
|
-
"option
|
2110
|
+
"option isn't intended for use without [New Relic's Ruby Lambda layer](https://docs.newrelic.com/docs/serverless-function-monitoring/aws-lambda-monitoring/get-started/monitoring-aws-lambda-serverless-monitoring/) offering."
|
1873
2111
|
},
|
1874
2112
|
# Sidekiq
|
1875
2113
|
:'sidekiq.args.include' => {
|
@@ -1963,7 +2201,12 @@ module NewRelic
|
|
1963
2201
|
:public => true,
|
1964
2202
|
:type => Integer,
|
1965
2203
|
:allowed_from_server => true,
|
1966
|
-
|
2204
|
+
# Keep the extra two-space indent before the second bullet to appease translation tool
|
2205
|
+
:description => <<~DESC
|
2206
|
+
- Defines the maximum number of span events reported from a single harvest. Any Integer between `1` and `10000` is valid.'
|
2207
|
+
- When configuring the agent for [AI monitoring](/docs/ai-monitoring/intro-to-ai-monitoring), set to max value `10000`.\
|
2208
|
+
This ensures the agent captures the maximum amount of distributed traces.
|
2209
|
+
DESC
|
1967
2210
|
},
|
1968
2211
|
# Strip exception messages
|
1969
2212
|
:'strip_exception_messages.enabled' => {
|
@@ -1972,7 +2215,7 @@ module NewRelic
|
|
1972
2215
|
:public => true,
|
1973
2216
|
:type => Boolean,
|
1974
2217
|
:allowed_from_server => false,
|
1975
|
-
:description => 'If true, the agent strips messages from all exceptions except those in the [
|
2218
|
+
:description => 'If true, the agent strips messages from all exceptions except those in the [allowed classes list](#strip_exception_messages-allowed_classes). Enabled automatically in [high security mode](/docs/accounts-partnerships/accounts/security/high-security).'
|
1976
2219
|
},
|
1977
2220
|
:'strip_exception_messages.allowed_classes' => {
|
1978
2221
|
:default => '',
|
@@ -1982,6 +2225,28 @@ module NewRelic
|
|
1982
2225
|
:transform => DefaultSource.method(:convert_to_constant_list),
|
1983
2226
|
: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"`.'
|
1984
2227
|
},
|
2228
|
+
# Agent Control
|
2229
|
+
:'agent_control.enabled' => {
|
2230
|
+
:default => false,
|
2231
|
+
:public => false,
|
2232
|
+
:type => Boolean,
|
2233
|
+
:allowed_from_server => false,
|
2234
|
+
:description => 'Boolean value that denotes whether Agent Control functionality should be enabled. At the moment, this functionality is limited to whether agent health should be reported. This configuration will be set using an environment variable by Agent Control, or one of its components, prior to agent startup.'
|
2235
|
+
},
|
2236
|
+
:'agent_control.health.delivery_location' => {
|
2237
|
+
:default => '/newrelic/apm/health',
|
2238
|
+
:public => false,
|
2239
|
+
:type => String,
|
2240
|
+
:allowed_from_server => false,
|
2241
|
+
:description => 'A `file:` URI that specifies the fully qualified directory path for health file(s) to be written to. This defaults to: `file:///newrelic/apm/health`. This configuration will be set using an environment variable by Agent Control, or one of its components, prior to agent startup.'
|
2242
|
+
},
|
2243
|
+
:'agent_control.health.frequency' => {
|
2244
|
+
:default => 5,
|
2245
|
+
:public => false,
|
2246
|
+
:type => Integer,
|
2247
|
+
:allowed_from_server => false,
|
2248
|
+
:description => 'The interval, in seconds, of how often the health file(s) will be written to. This configuration will be set using an environment variable by Agent Control, or one of its components, prior to agent startup.'
|
2249
|
+
},
|
1985
2250
|
# Thread profiler
|
1986
2251
|
:'thread_profiler.enabled' => {
|
1987
2252
|
:default => DefaultSource.thread_profiler_enabled,
|
@@ -2111,7 +2376,7 @@ module NewRelic
|
|
2111
2376
|
:description => 'Enable or disable debugging version of JavaScript agent loader for browser monitoring instrumentation.'
|
2112
2377
|
},
|
2113
2378
|
:'browser_monitoring.ssl_for_http' => {
|
2114
|
-
:default =>
|
2379
|
+
:default => false,
|
2115
2380
|
:allow_nil => true,
|
2116
2381
|
:public => false,
|
2117
2382
|
:type => Boolean,
|
@@ -2244,6 +2509,14 @@ module NewRelic
|
|
2244
2509
|
:allowed_from_server => true,
|
2245
2510
|
:description => 'Number of seconds betwixt connections to the New Relic span event collection services.'
|
2246
2511
|
},
|
2512
|
+
# TODO: Sync with the other agents to see what the config should be named, how it should be enabled, how it should be described
|
2513
|
+
:'opentelemetry_bridge.enabled' => {
|
2514
|
+
:default => false,
|
2515
|
+
:public => false,
|
2516
|
+
:type => Boolean,
|
2517
|
+
:allowed_from_server => false,
|
2518
|
+
:description => 'Enables the creation of Transaction Trace segments and timeslice metrics from OpenTelemetry Spans. This will help drive New Relic UI experience for opentelemetry spans. **WARNING**: This is not feature complete and is not intended to be enabled yet.'
|
2519
|
+
},
|
2247
2520
|
:force_reconnect => {
|
2248
2521
|
:default => false,
|
2249
2522
|
:public => false,
|
@@ -2282,11 +2555,9 @@ module NewRelic
|
|
2282
2555
|
:allowlist => %i[none low medium high],
|
2283
2556
|
:external => :infinite_tracing,
|
2284
2557
|
:description => <<~DESC
|
2285
|
-
Configure the compression level for data sent to the trace observer.
|
2286
|
-
|
2287
|
-
|
2288
|
-
|
2289
|
-
Set the level to `:none` to disable compression.
|
2558
|
+
Configure the compression level for data sent to the trace observer. \
|
2559
|
+
May be one of: `:none`, `:low`, `:medium`, `:high`. \
|
2560
|
+
Set the level to `:none` to disable compression.
|
2290
2561
|
DESC
|
2291
2562
|
},
|
2292
2563
|
:js_agent_file => {
|
@@ -2476,6 +2747,233 @@ module NewRelic
|
|
2476
2747
|
:type => Integer,
|
2477
2748
|
:allowed_from_server => false,
|
2478
2749
|
: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).'
|
2750
|
+
},
|
2751
|
+
# security agent
|
2752
|
+
:'security.agent.enabled' => {
|
2753
|
+
:default => false,
|
2754
|
+
:external => true,
|
2755
|
+
:public => true,
|
2756
|
+
:type => Boolean,
|
2757
|
+
:allowed_from_server => false,
|
2758
|
+
:description => "If `true`, the security agent is loaded (a Ruby 'require' is performed)"
|
2759
|
+
},
|
2760
|
+
:'security.enabled' => {
|
2761
|
+
:default => false,
|
2762
|
+
:external => true,
|
2763
|
+
:public => true,
|
2764
|
+
:type => Boolean,
|
2765
|
+
:allowed_from_server => false,
|
2766
|
+
:description => 'If `true`, the security agent is started (the agent runs in its event loop)'
|
2767
|
+
},
|
2768
|
+
:'security.mode' => {
|
2769
|
+
:default => 'IAST',
|
2770
|
+
:external => true,
|
2771
|
+
:public => true,
|
2772
|
+
:type => String,
|
2773
|
+
:allowed_from_server => true,
|
2774
|
+
:allowlist => %w[IAST RASP],
|
2775
|
+
:description => 'Defines the mode for the security agent to operate in. Currently only `IAST` is supported',
|
2776
|
+
:dynamic_name => true
|
2777
|
+
},
|
2778
|
+
:'security.validator_service_url' => {
|
2779
|
+
:default => 'wss://csec.nr-data.net',
|
2780
|
+
:external => true,
|
2781
|
+
:public => true,
|
2782
|
+
:type => String,
|
2783
|
+
:allowed_from_server => true,
|
2784
|
+
:description => 'Defines the endpoint URL for posting security-related data',
|
2785
|
+
:dynamic_name => true
|
2786
|
+
},
|
2787
|
+
:'security.application_info.port' => {
|
2788
|
+
:default => nil,
|
2789
|
+
:allow_nil => true,
|
2790
|
+
:public => true,
|
2791
|
+
:type => Integer,
|
2792
|
+
:external => true,
|
2793
|
+
:allowed_from_server => false,
|
2794
|
+
:description => 'The port the application is listening on. This setting is mandatory for Passenger servers. The agent detects other servers by default.'
|
2795
|
+
},
|
2796
|
+
:'security.exclude_from_iast_scan.api' => {
|
2797
|
+
:default => [],
|
2798
|
+
:public => true,
|
2799
|
+
:type => Array,
|
2800
|
+
:external => true,
|
2801
|
+
:allowed_from_server => true,
|
2802
|
+
:transform => DefaultSource.method(:convert_to_list),
|
2803
|
+
:description => 'Defines API paths the security agent should ignore in IAST scans. Accepts an array of regex patterns matching the URI to ignore. The regex pattern should find a complete match for the URL without the endpoint. For example, `[".*account.*"], [".*/\api\/v1\/.*?\/login"]`'
|
2804
|
+
},
|
2805
|
+
:'security.exclude_from_iast_scan.http_request_parameters.header' => {
|
2806
|
+
:default => [],
|
2807
|
+
:public => true,
|
2808
|
+
:type => Array,
|
2809
|
+
:external => true,
|
2810
|
+
:allowed_from_server => true,
|
2811
|
+
:transform => DefaultSource.method(:convert_to_list),
|
2812
|
+
:description => 'An array of HTTP request headers the security agent should ignore in IAST scans. The array should specify a list of patterns matching the headers to ignore.'
|
2813
|
+
},
|
2814
|
+
:'security.exclude_from_iast_scan.http_request_parameters.query' => {
|
2815
|
+
:default => [],
|
2816
|
+
:public => true,
|
2817
|
+
:type => Array,
|
2818
|
+
:external => true,
|
2819
|
+
:allowed_from_server => true,
|
2820
|
+
:transform => DefaultSource.method(:convert_to_list),
|
2821
|
+
:description => 'An array of HTTP request query parameters the security agent should ignore in IAST scans. The array should specify a list of patterns matching the HTTP request query parameters to ignore.'
|
2822
|
+
},
|
2823
|
+
:'security.exclude_from_iast_scan.http_request_parameters.body' => {
|
2824
|
+
:default => [],
|
2825
|
+
:public => true,
|
2826
|
+
:type => Array,
|
2827
|
+
:external => true,
|
2828
|
+
:allowed_from_server => true,
|
2829
|
+
:transform => DefaultSource.method(:convert_to_list),
|
2830
|
+
:description => 'An array of HTTP request body keys the security agent should ignore in IAST scans.'
|
2831
|
+
},
|
2832
|
+
:'security.exclude_from_iast_scan.iast_detection_category.insecure_settings' => {
|
2833
|
+
:default => false,
|
2834
|
+
:external => true,
|
2835
|
+
:public => true,
|
2836
|
+
:type => Boolean,
|
2837
|
+
:allowed_from_server => false,
|
2838
|
+
:description => 'If `true`, disables the detection of low-severity insecure settings. For example, hash, crypto, cookie, random generators, trust boundary).'
|
2839
|
+
},
|
2840
|
+
:'security.exclude_from_iast_scan.iast_detection_category.invalid_file_access' => {
|
2841
|
+
:default => false,
|
2842
|
+
:external => true,
|
2843
|
+
:public => true,
|
2844
|
+
:type => Boolean,
|
2845
|
+
:allowed_from_server => false,
|
2846
|
+
:description => 'If `true`, disables file operation-related IAST detections (File Access & Application integrity violation)'
|
2847
|
+
},
|
2848
|
+
:'security.exclude_from_iast_scan.iast_detection_category.sql_injection' => {
|
2849
|
+
:default => false,
|
2850
|
+
:external => true,
|
2851
|
+
:public => true,
|
2852
|
+
:type => Boolean,
|
2853
|
+
:allowed_from_server => false,
|
2854
|
+
:description => 'If `true`, disables SQL injection detection in IAST scans.'
|
2855
|
+
},
|
2856
|
+
:'security.exclude_from_iast_scan.iast_detection_category.nosql_injection' => {
|
2857
|
+
:default => false,
|
2858
|
+
:external => true,
|
2859
|
+
:public => true,
|
2860
|
+
:type => Boolean,
|
2861
|
+
:allowed_from_server => false,
|
2862
|
+
:description => 'If `true`, disables NOSQL injection detection in IAST scans.'
|
2863
|
+
},
|
2864
|
+
:'security.exclude_from_iast_scan.iast_detection_category.ldap_injection' => {
|
2865
|
+
:default => false,
|
2866
|
+
:external => true,
|
2867
|
+
:public => true,
|
2868
|
+
:type => Boolean,
|
2869
|
+
:allowed_from_server => false,
|
2870
|
+
:description => 'If `true`, disables LDAP injection detection in IAST scans.'
|
2871
|
+
},
|
2872
|
+
:'security.exclude_from_iast_scan.iast_detection_category.javascript_injection' => {
|
2873
|
+
:default => false,
|
2874
|
+
:external => true,
|
2875
|
+
:public => true,
|
2876
|
+
:type => Boolean,
|
2877
|
+
:allowed_from_server => false,
|
2878
|
+
:description => 'If `true`, disables Javascript injection detection in IAST scans.'
|
2879
|
+
},
|
2880
|
+
:'security.exclude_from_iast_scan.iast_detection_category.command_injection' => {
|
2881
|
+
:default => false,
|
2882
|
+
:external => true,
|
2883
|
+
:public => true,
|
2884
|
+
:type => Boolean,
|
2885
|
+
:allowed_from_server => false,
|
2886
|
+
:description => 'If `true`, disables system command injection detection in IAST scans.'
|
2887
|
+
},
|
2888
|
+
:'security.exclude_from_iast_scan.iast_detection_category.xpath_injection' => {
|
2889
|
+
:default => false,
|
2890
|
+
:external => true,
|
2891
|
+
:public => true,
|
2892
|
+
:type => Boolean,
|
2893
|
+
:allowed_from_server => false,
|
2894
|
+
:description => 'If `true`, disables XPATH injection detection in IAST scans.'
|
2895
|
+
},
|
2896
|
+
:'security.exclude_from_iast_scan.iast_detection_category.ssrf' => {
|
2897
|
+
:default => false,
|
2898
|
+
:external => true,
|
2899
|
+
:public => true,
|
2900
|
+
:type => Boolean,
|
2901
|
+
:allowed_from_server => false,
|
2902
|
+
:description => 'If `true`, disables Sever-Side Request Forgery (SSRF) detection in IAST scans.'
|
2903
|
+
},
|
2904
|
+
:'security.exclude_from_iast_scan.iast_detection_category.rxss' => {
|
2905
|
+
:default => false,
|
2906
|
+
:external => true,
|
2907
|
+
:public => true,
|
2908
|
+
:type => Boolean,
|
2909
|
+
:allowed_from_server => false,
|
2910
|
+
:description => 'If `true`, disables Reflected Cross-Site Scripting (RXSS) detection in IAST scans.'
|
2911
|
+
},
|
2912
|
+
:'security.scan_schedule.delay' => {
|
2913
|
+
:default => 0,
|
2914
|
+
:public => true,
|
2915
|
+
:type => Integer,
|
2916
|
+
:external => true,
|
2917
|
+
:allowed_from_server => true,
|
2918
|
+
:description => 'Specifies the delay time (in minutes) before the IAST scan begins after the application starts.'
|
2919
|
+
},
|
2920
|
+
:'security.scan_schedule.duration' => {
|
2921
|
+
:default => 0,
|
2922
|
+
:public => true,
|
2923
|
+
:type => Integer,
|
2924
|
+
:external => true,
|
2925
|
+
:allowed_from_server => true,
|
2926
|
+
:description => 'Indicates the duration (in minutes) for which the IAST scan will be performed.'
|
2927
|
+
},
|
2928
|
+
:'security.scan_schedule.schedule' => {
|
2929
|
+
:default => '',
|
2930
|
+
:public => true,
|
2931
|
+
:type => String,
|
2932
|
+
:external => true,
|
2933
|
+
:allowed_from_server => true,
|
2934
|
+
:description => 'Specifies a cron expression that sets when the IAST scan should run.',
|
2935
|
+
:dynamic_name => true
|
2936
|
+
},
|
2937
|
+
:'security.scan_schedule.always_sample_traces' => {
|
2938
|
+
:default => false,
|
2939
|
+
:external => true,
|
2940
|
+
:public => true,
|
2941
|
+
:type => Boolean,
|
2942
|
+
:allowed_from_server => false,
|
2943
|
+
:description => 'If `true`, allows IAST to continuously gather trace data in the background. The security agent uses collected data to perform an IAST scan at the scheduled time.'
|
2944
|
+
},
|
2945
|
+
:'security.scan_controllers.iast_scan_request_rate_limit' => {
|
2946
|
+
:default => 3600,
|
2947
|
+
:public => true,
|
2948
|
+
:type => Integer,
|
2949
|
+
:external => true,
|
2950
|
+
:allowed_from_server => true,
|
2951
|
+
:description => 'Sets the maximum number of HTTP requests allowed for the IAST scan per minute. Any Integer between 12 and 3600 is valid. The default value is 3600.'
|
2952
|
+
},
|
2953
|
+
:'security.scan_controllers.scan_instance_count' => {
|
2954
|
+
:default => 0,
|
2955
|
+
:public => true,
|
2956
|
+
:type => Integer,
|
2957
|
+
:external => true,
|
2958
|
+
:allowed_from_server => true,
|
2959
|
+
:description => 'The number of application instances for a specific entity to perform IAST analysis on.'
|
2960
|
+
},
|
2961
|
+
:'security.scan_controllers.report_http_response_body' => {
|
2962
|
+
:default => true,
|
2963
|
+
:public => true,
|
2964
|
+
:type => Boolean,
|
2965
|
+
:external => true,
|
2966
|
+
:allowed_from_server => true,
|
2967
|
+
:description => 'If `true`, enables the sending of HTTP responses bodies. Disabling this also disables Reflected Cross-Site Scripting (RXSS) vulnerability detection.'
|
2968
|
+
},
|
2969
|
+
:'security.iast_test_identifier' => {
|
2970
|
+
:default => nil,
|
2971
|
+
:allow_nil => true,
|
2972
|
+
:public => true,
|
2973
|
+
:type => String,
|
2974
|
+
:external => true,
|
2975
|
+
:allowed_from_server => true,
|
2976
|
+
:description => 'A unique test identifier when runnning IAST in a CI/CD environment to differentiate between different test runs. For example, a build number.'
|
2479
2977
|
}
|
2480
2978
|
}.freeze
|
2481
2979
|
# rubocop:enable Metrics/CollectionLiteralLength
|