newrelic_rpm 7.0.0 → 9.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +7 -2
- data/.rubocop.yml +1919 -0
- data/.rubocop_todo.yml +100 -0
- data/.simplecov +15 -0
- data/.snyk +11 -0
- data/.yardopts +1 -0
- data/Brewfile +12 -0
- data/CHANGELOG.md +3754 -2825
- data/CONTRIBUTING.md +33 -7
- data/DOCKER.md +167 -0
- data/Dockerfile +10 -0
- data/Gemfile +0 -1
- data/Guardfile +9 -8
- data/LICENSE +0 -6
- data/README.md +23 -19
- data/Rakefile +27 -29
- data/THIRD_PARTY_NOTICES.md +14 -199
- data/Thorfile +5 -0
- data/bin/newrelic +3 -2
- data/bin/newrelic_cmd +1 -0
- data/bin/nrdebug +76 -53
- data/config.dot +5 -5
- data/docker-compose.yml +107 -0
- data/init.rb +4 -6
- data/install.rb +2 -2
- data/lefthook.yml +9 -0
- data/lib/new_relic/agent/adaptive_sampler.rb +13 -9
- data/lib/new_relic/agent/agent.rb +96 -925
- data/lib/new_relic/agent/agent_helpers/connect.rb +227 -0
- data/lib/new_relic/agent/agent_helpers/harvest.rb +153 -0
- data/lib/new_relic/agent/agent_helpers/shutdown.rb +72 -0
- data/lib/new_relic/agent/agent_helpers/special_startup.rb +74 -0
- data/lib/new_relic/agent/agent_helpers/start_worker_thread.rb +167 -0
- data/lib/new_relic/agent/agent_helpers/startup.rb +202 -0
- data/lib/new_relic/agent/agent_helpers/transmit.rb +76 -0
- data/lib/new_relic/agent/agent_logger.rb +23 -19
- data/lib/new_relic/agent/attribute_filter.rb +64 -47
- data/lib/new_relic/agent/attribute_processing.rb +7 -7
- data/lib/new_relic/agent/attributes.rb +5 -4
- data/lib/new_relic/agent/audit_logger.rb +8 -3
- data/lib/new_relic/agent/autostart.rb +20 -18
- data/lib/new_relic/agent/chained_call.rb +1 -1
- data/lib/new_relic/agent/commands/agent_command.rb +3 -3
- data/lib/new_relic/agent/commands/agent_command_router.rb +12 -11
- data/lib/new_relic/agent/commands/thread_profiler_session.rb +12 -10
- data/lib/new_relic/agent/configuration/default_source.rb +1366 -1297
- data/lib/new_relic/agent/configuration/dotted_hash.rb +6 -5
- data/lib/new_relic/agent/configuration/environment_source.rb +11 -9
- data/lib/new_relic/agent/configuration/event_harvest_config.rb +40 -17
- data/lib/new_relic/agent/configuration/high_security_source.rb +8 -9
- data/lib/new_relic/agent/configuration/manager.rb +82 -69
- data/lib/new_relic/agent/configuration/manual_source.rb +1 -1
- data/lib/new_relic/agent/configuration/mask_defaults.rb +3 -3
- data/lib/new_relic/agent/configuration/security_policy_source.rb +82 -85
- data/lib/new_relic/agent/configuration/server_source.rb +21 -19
- data/lib/new_relic/agent/configuration/yaml_source.rb +31 -7
- data/lib/new_relic/agent/configuration.rb +1 -1
- data/lib/new_relic/agent/connect/request_builder.rb +18 -18
- data/lib/new_relic/agent/connect/response_handler.rb +5 -8
- data/lib/new_relic/agent/custom_event_aggregator.rb +14 -14
- data/lib/new_relic/agent/database/explain_plan_helpers.rb +4 -5
- data/lib/new_relic/agent/database/obfuscation_helpers.rb +14 -13
- data/lib/new_relic/agent/database/obfuscator.rb +2 -2
- data/lib/new_relic/agent/database/postgres_explain_obfuscator.rb +3 -3
- data/lib/new_relic/agent/database.rb +42 -50
- data/lib/new_relic/agent/database_adapter.rb +3 -1
- data/lib/new_relic/agent/datastores/metric_helper.rb +17 -18
- data/lib/new_relic/agent/datastores/mongo/event_formatter.rb +7 -6
- data/lib/new_relic/agent/datastores/mongo/metric_translator.rb +6 -10
- data/lib/new_relic/agent/datastores/mongo.rb +6 -11
- data/lib/new_relic/agent/datastores/nosql_obfuscator.rb +41 -0
- data/lib/new_relic/agent/datastores/redis.rb +5 -7
- data/lib/new_relic/agent/datastores.rb +13 -15
- data/lib/new_relic/agent/deprecator.rb +1 -1
- data/lib/new_relic/agent/distributed_tracing/cross_app_payload.rb +10 -10
- data/lib/new_relic/agent/distributed_tracing/cross_app_tracing.rb +40 -34
- data/lib/new_relic/agent/distributed_tracing/distributed_trace_attributes.rb +22 -22
- data/lib/new_relic/agent/distributed_tracing/distributed_trace_metrics.rb +19 -19
- data/lib/new_relic/agent/distributed_tracing/distributed_trace_payload.rb +50 -52
- data/lib/new_relic/agent/distributed_tracing/distributed_trace_transport_type.rb +5 -6
- data/lib/new_relic/agent/distributed_tracing/trace_context.rb +76 -77
- data/lib/new_relic/agent/distributed_tracing/trace_context_payload.rb +39 -38
- data/lib/new_relic/agent/distributed_tracing.rb +33 -35
- data/lib/new_relic/agent/encoding_normalizer.rb +4 -2
- data/lib/new_relic/agent/error_collector.rb +73 -54
- data/lib/new_relic/agent/error_event_aggregator.rb +4 -5
- data/lib/new_relic/agent/error_filter.rb +174 -0
- data/lib/new_relic/agent/error_trace_aggregator.rb +4 -3
- data/lib/new_relic/agent/event_aggregator.rb +22 -21
- data/lib/new_relic/agent/event_buffer.rb +7 -8
- data/lib/new_relic/agent/event_listener.rb +1 -2
- data/lib/new_relic/agent/event_loop.rb +26 -24
- data/lib/new_relic/agent/external.rb +11 -44
- data/lib/new_relic/agent/guid_generator.rb +13 -11
- data/lib/new_relic/agent/harvester.rb +4 -5
- data/lib/new_relic/agent/heap.rb +7 -9
- data/lib/new_relic/agent/hostname.rb +20 -13
- data/lib/new_relic/agent/http_clients/abstract.rb +10 -11
- data/lib/new_relic/agent/http_clients/curb_wrappers.rb +6 -11
- data/lib/new_relic/agent/http_clients/excon_wrappers.rb +8 -9
- data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +4 -5
- data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +2 -4
- data/lib/new_relic/agent/http_clients/net_http_wrappers.rb +8 -4
- data/lib/new_relic/agent/http_clients/typhoeus_wrappers.rb +4 -5
- data/lib/new_relic/agent/http_clients/uri_util.rb +1 -3
- data/lib/new_relic/agent/instrumentation/action_cable_subscriber.rb +9 -22
- data/lib/new_relic/agent/instrumentation/action_controller_other_subscriber.rb +39 -0
- data/lib/new_relic/agent/instrumentation/action_controller_subscriber.rb +38 -31
- data/lib/new_relic/agent/instrumentation/action_dispatch.rb +31 -0
- data/lib/new_relic/agent/instrumentation/action_dispatch_subscriber.rb +64 -0
- data/lib/new_relic/agent/instrumentation/action_mailbox.rb +30 -0
- data/lib/new_relic/agent/instrumentation/action_mailbox_subscriber.rb +33 -0
- data/lib/new_relic/agent/instrumentation/action_mailer.rb +30 -0
- data/lib/new_relic/agent/instrumentation/action_mailer_subscriber.rb +85 -0
- data/lib/new_relic/agent/instrumentation/action_view_subscriber.rb +18 -19
- data/lib/new_relic/agent/instrumentation/active_job.rb +33 -13
- data/lib/new_relic/agent/instrumentation/active_job_subscriber.rb +41 -0
- data/lib/new_relic/agent/instrumentation/active_merchant.rb +20 -6
- data/lib/new_relic/agent/instrumentation/active_record.rb +37 -35
- data/lib/new_relic/agent/instrumentation/active_record_helper.rb +71 -61
- data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +49 -46
- data/lib/new_relic/agent/instrumentation/active_record_prepend.rb +4 -4
- data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +27 -20
- data/lib/new_relic/agent/instrumentation/active_storage.rb +7 -3
- data/lib/new_relic/agent/instrumentation/active_storage_subscriber.rb +8 -33
- data/lib/new_relic/agent/instrumentation/active_support.rb +27 -0
- data/lib/new_relic/agent/instrumentation/active_support_logger/chain.rb +23 -0
- data/lib/new_relic/agent/instrumentation/active_support_logger/instrumentation.rb +20 -0
- data/lib/new_relic/agent/instrumentation/active_support_logger/prepend.rb +12 -0
- data/lib/new_relic/agent/instrumentation/active_support_logger.rb +24 -0
- data/lib/new_relic/agent/instrumentation/active_support_subscriber.rb +41 -0
- data/lib/new_relic/agent/instrumentation/bunny/chain.rb +11 -11
- data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +21 -23
- data/lib/new_relic/agent/instrumentation/bunny/prepend.rb +4 -4
- data/lib/new_relic/agent/instrumentation/bunny.rb +4 -5
- data/lib/new_relic/agent/instrumentation/concurrent_ruby/chain.rb +36 -0
- data/lib/new_relic/agent/instrumentation/concurrent_ruby/instrumentation.rb +21 -0
- data/lib/new_relic/agent/instrumentation/concurrent_ruby/prepend.rb +27 -0
- data/lib/new_relic/agent/instrumentation/concurrent_ruby.rb +31 -0
- data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +69 -59
- data/lib/new_relic/agent/instrumentation/curb/chain.rb +41 -43
- data/lib/new_relic/agent/instrumentation/curb/instrumentation.rb +52 -53
- data/lib/new_relic/agent/instrumentation/curb/prepend.rb +12 -14
- data/lib/new_relic/agent/instrumentation/curb.rb +7 -7
- data/lib/new_relic/agent/instrumentation/custom_events.rb +12 -0
- data/lib/new_relic/agent/instrumentation/custom_events_subscriber.rb +37 -0
- data/lib/new_relic/agent/instrumentation/delayed_job/chain.rb +6 -9
- data/lib/new_relic/agent/instrumentation/delayed_job/instrumentation.rb +7 -12
- data/lib/new_relic/agent/instrumentation/delayed_job/prepend.rb +1 -2
- data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +28 -10
- data/lib/new_relic/agent/instrumentation/elasticsearch/chain.rb +29 -0
- data/lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb +66 -0
- data/lib/new_relic/agent/instrumentation/elasticsearch/prepend.rb +13 -0
- data/lib/new_relic/agent/instrumentation/elasticsearch.rb +31 -0
- data/lib/new_relic/agent/instrumentation/excon/middleware.rb +6 -6
- data/lib/new_relic/agent/instrumentation/excon.rb +27 -30
- data/lib/new_relic/agent/instrumentation/fiber/chain.rb +20 -0
- data/lib/new_relic/agent/instrumentation/fiber/instrumentation.rb +24 -0
- data/lib/new_relic/agent/instrumentation/fiber/prepend.rb +18 -0
- data/lib/new_relic/agent/instrumentation/fiber.rb +25 -0
- data/lib/new_relic/agent/instrumentation/grape/chain.rb +7 -8
- data/lib/new_relic/agent/instrumentation/grape/instrumentation.rb +12 -12
- data/lib/new_relic/agent/instrumentation/grape/prepend.rb +4 -4
- data/lib/new_relic/agent/instrumentation/grape.rb +12 -13
- data/lib/new_relic/agent/instrumentation/grpc/client/chain.rb +97 -0
- data/lib/new_relic/agent/instrumentation/grpc/client/instrumentation.rb +89 -0
- data/lib/new_relic/agent/instrumentation/grpc/client/prepend.rb +111 -0
- data/lib/new_relic/agent/instrumentation/grpc/client/request_wrapper.rb +30 -0
- data/lib/new_relic/agent/instrumentation/grpc/helper.rb +32 -0
- data/lib/new_relic/agent/instrumentation/grpc/server/chain.rb +69 -0
- data/lib/new_relic/agent/instrumentation/grpc/server/instrumentation.rb +134 -0
- data/lib/new_relic/agent/instrumentation/grpc/server/rpc_desc_prepend.rb +35 -0
- data/lib/new_relic/agent/instrumentation/grpc/server/rpc_server_prepend.rb +26 -0
- data/lib/new_relic/agent/instrumentation/grpc_client.rb +23 -0
- data/lib/new_relic/agent/instrumentation/grpc_server.rb +25 -0
- data/lib/new_relic/agent/instrumentation/httpclient/chain.rb +3 -4
- data/lib/new_relic/agent/instrumentation/httpclient/instrumentation.rb +7 -8
- data/lib/new_relic/agent/instrumentation/httpclient/prepend.rb +1 -3
- data/lib/new_relic/agent/instrumentation/httpclient.rb +3 -3
- data/lib/new_relic/agent/instrumentation/httprb/chain.rb +3 -3
- data/lib/new_relic/agent/instrumentation/httprb/instrumentation.rb +11 -11
- data/lib/new_relic/agent/instrumentation/httprb/prepend.rb +2 -2
- data/lib/new_relic/agent/instrumentation/httprb.rb +4 -4
- data/lib/new_relic/agent/instrumentation/ignore_actions.rb +4 -5
- data/lib/new_relic/agent/instrumentation/logger/chain.rb +21 -0
- data/lib/new_relic/agent/instrumentation/logger/instrumentation.rb +66 -0
- data/lib/new_relic/agent/instrumentation/logger/prepend.rb +13 -0
- data/lib/new_relic/agent/instrumentation/logger.rb +26 -0
- data/lib/new_relic/agent/instrumentation/memcache/chain.rb +2 -3
- data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +31 -19
- data/lib/new_relic/agent/instrumentation/memcache/helper.rb +12 -9
- data/lib/new_relic/agent/instrumentation/memcache/instrumentation.rb +20 -18
- data/lib/new_relic/agent/instrumentation/memcache/prepend.rb +28 -15
- data/lib/new_relic/agent/instrumentation/memcache.rb +22 -23
- data/lib/new_relic/agent/instrumentation/middleware_proxy.rb +11 -12
- data/lib/new_relic/agent/instrumentation/middleware_tracing.rb +5 -7
- data/lib/new_relic/agent/instrumentation/mongo.rb +6 -144
- data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +21 -18
- data/lib/new_relic/agent/instrumentation/net_http/chain.rb +4 -5
- data/lib/new_relic/agent/instrumentation/net_http/instrumentation.rb +10 -10
- data/lib/new_relic/agent/instrumentation/net_http/prepend.rb +5 -5
- data/lib/new_relic/agent/instrumentation/net_http.rb +12 -7
- data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +51 -9
- data/lib/new_relic/agent/instrumentation/padrino/chain.rb +24 -20
- data/lib/new_relic/agent/instrumentation/padrino/instrumentation.rb +4 -3
- data/lib/new_relic/agent/instrumentation/padrino/prepend.rb +3 -3
- data/lib/new_relic/agent/instrumentation/padrino.rb +5 -8
- data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +6 -6
- data/lib/new_relic/agent/instrumentation/queue_time.rb +8 -9
- data/lib/new_relic/agent/instrumentation/rack/chain.rb +30 -21
- data/lib/new_relic/agent/instrumentation/rack/helpers.rb +3 -2
- data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +14 -12
- data/lib/new_relic/agent/instrumentation/rack/prepend.rb +15 -8
- data/lib/new_relic/agent/instrumentation/rack.rb +15 -15
- data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +18 -54
- data/lib/new_relic/agent/instrumentation/rails_middleware.rb +4 -4
- data/lib/new_relic/agent/instrumentation/rails_notifications/action_cable.rb +9 -8
- data/lib/new_relic/agent/instrumentation/rails_notifications/action_controller.rb +17 -5
- data/lib/new_relic/agent/instrumentation/rails_notifications/action_view.rb +8 -5
- data/lib/new_relic/agent/instrumentation/rails_notifications/custom_events.rb +30 -0
- data/lib/new_relic/agent/instrumentation/rake/chain.rb +2 -7
- data/lib/new_relic/agent/instrumentation/rake/instrumentation.rb +14 -16
- data/lib/new_relic/agent/instrumentation/rake/prepend.rb +1 -1
- data/lib/new_relic/agent/instrumentation/rake.rb +9 -9
- data/lib/new_relic/agent/instrumentation/redis/chain.rb +25 -14
- data/lib/new_relic/agent/instrumentation/redis/constants.rb +17 -0
- data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +53 -25
- data/lib/new_relic/agent/instrumentation/redis/middleware.rb +16 -0
- data/lib/new_relic/agent/instrumentation/redis/prepend.rb +10 -5
- data/lib/new_relic/agent/instrumentation/redis.rb +16 -6
- data/lib/new_relic/agent/instrumentation/resque/chain.rb +4 -5
- data/lib/new_relic/agent/instrumentation/resque/helper.rb +19 -0
- data/lib/new_relic/agent/instrumentation/resque/instrumentation.rb +9 -8
- data/lib/new_relic/agent/instrumentation/resque/prepend.rb +2 -3
- data/lib/new_relic/agent/instrumentation/resque.rb +25 -16
- data/lib/new_relic/agent/instrumentation/sequel.rb +16 -19
- data/lib/new_relic/agent/instrumentation/sequel_helper.rb +2 -2
- data/lib/new_relic/agent/instrumentation/sidekiq/client.rb +20 -0
- data/lib/new_relic/agent/instrumentation/sidekiq/extensions/delayed_class.rb +30 -0
- data/lib/new_relic/agent/instrumentation/sidekiq/server.rb +37 -0
- data/lib/new_relic/agent/instrumentation/sidekiq.rb +24 -65
- data/lib/new_relic/agent/instrumentation/sinatra/chain.rb +1 -1
- data/lib/new_relic/agent/instrumentation/sinatra/ignorer.rb +2 -3
- data/lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb +13 -6
- data/lib/new_relic/agent/instrumentation/sinatra/prepend.rb +1 -1
- data/lib/new_relic/agent/instrumentation/sinatra/transaction_namer.rb +2 -2
- data/lib/new_relic/agent/instrumentation/sinatra.rb +26 -17
- data/lib/new_relic/agent/instrumentation/thread/chain.rb +24 -0
- data/lib/new_relic/agent/instrumentation/thread/instrumentation.rb +28 -0
- data/lib/new_relic/agent/instrumentation/thread/prepend.rb +22 -0
- data/lib/new_relic/agent/instrumentation/thread.rb +20 -0
- data/lib/new_relic/agent/instrumentation/tilt/chain.rb +24 -0
- data/lib/new_relic/agent/instrumentation/tilt/instrumentation.rb +41 -0
- data/lib/new_relic/agent/instrumentation/tilt/prepend.rb +13 -0
- data/lib/new_relic/agent/instrumentation/tilt.rb +25 -0
- data/lib/new_relic/agent/instrumentation/typhoeus/chain.rb +5 -5
- data/lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb +13 -15
- data/lib/new_relic/agent/instrumentation/typhoeus/prepend.rb +2 -2
- data/lib/new_relic/agent/instrumentation/typhoeus.rb +2 -2
- data/lib/new_relic/agent/instrumentation.rb +1 -1
- data/lib/new_relic/agent/internal_agent_error.rb +2 -2
- data/lib/new_relic/agent/javascript_instrumentor.rb +48 -42
- data/lib/new_relic/agent/linking_metadata.rb +44 -0
- data/lib/new_relic/agent/local_log_decorator.rb +37 -0
- data/lib/new_relic/agent/log_event_aggregator.rb +235 -0
- data/lib/new_relic/agent/log_once.rb +1 -1
- data/lib/new_relic/agent/log_priority.rb +20 -0
- data/lib/new_relic/agent/logging.rb +24 -21
- data/lib/new_relic/agent/memory_logger.rb +2 -2
- data/lib/new_relic/agent/messaging.rb +65 -81
- data/lib/new_relic/agent/method_tracer.rb +154 -149
- data/lib/new_relic/agent/method_tracer_helpers.rb +88 -11
- data/lib/new_relic/agent/monitors/cross_app_monitor.rb +24 -17
- data/lib/new_relic/agent/monitors/distributed_tracing_monitor.rb +5 -4
- data/lib/new_relic/agent/monitors/inbound_request_monitor.rb +1 -2
- data/lib/new_relic/agent/monitors/synthetics_monitor.rb +6 -9
- data/lib/new_relic/agent/monitors.rb +6 -7
- data/lib/new_relic/agent/new_relic_service/encoders.rb +6 -6
- data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +5 -5
- data/lib/new_relic/agent/new_relic_service/marshaller.rb +2 -2
- data/lib/new_relic/agent/new_relic_service/security_policy_settings.rb +4 -4
- data/lib/new_relic/agent/new_relic_service.rb +247 -186
- data/lib/new_relic/agent/{noticible_error.rb → noticeable_error.rb} +2 -5
- data/lib/new_relic/agent/null_logger.rb +7 -3
- data/lib/new_relic/agent/obfuscator.rb +8 -10
- data/lib/new_relic/agent/parameter_filtering.rb +24 -10
- data/lib/new_relic/agent/payload_metric_mapping.rb +9 -10
- data/lib/new_relic/agent/pipe_channel_manager.rb +27 -17
- data/lib/new_relic/agent/pipe_service.rb +8 -5
- data/lib/new_relic/agent/prepend_supportability.rb +2 -2
- data/lib/new_relic/agent/priority_sampled_buffer.rb +8 -11
- data/lib/new_relic/agent/range_extensions.rb +8 -28
- data/lib/new_relic/agent/rules_engine/replacement_rule.rb +11 -11
- data/lib/new_relic/agent/rules_engine/segment_terms_rule.rb +12 -13
- data/lib/new_relic/agent/rules_engine.rb +5 -4
- data/lib/new_relic/agent/sampler.rb +3 -4
- data/lib/new_relic/agent/sampler_collection.rb +3 -4
- data/lib/new_relic/agent/samplers/cpu_sampler.rb +3 -2
- data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +13 -10
- data/lib/new_relic/agent/samplers/memory_sampler.rb +24 -13
- data/lib/new_relic/agent/samplers/object_sampler.rb +1 -1
- data/lib/new_relic/agent/samplers/vm_sampler.rb +21 -19
- data/lib/new_relic/agent/span_event_aggregator.rb +12 -12
- data/lib/new_relic/agent/span_event_primitive.rb +62 -56
- data/lib/new_relic/agent/sql_sampler.rb +17 -17
- data/lib/new_relic/agent/stats.rb +78 -41
- data/lib/new_relic/agent/stats_engine/gc_profiler.rb +9 -11
- data/lib/new_relic/agent/stats_engine/stats_hash.rb +12 -13
- data/lib/new_relic/agent/stats_engine.rb +8 -8
- data/lib/new_relic/agent/synthetics_event_aggregator.rb +7 -8
- data/lib/new_relic/agent/system_info.rb +85 -65
- data/lib/new_relic/agent/threading/agent_thread.rb +18 -14
- data/lib/new_relic/agent/threading/backtrace_node.rb +12 -13
- data/lib/new_relic/agent/threading/backtrace_service.rb +14 -14
- data/lib/new_relic/agent/threading/thread_profile.rb +23 -23
- data/lib/new_relic/agent/timestamp_sampled_buffer.rb +1 -1
- data/lib/new_relic/agent/tracer.rb +89 -85
- data/lib/new_relic/agent/transaction/abstract_segment.rb +103 -40
- data/lib/new_relic/agent/transaction/datastore_segment.rb +21 -17
- data/lib/new_relic/agent/transaction/distributed_tracer.rb +63 -56
- data/lib/new_relic/agent/transaction/distributed_tracing.rb +43 -44
- data/lib/new_relic/agent/transaction/external_request_segment.rb +44 -34
- data/lib/new_relic/agent/transaction/message_broker_segment.rb +31 -36
- data/lib/new_relic/agent/transaction/request_attributes.rb +35 -35
- data/lib/new_relic/agent/transaction/segment.rb +20 -10
- data/lib/new_relic/agent/transaction/slowest_sample_buffer.rb +1 -3
- data/lib/new_relic/agent/transaction/synthetics_sample_buffer.rb +1 -1
- data/lib/new_relic/agent/transaction/trace.rb +15 -11
- data/lib/new_relic/agent/transaction/trace_builder.rb +10 -10
- data/lib/new_relic/agent/transaction/trace_context.rb +35 -35
- data/lib/new_relic/agent/transaction/trace_node.rb +25 -24
- data/lib/new_relic/agent/transaction/tracing.rb +14 -11
- data/lib/new_relic/agent/transaction/transaction_sample_buffer.rb +5 -5
- data/lib/new_relic/agent/transaction.rb +175 -152
- data/lib/new_relic/agent/transaction_error_primitive.rb +27 -25
- data/lib/new_relic/agent/transaction_event_aggregator.rb +12 -12
- data/lib/new_relic/agent/transaction_event_primitive.rb +32 -33
- data/lib/new_relic/agent/transaction_event_recorder.rb +16 -15
- data/lib/new_relic/agent/transaction_metrics.rb +10 -9
- data/lib/new_relic/agent/transaction_sampler.rb +5 -6
- data/lib/new_relic/agent/transaction_time_aggregator.rb +26 -25
- data/lib/new_relic/agent/utilization/aws.rb +33 -3
- data/lib/new_relic/agent/utilization/azure.rb +3 -3
- data/lib/new_relic/agent/utilization/gcp.rb +7 -7
- data/lib/new_relic/agent/utilization/pcf.rb +5 -4
- data/lib/new_relic/agent/utilization/vendor.rb +43 -28
- data/lib/new_relic/agent/utilization_data.rb +7 -5
- data/lib/new_relic/agent/vm/jruby_vm.rb +1 -1
- data/lib/new_relic/agent/vm/monotonic_gc_profiler.rb +2 -2
- data/lib/new_relic/agent/vm/mri_vm.rb +40 -15
- data/lib/new_relic/agent/vm/snapshot.rb +5 -5
- data/lib/new_relic/agent/vm.rb +1 -1
- data/lib/new_relic/agent/worker_loop.rb +10 -12
- data/lib/new_relic/agent.rb +70 -86
- data/lib/new_relic/cli/command.rb +20 -22
- data/lib/new_relic/cli/commands/deployments.rb +92 -42
- data/lib/new_relic/cli/commands/install.rb +21 -24
- data/lib/new_relic/coerce.rb +15 -13
- data/lib/new_relic/collection_helper.rb +50 -48
- data/lib/new_relic/constants.rb +1 -4
- data/lib/new_relic/control/class_methods.rb +3 -3
- data/lib/new_relic/control/frameworks/external.rb +2 -2
- data/lib/new_relic/control/frameworks/rails.rb +13 -9
- data/lib/new_relic/control/frameworks/rails3.rb +3 -4
- data/lib/new_relic/control/frameworks/rails4.rb +1 -1
- data/lib/new_relic/control/frameworks/rails_notifications.rb +1 -1
- data/lib/new_relic/control/frameworks/ruby.rb +3 -3
- data/lib/new_relic/control/frameworks/sinatra.rb +7 -1
- data/lib/new_relic/control/frameworks.rb +1 -1
- data/lib/new_relic/control/instance_methods.rb +26 -45
- data/lib/new_relic/control/instrumentation.rb +39 -11
- data/lib/new_relic/control/private_instance_methods.rb +48 -0
- data/lib/new_relic/control/server_methods.rb +3 -4
- data/lib/new_relic/control.rb +1 -2
- data/lib/new_relic/delayed_job_injection.rb +1 -1
- data/lib/new_relic/dependency_detection.rb +29 -28
- data/lib/new_relic/environment_report.rb +40 -32
- data/lib/new_relic/helper.rb +48 -7
- data/lib/new_relic/language_support.rb +29 -5
- data/lib/new_relic/latest_changes.rb +7 -6
- data/lib/new_relic/local_environment.rb +22 -26
- data/lib/new_relic/metric_data.rb +31 -26
- data/lib/new_relic/metric_spec.rb +8 -6
- data/lib/new_relic/noticed_error.rb +21 -25
- data/lib/new_relic/rack/agent_hooks.rb +1 -1
- data/lib/new_relic/rack/agent_middleware.rb +5 -3
- data/lib/new_relic/rack/browser_monitoring.rb +133 -123
- data/lib/new_relic/rack.rb +1 -1
- data/lib/new_relic/recipes/capistrano3.rb +3 -61
- data/lib/new_relic/recipes/capistrano_legacy.rb +23 -26
- data/lib/new_relic/recipes/helpers/send_deployment.rb +70 -0
- data/lib/new_relic/recipes.rb +1 -1
- data/lib/new_relic/supportability_helper.rb +8 -9
- data/lib/new_relic/traced_thread.rb +39 -0
- data/lib/new_relic/version.rb +5 -16
- data/lib/newrelic_rpm.rb +19 -32
- data/lib/sequel/extensions/{newrelic_instrumentation.rb → new_relic_instrumentation.rb} +15 -18
- data/lib/sequel/plugins/{newrelic_instrumentation.rb → new_relic_instrumentation.rb} +8 -14
- data/lib/tasks/all.rb +3 -3
- data/lib/tasks/config.rake +22 -117
- data/lib/tasks/coverage_report.rake +28 -0
- data/lib/tasks/helpers/config.html.erb +21 -0
- data/lib/tasks/helpers/format.rb +123 -0
- data/lib/tasks/helpers/matches.rb +12 -0
- data/lib/tasks/helpers/prompt.rb +24 -0
- data/lib/tasks/helpers/removers.rb +33 -0
- data/lib/tasks/install.rake +4 -0
- data/lib/tasks/instrumentation_generator/README.md +63 -0
- data/lib/tasks/instrumentation_generator/TODO.md +33 -0
- data/lib/tasks/instrumentation_generator/instrumentation.thor +121 -0
- data/lib/tasks/instrumentation_generator/templates/Envfile.tt +9 -0
- data/lib/tasks/instrumentation_generator/templates/chain.tt +22 -0
- data/lib/tasks/instrumentation_generator/templates/chain_method.tt +8 -0
- data/lib/tasks/instrumentation_generator/templates/dependency_detection.tt +29 -0
- data/lib/tasks/instrumentation_generator/templates/instrumentation.tt +13 -0
- data/lib/tasks/instrumentation_generator/templates/instrumentation_method.tt +3 -0
- data/lib/tasks/instrumentation_generator/templates/newrelic.yml.tt +19 -0
- data/lib/tasks/instrumentation_generator/templates/prepend.tt +13 -0
- data/lib/tasks/instrumentation_generator/templates/prepend_method.tt +3 -0
- data/lib/tasks/instrumentation_generator/templates/test.tt +15 -0
- data/lib/tasks/multiverse.rake +4 -0
- data/lib/tasks/multiverse.rb +5 -32
- data/lib/tasks/newrelic.rb +1 -1
- data/lib/tasks/tests.rake +10 -15
- data/newrelic.yml +672 -3
- data/newrelic_rpm.gemspec +35 -31
- data/recipes/newrelic.rb +2 -2
- data/test/agent_helper.rb +221 -180
- metadata +141 -111
- data/ROADMAP.md +0 -24
- data/bin/mongrel_rpm +0 -33
- data/lib/new_relic/agent/datastores/mongo/obfuscator.rb +0 -44
- data/lib/new_relic/agent/datastores/mongo/statement_formatter.rb +0 -53
- data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +0 -75
- data/lib/new_relic/agent/instrumentation/authlogic.rb +0 -25
- data/lib/new_relic/agent/instrumentation/data_mapper.rb +0 -204
- data/lib/new_relic/agent/instrumentation/excon/connection.rb +0 -49
- data/lib/new_relic/agent/instrumentation/merb/controller.rb +0 -44
- data/lib/new_relic/agent/instrumentation/merb/errors.rb +0 -33
- data/lib/new_relic/agent/instrumentation/rails/action_controller.rb +0 -125
- data/lib/new_relic/agent/instrumentation/rails/action_web_service.rb +0 -46
- data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +0 -26
- data/lib/new_relic/agent/instrumentation/sunspot.rb +0 -33
- data/lib/new_relic/agent/supported_versions.rb +0 -275
- data/lib/new_relic/control/frameworks/merb.rb +0 -29
- data/lib/tasks/config.html.erb +0 -32
- /data/lib/tasks/{config.text.erb → helpers/config.text.erb} +0 -0
@@ -1,16 +1,15 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
# This file is distributed under New Relic's license terms.
|
3
2
|
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
3
|
+
# frozen_string_literal: true
|
4
4
|
|
5
5
|
require 'forwardable'
|
6
6
|
|
7
7
|
module NewRelic
|
8
8
|
module Agent
|
9
9
|
module Configuration
|
10
|
-
|
11
10
|
# Helper since default Procs are evaluated in the context of this module
|
12
11
|
def self.value_of(key)
|
13
|
-
|
12
|
+
proc do
|
14
13
|
NewRelic::Agent.config[key]
|
15
14
|
end
|
16
15
|
end
|
@@ -27,8 +26,8 @@ module NewRelic
|
|
27
26
|
# - if user set prepend to `false` then we use method_alias chaining
|
28
27
|
# - auto, when returned means, try to use prepend unless conflicting gems discovered
|
29
28
|
#
|
30
|
-
def self.instrumentation_value_of(disable_key, prepend_key=nil)
|
31
|
-
|
29
|
+
def self.instrumentation_value_of(disable_key, prepend_key = nil)
|
30
|
+
proc do
|
32
31
|
if NewRelic::Agent.config[disable_key]
|
33
32
|
"disabled"
|
34
33
|
elsif prepend_key && !NewRelic::Agent.config[prepend_key]
|
@@ -39,9 +38,17 @@ module NewRelic
|
|
39
38
|
end
|
40
39
|
end
|
41
40
|
|
42
|
-
def self.
|
43
|
-
|
44
|
-
|
41
|
+
def self.instrumentation_value_from_boolean(key)
|
42
|
+
proc do
|
43
|
+
NewRelic::Agent.config[key] ? 'auto' : 'disabled'
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# Marks the config option as deprecated in the documentation once generated.
|
48
|
+
# Does not appear in logs.
|
49
|
+
def self.deprecated_description(new_setting, description)
|
50
|
+
link_ref = new_setting.to_s.tr(".", "-")
|
51
|
+
%{Please see: [#{new_setting}](docs/agents/ruby-agent/configuration/ruby-agent-configuration##{link_ref}). \n\n#{description}}
|
45
52
|
end
|
46
53
|
|
47
54
|
class Boolean
|
@@ -74,11 +81,11 @@ module NewRelic
|
|
74
81
|
end
|
75
82
|
|
76
83
|
def self.config_search_paths
|
77
|
-
|
84
|
+
proc {
|
78
85
|
paths = [
|
79
|
-
File.join("config","newrelic.yml"),
|
86
|
+
File.join("config", "newrelic.yml"),
|
80
87
|
File.join("newrelic.yml"),
|
81
|
-
File.join("config","newrelic.yml.erb"),
|
88
|
+
File.join("config", "newrelic.yml.erb"),
|
82
89
|
File.join("newrelic.yml.erb")
|
83
90
|
]
|
84
91
|
|
@@ -89,11 +96,11 @@ module NewRelic
|
|
89
96
|
paths << File.join(NewRelic::Control.instance.root, "newrelic.yml.erb")
|
90
97
|
end
|
91
98
|
|
92
|
-
if ENV[
|
93
|
-
paths << File.join(ENV[
|
94
|
-
paths << File.join(ENV[
|
95
|
-
paths << File.join(ENV[
|
96
|
-
paths << File.join(ENV[
|
99
|
+
if ENV['HOME']
|
100
|
+
paths << File.join(ENV['HOME'], ".newrelic", "newrelic.yml")
|
101
|
+
paths << File.join(ENV['HOME'], "newrelic.yml")
|
102
|
+
paths << File.join(ENV['HOME'], ".newrelic", "newrelic.yml.erb")
|
103
|
+
paths << File.join(ENV['HOME'], "newrelic.yml.erb")
|
97
104
|
end
|
98
105
|
|
99
106
|
# If we're packaged for warbler, we can tell from GEM_HOME
|
@@ -108,29 +115,26 @@ module NewRelic
|
|
108
115
|
end
|
109
116
|
|
110
117
|
def self.config_path
|
111
|
-
|
118
|
+
proc {
|
112
119
|
found_path = NewRelic::Agent.config[:config_search_paths].detect do |file|
|
113
|
-
File.expand_path(file) if File.exist?
|
120
|
+
File.expand_path(file) if File.exist?(file)
|
114
121
|
end
|
115
|
-
found_path ||
|
122
|
+
found_path || NewRelic::EMPTY_STR
|
116
123
|
}
|
117
124
|
end
|
118
125
|
|
119
126
|
def self.framework
|
120
|
-
|
127
|
+
proc {
|
121
128
|
case
|
122
129
|
when defined?(::NewRelic::TEST) then :test
|
123
|
-
when defined?(::Merb) && defined?(::Merb::Plugins) then :merb
|
124
130
|
when defined?(::Rails::VERSION)
|
125
131
|
case Rails::VERSION::MAJOR
|
126
|
-
when 0..2
|
127
|
-
:rails
|
128
132
|
when 3
|
129
133
|
:rails3
|
130
|
-
when 4..
|
134
|
+
when 4..7
|
131
135
|
:rails_notifications
|
132
136
|
else
|
133
|
-
::NewRelic::Agent.logger.warn
|
137
|
+
::NewRelic::Agent.logger.warn("Detected untested Rails version #{Rails::VERSION::STRING}")
|
134
138
|
:rails_notifications
|
135
139
|
end
|
136
140
|
when defined?(::Sinatra) && defined?(::Sinatra::Base) then :sinatra
|
@@ -141,19 +145,19 @@ module NewRelic
|
|
141
145
|
end
|
142
146
|
|
143
147
|
def self.agent_enabled
|
144
|
-
|
148
|
+
proc {
|
145
149
|
NewRelic::Agent.config[:enabled] &&
|
146
|
-
|
147
|
-
|
150
|
+
(NewRelic::Agent.config[:test_mode] || NewRelic::Agent.config[:monitor_mode]) &&
|
151
|
+
NewRelic::Agent::Autostart.agent_should_start?
|
148
152
|
}
|
149
153
|
end
|
150
154
|
|
151
155
|
DEFAULT_LOG_DIR = 'log/'.freeze
|
152
156
|
|
153
157
|
def self.audit_log_path
|
154
|
-
|
158
|
+
proc {
|
155
159
|
log_file_path = NewRelic::Agent.config[:log_file_path]
|
156
|
-
wants_stdout
|
160
|
+
wants_stdout = (log_file_path.casecmp(NewRelic::STANDARD_OUT) == 0)
|
157
161
|
audit_log_dir = wants_stdout ? DEFAULT_LOG_DIR : log_file_path
|
158
162
|
|
159
163
|
File.join(audit_log_dir, 'newrelic_audit.log')
|
@@ -161,30 +165,23 @@ module NewRelic
|
|
161
165
|
end
|
162
166
|
|
163
167
|
def self.app_name
|
164
|
-
|
168
|
+
proc { NewRelic::Control.instance.env }
|
165
169
|
end
|
166
170
|
|
167
171
|
def self.dispatcher
|
168
|
-
|
172
|
+
proc { NewRelic::Control.instance.local_env.discovered_dispatcher }
|
169
173
|
end
|
170
174
|
|
171
175
|
def self.thread_profiler_enabled
|
172
|
-
|
173
|
-
end
|
174
|
-
|
175
|
-
# This check supports the js_errors_beta key we've asked clients to
|
176
|
-
# set. Once JS errors are GA, browser_monitoring.loader can stop
|
177
|
-
# being dynamic.
|
178
|
-
def self.browser_monitoring_loader
|
179
|
-
Proc.new { NewRelic::Agent.config[:js_errors_beta] ? "full" : "rum"}
|
176
|
+
proc { NewRelic::Agent::Threading::BacktraceService.is_supported? }
|
180
177
|
end
|
181
178
|
|
182
179
|
def self.transaction_tracer_transaction_threshold
|
183
|
-
|
180
|
+
proc { NewRelic::Agent.config[:apdex_t] * 4 }
|
184
181
|
end
|
185
182
|
|
186
183
|
def self.profiling_available
|
187
|
-
|
184
|
+
proc {
|
188
185
|
begin
|
189
186
|
require 'ruby-prof'
|
190
187
|
true
|
@@ -195,7 +192,7 @@ module NewRelic
|
|
195
192
|
end
|
196
193
|
|
197
194
|
def self.host
|
198
|
-
|
195
|
+
proc do
|
199
196
|
regex = /\A(?<identifier>.+?)x/
|
200
197
|
if matches = regex.match(String(NewRelic::Agent.config[:license_key]))
|
201
198
|
"collector.#{matches['identifier']}.nr-data.net"
|
@@ -206,12 +203,16 @@ module NewRelic
|
|
206
203
|
end
|
207
204
|
|
208
205
|
def self.api_host
|
209
|
-
|
210
|
-
|
211
|
-
|
206
|
+
# only used for deployment task
|
207
|
+
proc do
|
208
|
+
api_version = if NewRelic::Agent.config[:api_key].nil? || NewRelic::Agent.config[:api_key].empty?
|
209
|
+
"rpm"
|
212
210
|
else
|
213
|
-
|
211
|
+
"api"
|
214
212
|
end
|
213
|
+
api_region = "eu." if String(NewRelic::Agent.config[:license_key]).start_with?('eu')
|
214
|
+
|
215
|
+
"#{api_version}.#{api_region}newrelic.com"
|
215
216
|
end
|
216
217
|
end
|
217
218
|
|
@@ -234,30 +235,28 @@ module NewRelic
|
|
234
235
|
end
|
235
236
|
|
236
237
|
SEMICOLON = ';'.freeze
|
237
|
-
def self.convert_to_list_on_semicolon
|
238
|
+
def self.convert_to_list_on_semicolon(value)
|
238
239
|
case value
|
239
240
|
when Array then value
|
240
241
|
when String then value.split(SEMICOLON)
|
241
|
-
else
|
242
|
+
else NewRelic::EMPTY_ARRAY
|
242
243
|
end
|
243
244
|
end
|
244
245
|
|
245
246
|
def self.convert_to_constant_list(raw_value)
|
246
|
-
|
247
|
-
const_names.map! do |class_name|
|
248
|
-
const = ::NewRelic::LanguageSupport.constantize(class_name)
|
249
|
-
|
250
|
-
unless const
|
251
|
-
NewRelic::Agent.logger.warn("Ignoring unrecognized constant '#{class_name}' in #{raw_value}")
|
252
|
-
end
|
247
|
+
return NewRelic::EMPTY_ARRAY if raw_value.nil? || raw_value.empty?
|
253
248
|
|
249
|
+
constants = convert_to_list(raw_value).map! do |class_name|
|
250
|
+
const = ::NewRelic::LanguageSupport.constantize(class_name)
|
251
|
+
NewRelic::Agent.logger.warn("Ignoring invalid constant '#{class_name}' in #{raw_value}") unless const
|
254
252
|
const
|
255
253
|
end
|
256
|
-
|
254
|
+
constants.compact!
|
255
|
+
constants
|
257
256
|
end
|
258
257
|
|
259
258
|
def self.enforce_fallback(allowed_values: nil, fallback: nil)
|
260
|
-
|
259
|
+
proc do |configured_value|
|
261
260
|
if allowed_values.any? { |v| v =~ /#{configured_value}/i }
|
262
261
|
configured_value
|
263
262
|
else
|
@@ -320,27 +319,14 @@ module NewRelic
|
|
320
319
|
].join(',').freeze
|
321
320
|
|
322
321
|
DEFAULTS = {
|
323
|
-
|
324
|
-
:default => '',
|
325
|
-
:public => true,
|
326
|
-
:type => String,
|
327
|
-
:allowed_from_server => false,
|
328
|
-
:description => 'Your New Relic <a href="https://docs.newrelic.com/docs/accounts-partnerships/accounts/account-setup/license-key">license key</a>.'
|
329
|
-
},
|
322
|
+
# Critical
|
330
323
|
:agent_enabled => {
|
331
324
|
:default => DefaultSource.agent_enabled,
|
325
|
+
:documentation_default => true,
|
332
326
|
:public => true,
|
333
327
|
:type => Boolean,
|
334
328
|
:allowed_from_server => false,
|
335
|
-
:description => 'If
|
336
|
-
},
|
337
|
-
:enabled => {
|
338
|
-
:default => true,
|
339
|
-
:public => false,
|
340
|
-
:type => Boolean,
|
341
|
-
:aliases => [:enable],
|
342
|
-
:allowed_from_server => false,
|
343
|
-
:description => 'Enable or disable the agent.'
|
329
|
+
:description => 'If `true`, allows the Ruby agent to run.'
|
344
330
|
},
|
345
331
|
:app_name => {
|
346
332
|
:default => DefaultSource.app_name,
|
@@ -348,105 +334,91 @@ module NewRelic
|
|
348
334
|
:type => String,
|
349
335
|
:allowed_from_server => false,
|
350
336
|
:transform => DefaultSource.method(:convert_to_list_on_semicolon),
|
351
|
-
:description => 'Specify the
|
337
|
+
: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`.'
|
352
338
|
},
|
353
|
-
:
|
354
|
-
:default =>
|
355
|
-
:allow_nil => true,
|
339
|
+
:license_key => {
|
340
|
+
:default => '',
|
356
341
|
:public => true,
|
357
342
|
:type => String,
|
358
|
-
:allowed_from_server => true,
|
359
|
-
:description => 'The <a href="https://docs.newrelic.com/attribute-dictionary/span/entityguid">Entity GUID</a> for the entity running this agent.'
|
360
|
-
},
|
361
|
-
:monitor_mode => {
|
362
|
-
:default => value_of(:enabled),
|
363
|
-
:public => true,
|
364
|
-
:type => Boolean,
|
365
|
-
:allowed_from_server => false,
|
366
|
-
:description => 'When <code>true</code>, the agent transmits data about your app to the New Relic <a href="https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#collector">collector</a>.'
|
367
|
-
},
|
368
|
-
:test_mode => {
|
369
|
-
:default => false,
|
370
|
-
:public => false,
|
371
|
-
:type => Boolean,
|
372
343
|
:allowed_from_server => false,
|
373
|
-
:description => '
|
344
|
+
:description => 'Your New Relic <LicenseKey />.'
|
374
345
|
},
|
375
346
|
:log_level => {
|
376
347
|
:default => 'info',
|
377
348
|
:public => true,
|
378
349
|
:type => String,
|
379
350
|
:allowed_from_server => false,
|
380
|
-
:description => 'Sets the level of detail of log messages. Possible log levels, in increasing verbosity, are:
|
351
|
+
:description => 'Sets the level of detail of log messages. Possible log levels, in increasing verbosity, are: `error`, `warn`, `info` or `debug`.'
|
381
352
|
},
|
382
|
-
|
383
|
-
|
353
|
+
# General
|
354
|
+
:active_support_custom_events_names => {
|
355
|
+
:default => [],
|
384
356
|
:public => true,
|
385
|
-
:type =>
|
357
|
+
:type => Array,
|
386
358
|
:allowed_from_server => false,
|
387
|
-
:description =>
|
359
|
+
:description => <<~DESCRIPTION
|
360
|
+
An array of ActiveSupport custom event names to subscribe to and instrument. For example,
|
361
|
+
- one.custom.event
|
362
|
+
- another.event
|
363
|
+
- a.third.event
|
364
|
+
DESCRIPTION
|
388
365
|
},
|
389
|
-
|
390
|
-
|
391
|
-
:
|
392
|
-
:
|
393
|
-
:
|
394
|
-
:
|
366
|
+
# this is only set via server side config
|
367
|
+
:apdex_t => {
|
368
|
+
:default => 0.5,
|
369
|
+
:public => false,
|
370
|
+
:type => Float,
|
371
|
+
:allowed_from_server => true,
|
372
|
+
: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).'
|
395
373
|
},
|
396
|
-
:
|
397
|
-
:default =>
|
398
|
-
:allow_nil => true,
|
374
|
+
:api_key => {
|
375
|
+
:default => '',
|
399
376
|
:public => true,
|
400
377
|
:type => String,
|
401
378
|
:allowed_from_server => false,
|
402
|
-
:description => '
|
379
|
+
:description => 'Your New Relic [user key](/docs/apis/intro-apis/new-relic-api-keys/#overview-keys). Required when using the New Relic REST API v2 to record deployments using the `newrelic deployments` command.'
|
403
380
|
},
|
404
|
-
:
|
405
|
-
:default =>
|
406
|
-
:allow_nil => true,
|
381
|
+
:backport_fast_active_record_connection_lookup => {
|
382
|
+
:default => false,
|
407
383
|
:public => true,
|
408
|
-
:type =>
|
384
|
+
:type => Boolean,
|
409
385
|
:allowed_from_server => false,
|
410
|
-
:description => '
|
386
|
+
: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.'
|
411
387
|
},
|
412
|
-
:
|
388
|
+
:ca_bundle_path => {
|
413
389
|
:default => nil,
|
414
390
|
:allow_nil => true,
|
415
391
|
:public => true,
|
416
392
|
:type => String,
|
417
393
|
:allowed_from_server => false,
|
418
|
-
:
|
419
|
-
:description => 'Defines a user for communicating with the New Relic <a href="https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#collector">collector</a> via a proxy server.'
|
394
|
+
: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."
|
420
395
|
},
|
421
|
-
:
|
422
|
-
:default =>
|
423
|
-
:allow_nil => true,
|
396
|
+
:capture_memcache_keys => {
|
397
|
+
:default => false,
|
424
398
|
:public => true,
|
425
|
-
:type =>
|
426
|
-
:allowed_from_server =>
|
427
|
-
:
|
428
|
-
:description => 'Defines a password for communicating with the New Relic <a href="https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#collector">collector</a> via a proxy server.'
|
399
|
+
:type => Boolean,
|
400
|
+
:allowed_from_server => true,
|
401
|
+
:description => 'Enable or disable the capture of memcache keys from transaction traces.'
|
429
402
|
},
|
430
403
|
:capture_params => {
|
431
404
|
:default => false,
|
432
405
|
:public => true,
|
433
406
|
:type => Boolean,
|
434
407
|
:allowed_from_server => false,
|
435
|
-
:description =>
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
'</div>'
|
408
|
+
:description => <<~DESCRIPTION
|
409
|
+
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).
|
410
|
+
|
411
|
+
<Callout variant="caution">
|
412
|
+
When using the `capture_params` setting, the Ruby agent will not attempt to filter secret information. <b>Recommendation:</b> To filter secret information from request parameters, use the [`attributes.include` setting](/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby) instead. For more information, see the <a href="/docs/agents/ruby-agent/attributes/ruby-attribute-examples#ex_req_params">Ruby attribute examples</a>.
|
413
|
+
</Callout>
|
414
|
+
DESCRIPTION
|
415
|
+
},
|
416
|
+
:'clear_transaction_state_after_fork' => {
|
417
|
+
:default => false,
|
418
|
+
:public => true,
|
419
|
+
:type => Boolean,
|
420
|
+
:allowed_from_server => false,
|
421
|
+
:description => 'If `true`, the agent will clear `Tracer::State` in `Agent.drop_buffered_data`.'
|
450
422
|
},
|
451
423
|
:config_path => {
|
452
424
|
:default => DefaultSource.config_path,
|
@@ -455,1619 +427,1656 @@ module NewRelic
|
|
455
427
|
:allowed_from_server => false,
|
456
428
|
: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>.'
|
457
429
|
},
|
458
|
-
:
|
459
|
-
:default =>
|
460
|
-
:public =>
|
461
|
-
:type =>
|
430
|
+
:'exclude_newrelic_header' => {
|
431
|
+
:default => false,
|
432
|
+
:public => true,
|
433
|
+
:type => Boolean,
|
434
|
+
:allowed_from_server => true,
|
435
|
+
:description => "Allows newrelic distributed tracing headers to be suppressed on outbound requests."
|
436
|
+
},
|
437
|
+
:force_install_exit_handler => {
|
438
|
+
:default => false,
|
439
|
+
:public => true,
|
440
|
+
:type => Boolean,
|
462
441
|
:allowed_from_server => false,
|
463
|
-
:description =>
|
442
|
+
:description => 'Forces the exit handler that sends all cached data to collector ' \
|
443
|
+
'before shutting down to be installed regardless of detecting scenarios where it generally should not be. ' \
|
444
|
+
'Known use-case for this option is where Sinatra is running as an embedded service within another framework ' \
|
445
|
+
'and the agent is detecting the Sinatra app and skipping the `at_exit` handler as a result. Sinatra classically ' \
|
446
|
+
'runs the entire application in an `at_exit` block and would otherwise misbehave if the Agent\'s `at_exit` handler ' \
|
447
|
+
'was also installed in those circumstances. Note: `send_data_on_exit` should also be set to `true` in tandem with this setting.'
|
464
448
|
},
|
465
|
-
:
|
466
|
-
:default =>
|
467
|
-
:public =>
|
468
|
-
:type =>
|
449
|
+
:high_security => {
|
450
|
+
:default => false,
|
451
|
+
:public => true,
|
452
|
+
:type => Boolean,
|
469
453
|
:allowed_from_server => false,
|
470
|
-
:description => '
|
454
|
+
: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.'
|
471
455
|
},
|
472
|
-
:
|
473
|
-
:default =>
|
474
|
-
:public =>
|
475
|
-
:type =>
|
456
|
+
:labels => {
|
457
|
+
:default => '',
|
458
|
+
:public => true,
|
459
|
+
:type => String,
|
476
460
|
:allowed_from_server => false,
|
477
|
-
:description => '
|
461
|
+
: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, `Server:One;Data Center:Primary`.'
|
478
462
|
},
|
479
|
-
:
|
480
|
-
:default => '
|
463
|
+
:log_file_name => {
|
464
|
+
:default => 'newrelic_agent.log',
|
481
465
|
:public => true,
|
482
466
|
:type => String,
|
483
467
|
:allowed_from_server => false,
|
484
|
-
:description => '
|
468
|
+
:description => 'Defines a name for the log file.'
|
485
469
|
},
|
486
|
-
:
|
487
|
-
:default =>
|
470
|
+
:log_file_path => {
|
471
|
+
:default => DefaultSource::DEFAULT_LOG_DIR,
|
488
472
|
:public => true,
|
489
473
|
:type => String,
|
490
474
|
:allowed_from_server => false,
|
491
|
-
:description => 'Defines a
|
475
|
+
:description => 'Defines a path to the agent log file, excluding the filename.'
|
492
476
|
},
|
493
|
-
:
|
494
|
-
:default =>
|
477
|
+
:marshaller => {
|
478
|
+
:default => 'json',
|
495
479
|
:public => true,
|
496
480
|
:type => String,
|
497
481
|
:allowed_from_server => false,
|
498
|
-
:description => '
|
482
|
+
: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.'
|
499
483
|
},
|
500
|
-
|
501
|
-
|
502
|
-
:
|
484
|
+
:monitor_mode => {
|
485
|
+
:default => value_of(:enabled),
|
486
|
+
:documentation_default => true,
|
503
487
|
:public => true,
|
504
488
|
:type => Boolean,
|
505
489
|
:allowed_from_server => false,
|
506
|
-
:
|
507
|
-
:description => deprecated_description(:'instrumentation.rake', 'If <code>true</code>, disables Rake instrumentation.')
|
490
|
+
: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).'
|
508
491
|
},
|
509
|
-
:
|
492
|
+
:prepend_active_record_instrumentation => {
|
510
493
|
:default => false,
|
511
|
-
:public =>
|
494
|
+
:public => true,
|
512
495
|
:type => Boolean,
|
513
496
|
:allowed_from_server => false,
|
514
|
-
:
|
515
|
-
:description => deprecated_description(:'instrumentation.rake', 'Enable or disable Rake instrumentation. Preferred key is `disable_rake`')
|
497
|
+
:description => 'If `true`, uses `Module#prepend` rather than `alias_method` for ActiveRecord instrumentation.'
|
516
498
|
},
|
517
|
-
:
|
518
|
-
:default =>
|
499
|
+
:proxy_host => {
|
500
|
+
:default => nil,
|
501
|
+
:allow_nil => true,
|
519
502
|
:public => true,
|
520
|
-
:type =>
|
503
|
+
:type => String,
|
521
504
|
:allowed_from_server => false,
|
522
|
-
:
|
523
|
-
:description => 'Specify an array of Rake tasks to automatically instrument.'
|
505
|
+
: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.'
|
524
506
|
},
|
525
|
-
:
|
526
|
-
:default =>
|
507
|
+
:proxy_pass => {
|
508
|
+
:default => nil,
|
509
|
+
:allow_nil => true,
|
527
510
|
:public => true,
|
528
|
-
:type =>
|
511
|
+
:type => String,
|
529
512
|
:allowed_from_server => false,
|
530
|
-
:
|
531
|
-
|
532
|
-
:apdex_t => {
|
533
|
-
:default => 0.5,
|
534
|
-
:public => true,
|
535
|
-
:type => Float,
|
536
|
-
:allowed_from_server => true,
|
537
|
-
:deprecated => true,
|
538
|
-
:description => 'Deprecated. For agent versions 3.5.0 or higher, <a href="https://docs.newrelic.com/docs/apm/new-relic-apm/apdex/changing-your-apdex-settings">set your Apdex T via the New Relic UI</a>.'
|
513
|
+
:exclude_from_reported_settings => true,
|
514
|
+
: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.'
|
539
515
|
},
|
540
|
-
:
|
541
|
-
:default =>
|
516
|
+
:proxy_port => {
|
517
|
+
:default => 8080,
|
518
|
+
:allow_nil => true,
|
542
519
|
:public => true,
|
543
|
-
:type =>
|
520
|
+
:type => Integer,
|
544
521
|
:allowed_from_server => false,
|
545
|
-
:description => '
|
522
|
+
: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.'
|
546
523
|
},
|
547
|
-
:
|
548
|
-
:default =>
|
524
|
+
:proxy_user => {
|
525
|
+
:default => nil,
|
526
|
+
:allow_nil => true,
|
549
527
|
:public => true,
|
550
528
|
:type => String,
|
551
529
|
:allowed_from_server => false,
|
552
|
-
:
|
553
|
-
:description => '
|
530
|
+
:exclude_from_reported_settings => true,
|
531
|
+
: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.'
|
554
532
|
},
|
555
|
-
:
|
556
|
-
:default =>
|
557
|
-
:public =>
|
533
|
+
:security_policies_token => {
|
534
|
+
:default => '',
|
535
|
+
:public => true,
|
558
536
|
:type => String,
|
559
537
|
:allowed_from_server => false,
|
560
|
-
:description =>
|
538
|
+
:description => 'Applies Language Agent Security Policy settings.'
|
561
539
|
},
|
562
|
-
:
|
563
|
-
:default =>
|
564
|
-
:public =>
|
565
|
-
:type =>
|
540
|
+
:send_data_on_exit => {
|
541
|
+
:default => true,
|
542
|
+
:public => true,
|
543
|
+
:type => Boolean,
|
566
544
|
:allowed_from_server => false,
|
567
|
-
:description => '
|
545
|
+
: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.'
|
568
546
|
},
|
569
|
-
:
|
570
|
-
:default =>
|
571
|
-
:public =>
|
572
|
-
:type =>
|
547
|
+
:sync_startup => {
|
548
|
+
:default => false,
|
549
|
+
:public => true,
|
550
|
+
:type => Boolean,
|
573
551
|
:allowed_from_server => false,
|
574
|
-
:description => '
|
552
|
+
: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.'
|
575
553
|
},
|
576
|
-
:
|
577
|
-
:default =>
|
578
|
-
:public =>
|
554
|
+
:timeout => {
|
555
|
+
:default => 2 * 60, # 2 minutes
|
556
|
+
:public => true,
|
579
557
|
:type => Integer,
|
580
558
|
:allowed_from_server => false,
|
581
|
-
:description => '
|
559
|
+
:description => 'Defines the maximum number of seconds the agent should spend attempting to connect to the collector.'
|
582
560
|
},
|
583
|
-
|
584
|
-
|
561
|
+
# Transaction tracer
|
562
|
+
:'transaction_tracer.enabled' => {
|
563
|
+
:default => true,
|
585
564
|
:public => true,
|
586
565
|
:type => Boolean,
|
587
|
-
:allowed_from_server =>
|
588
|
-
:description => '
|
566
|
+
:allowed_from_server => true,
|
567
|
+
:description => 'If `true`, enables collection of [transaction traces](/docs/apm/traces/transaction-traces/transaction-traces).'
|
589
568
|
},
|
590
|
-
:
|
569
|
+
:'transaction_tracer.explain_enabled' => {
|
591
570
|
:default => true,
|
592
571
|
:public => true,
|
593
572
|
:type => Boolean,
|
594
|
-
:allowed_from_server =>
|
595
|
-
:description => 'If
|
573
|
+
:allowed_from_server => true,
|
574
|
+
: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.'
|
596
575
|
},
|
597
|
-
:
|
598
|
-
:default =>
|
599
|
-
:public =>
|
576
|
+
:'transaction_tracer.explain_threshold' => {
|
577
|
+
:default => 0.5,
|
578
|
+
:public => true,
|
579
|
+
:type => Float,
|
580
|
+
:allowed_from_server => true,
|
581
|
+
:description => 'Threshold (in seconds) above which the agent will collect explain plans. Relevant only when [`explain_enabled`](#transaction_tracer.explain_enabled) is true.'
|
582
|
+
},
|
583
|
+
:'transaction_tracer.limit_segments' => {
|
584
|
+
:default => 4000,
|
585
|
+
:public => true,
|
600
586
|
:type => Integer,
|
601
587
|
:allowed_from_server => true,
|
602
|
-
:description => 'Maximum number of
|
588
|
+
:description => 'Maximum number of transaction trace nodes to record in a single transaction trace.'
|
603
589
|
},
|
604
|
-
:
|
590
|
+
:'transaction_tracer.record_redis_arguments' => {
|
605
591
|
:default => false,
|
606
|
-
:public =>
|
592
|
+
:public => true,
|
607
593
|
:type => Boolean,
|
608
594
|
:allowed_from_server => false,
|
609
|
-
:description => '
|
595
|
+
:description => 'If `true`, the agent records Redis command arguments in transaction traces.'
|
610
596
|
},
|
611
|
-
:
|
612
|
-
:default => '
|
613
|
-
:public =>
|
597
|
+
:'transaction_tracer.record_sql' => {
|
598
|
+
:default => 'obfuscated',
|
599
|
+
:public => true,
|
614
600
|
:type => String,
|
615
|
-
:allowed_from_server =>
|
616
|
-
:description => '
|
601
|
+
:allowed_from_server => true,
|
602
|
+
:description => 'Obfuscation level for SQL queries reported in transaction trace nodes.
|
603
|
+
|
604
|
+
By default, this is set to `obfuscated`, which strips out the numeric and string literals.
|
605
|
+
|
606
|
+
- If you do not want the agent to capture query information, set this to `none`.
|
607
|
+
- If you want the agent to capture all query information in its original form, set this to `raw`.
|
608
|
+
- When you enable [high security mode](/docs/agents/manage-apm-agents/configuration/high-security-mode), this is automatically set to `obfuscated`.
|
609
|
+
'
|
617
610
|
},
|
618
|
-
|
619
|
-
|
620
|
-
:
|
621
|
-
:
|
622
|
-
:
|
623
|
-
:
|
611
|
+
|
612
|
+
:'transaction_tracer.stack_trace_threshold' => {
|
613
|
+
:default => 0.5,
|
614
|
+
:public => true,
|
615
|
+
:type => Float,
|
616
|
+
:allowed_from_server => true,
|
617
|
+
:description => 'Specify a threshold in seconds. The agent includes stack traces in transaction trace nodes when the stack trace duration exceeds this threshold.'
|
624
618
|
},
|
625
|
-
:
|
626
|
-
:default =>
|
619
|
+
:'transaction_tracer.transaction_threshold' => {
|
620
|
+
:default => DefaultSource.transaction_tracer_transaction_threshold,
|
627
621
|
:public => true,
|
628
|
-
:type =>
|
629
|
-
:allowed_from_server =>
|
630
|
-
:description => '
|
622
|
+
:type => Float,
|
623
|
+
:allowed_from_server => true,
|
624
|
+
: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`.'
|
631
625
|
},
|
632
|
-
|
633
|
-
|
634
|
-
:
|
626
|
+
# Error collector
|
627
|
+
:'error_collector.ignore_classes' => {
|
628
|
+
:default => ['ActionController::RoutingError', 'Sinatra::NotFound'],
|
629
|
+
:public => true,
|
630
|
+
:type => Array,
|
631
|
+
:allowed_from_server => true,
|
632
|
+
:dynamic_name => true,
|
633
|
+
:description => <<~DESCRIPTION
|
634
|
+
A list of error classes that the agent should ignore.
|
635
|
+
|
636
|
+
<Callout variant="caution">
|
637
|
+
This option can't be set via environment variable.
|
638
|
+
</Callout>
|
639
|
+
DESCRIPTION
|
640
|
+
},
|
641
|
+
:'error_collector.capture_events' => {
|
642
|
+
:default => value_of(:'error_collector.enabled'),
|
643
|
+
:documentation_default => true,
|
644
|
+
:public => true,
|
635
645
|
:type => Boolean,
|
636
|
-
:allowed_from_server =>
|
637
|
-
:
|
646
|
+
:allowed_from_server => true,
|
647
|
+
:dynamic_name => true,
|
648
|
+
:description => 'If `true`, the agent collects [TransactionError events](/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights).'
|
638
649
|
},
|
639
|
-
:
|
640
|
-
:default =>
|
641
|
-
:public =>
|
642
|
-
:type =>
|
650
|
+
:'error_collector.enabled' => {
|
651
|
+
:default => true,
|
652
|
+
:public => true,
|
653
|
+
:type => Boolean,
|
643
654
|
:allowed_from_server => true,
|
644
|
-
:description => '
|
655
|
+
:description => 'If `true`, the agent captures traced errors and error count metrics.'
|
645
656
|
},
|
646
|
-
:
|
647
|
-
:default =>
|
648
|
-
:public =>
|
649
|
-
:type =>
|
657
|
+
:'error_collector.expected_classes' => {
|
658
|
+
:default => [],
|
659
|
+
:public => true,
|
660
|
+
:type => Array,
|
650
661
|
:allowed_from_server => true,
|
651
|
-
:
|
662
|
+
:dynamic_name => true,
|
663
|
+
:description => <<~DESCRIPTION
|
664
|
+
A list of error classes that the agent should treat as expected.
|
665
|
+
|
666
|
+
<Callout variant="caution">
|
667
|
+
This option can't be set via environment variable.
|
668
|
+
</Callout>
|
669
|
+
DESCRIPTION
|
652
670
|
},
|
653
|
-
:'
|
654
|
-
:default =>
|
655
|
-
:public =>
|
656
|
-
:type =>
|
671
|
+
:'error_collector.expected_messages' => {
|
672
|
+
:default => {},
|
673
|
+
:public => true,
|
674
|
+
:type => Hash,
|
675
|
+
:allowed_from_server => true,
|
657
676
|
:dynamic_name => true,
|
677
|
+
:description => <<~DESCRIPTION
|
678
|
+
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.
|
679
|
+
|
680
|
+
<Callout variant="caution">
|
681
|
+
This option can't be set via environment variable.
|
682
|
+
</Callout>
|
683
|
+
DESCRIPTION
|
684
|
+
},
|
685
|
+
:'error_collector.expected_status_codes' => {
|
686
|
+
:default => '',
|
687
|
+
:public => true,
|
688
|
+
:type => String,
|
658
689
|
:allowed_from_server => true,
|
659
|
-
:
|
690
|
+
:dynamic_name => true,
|
691
|
+
:description => 'A comma separated list of status codes, possibly including ranges. Errors associated with these status codes, where applicable, will be treated as expected.'
|
660
692
|
},
|
661
|
-
|
662
|
-
|
663
|
-
:
|
664
|
-
:
|
693
|
+
|
694
|
+
:'error_collector.ignore_messages' => {
|
695
|
+
:default => {},
|
696
|
+
:public => true,
|
697
|
+
:type => Hash,
|
698
|
+
:allowed_from_server => true,
|
665
699
|
:dynamic_name => true,
|
700
|
+
:description => <<~DESCRIPTION
|
701
|
+
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.
|
702
|
+
|
703
|
+
<Callout variant="caution">
|
704
|
+
This option can't be set via environment variable.
|
705
|
+
</Callout>
|
706
|
+
DESCRIPTION
|
707
|
+
},
|
708
|
+
:'error_collector.ignore_status_codes' => {
|
709
|
+
:default => '',
|
710
|
+
:public => true,
|
711
|
+
:type => String,
|
666
712
|
:allowed_from_server => true,
|
667
|
-
:
|
713
|
+
:dynamic_name => true,
|
714
|
+
:description => 'A comma separated list of status codes, possibly including ranges. Errors associated with these status codes, where applicable, will be ignored.'
|
668
715
|
},
|
669
|
-
:'
|
670
|
-
:default =>
|
671
|
-
:public =>
|
716
|
+
:'error_collector.max_backtrace_frames' => {
|
717
|
+
:default => 50,
|
718
|
+
:public => true,
|
719
|
+
:type => Integer,
|
720
|
+
:allowed_from_server => false,
|
721
|
+
:description => 'Defines the maximum number of frames in an error backtrace. Backtraces over this amount are truncated at the beginning and end.'
|
722
|
+
},
|
723
|
+
:'error_collector.max_event_samples_stored' => {
|
724
|
+
:default => 100,
|
725
|
+
:public => true,
|
672
726
|
:type => Integer,
|
673
|
-
:dynamic_name => true,
|
674
727
|
:allowed_from_server => true,
|
675
|
-
:description => '
|
728
|
+
:description => 'Defines the maximum number of [TransactionError events](/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights) reported per harvest cycle.'
|
676
729
|
},
|
677
|
-
|
678
|
-
|
679
|
-
:
|
730
|
+
# Browser monitoring
|
731
|
+
:'browser_monitoring.auto_instrument' => {
|
732
|
+
:default => value_of(:'rum.enabled'),
|
733
|
+
:documentation_default => true,
|
734
|
+
:public => true,
|
735
|
+
:type => Boolean,
|
736
|
+
:allowed_from_server => true,
|
737
|
+
: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).'
|
738
|
+
},
|
739
|
+
# Transaction events
|
740
|
+
:'transaction_events.enabled' => {
|
741
|
+
:default => true,
|
742
|
+
:public => true,
|
743
|
+
:type => Boolean,
|
744
|
+
:allowed_from_server => true,
|
745
|
+
:description => 'If `true`, enables transaction event sampling.'
|
746
|
+
},
|
747
|
+
:'transaction_events.max_samples_stored' => {
|
748
|
+
:default => 1200,
|
749
|
+
:public => true,
|
680
750
|
:type => Integer,
|
681
|
-
:dynamic_name => true,
|
682
751
|
:allowed_from_server => true,
|
683
|
-
:description => '
|
752
|
+
:description => 'Defines the maximum number of transaction events reported from a single harvest.'
|
684
753
|
},
|
685
|
-
|
754
|
+
# Application logging
|
755
|
+
:'application_logging.enabled' => {
|
686
756
|
:default => true,
|
687
|
-
:public =>
|
757
|
+
:public => true,
|
688
758
|
:type => Boolean,
|
689
|
-
:deprecated => true,
|
690
759
|
:allowed_from_server => false,
|
691
|
-
:description => '
|
760
|
+
:description => 'If `true`, enables log decoration and the collection of log events and metrics.'
|
692
761
|
},
|
693
|
-
:
|
694
|
-
:default =>
|
762
|
+
:'application_logging.forwarding.enabled' => {
|
763
|
+
:default => true,
|
695
764
|
:public => true,
|
696
765
|
:type => Boolean,
|
697
766
|
:allowed_from_server => false,
|
698
|
-
:description => '
|
699
|
-
'before shuttng down to be installed regardless of detecting scenarios where it generally should not be. ' \
|
700
|
-
'Known use-case for this option is where Sinatra is running as an embedded service within another framework ' \
|
701
|
-
'and the agent is detecting the Sinatra app and skipping the at_exit handler as a result. Sinatra classically ' \
|
702
|
-
'runs the entire application in an at_exit block and would otherwise misbehave if the Agent\'s at_exit handler ' \
|
703
|
-
'is also installed in those circumstances. Note: `send_data_on_exit` should also be set to `true` in tandem with this setting.'
|
767
|
+
:description => 'If `true`, the agent captures log records emitted by your application.'
|
704
768
|
},
|
705
|
-
:
|
769
|
+
:'application_logging.forwarding.max_samples_stored' => {
|
770
|
+
:default => 10000,
|
771
|
+
:public => true,
|
772
|
+
:type => Integer,
|
773
|
+
:allowed_from_server => true,
|
774
|
+
:description => 'Defines the maximum number of log records to buffer in memory at a time.',
|
775
|
+
:dynamic_name => true
|
776
|
+
},
|
777
|
+
:'application_logging.local_decorating.enabled' => {
|
706
778
|
:default => false,
|
707
|
-
:public =>
|
779
|
+
:public => true,
|
708
780
|
:type => Boolean,
|
709
781
|
:allowed_from_server => false,
|
710
|
-
:description => '
|
782
|
+
:description => 'If `true`, the agent decorates logs with metadata to link to entities, hosts, traces, and spans.'
|
711
783
|
},
|
712
|
-
:
|
784
|
+
:'application_logging.metrics.enabled' => {
|
713
785
|
:default => true,
|
714
|
-
:public =>
|
786
|
+
:public => true,
|
787
|
+
:type => Boolean,
|
788
|
+
:allowed_from_server => true,
|
789
|
+
:description => 'If `true`, the agent captures metrics related to logging for your application.'
|
790
|
+
},
|
791
|
+
# Attributes
|
792
|
+
:'attributes.enabled' => {
|
793
|
+
:default => true,
|
794
|
+
:public => true,
|
715
795
|
:type => Boolean,
|
716
796
|
:allowed_from_server => false,
|
717
|
-
:description => '
|
797
|
+
:description => 'If `true`, enables capture of attributes for all destinations.'
|
718
798
|
},
|
719
|
-
:
|
720
|
-
:default =>
|
799
|
+
:'attributes.exclude' => {
|
800
|
+
:default => [],
|
721
801
|
:public => true,
|
722
|
-
:type =>
|
802
|
+
:type => Array,
|
723
803
|
:allowed_from_server => false,
|
724
|
-
:
|
804
|
+
:transform => DefaultSource.method(:convert_to_list),
|
805
|
+
:description => 'Prefix of attributes to exclude from all destinations. Allows `*` as wildcard at end.'
|
725
806
|
},
|
726
|
-
:
|
727
|
-
:default =>
|
807
|
+
:'attributes.include' => {
|
808
|
+
:default => [],
|
728
809
|
:public => true,
|
729
|
-
:type =>
|
810
|
+
:type => Array,
|
730
811
|
:allowed_from_server => false,
|
731
|
-
:
|
812
|
+
:transform => DefaultSource.method(:convert_to_list),
|
813
|
+
:description => 'Prefix of attributes to include in all destinations. Allows `*` as wildcard at end.'
|
732
814
|
},
|
733
|
-
:'
|
815
|
+
:'browser_monitoring.attributes.enabled' => {
|
734
816
|
:default => false,
|
735
817
|
:public => true,
|
736
818
|
:type => Boolean,
|
737
819
|
:allowed_from_server => false,
|
738
|
-
:description => 'If
|
820
|
+
:description => 'If `true`, the agent captures attributes from browser monitoring.'
|
739
821
|
},
|
740
|
-
:'
|
741
|
-
:default =>
|
822
|
+
:'browser_monitoring.attributes.exclude' => {
|
823
|
+
:default => [],
|
742
824
|
:public => true,
|
743
|
-
:type =>
|
825
|
+
:type => Array,
|
744
826
|
:allowed_from_server => false,
|
745
|
-
:
|
827
|
+
:transform => DefaultSource.method(:convert_to_list),
|
828
|
+
:description => 'Prefix of attributes to exclude from browser monitoring. Allows `*` as wildcard at end.'
|
746
829
|
},
|
747
|
-
:'
|
748
|
-
:default => [
|
830
|
+
:'browser_monitoring.attributes.include' => {
|
831
|
+
:default => [],
|
749
832
|
:public => true,
|
750
833
|
:type => Array,
|
751
834
|
:allowed_from_server => false,
|
752
|
-
:transform => DefaultSource.method(:
|
753
|
-
:description => '
|
835
|
+
:transform => DefaultSource.method(:convert_to_list),
|
836
|
+
:description => 'Prefix of attributes to include in browser monitoring. Allows `*` as wildcard at end.'
|
754
837
|
},
|
755
|
-
:
|
756
|
-
:default =>
|
838
|
+
:'error_collector.attributes.enabled' => {
|
839
|
+
:default => true,
|
757
840
|
:public => true,
|
758
841
|
:type => Boolean,
|
759
842
|
:allowed_from_server => false,
|
760
|
-
:description => 'If
|
843
|
+
:description => 'If `true`, the agent captures attributes from error collection.'
|
761
844
|
},
|
762
|
-
:
|
763
|
-
:default =>
|
845
|
+
:'error_collector.attributes.exclude' => {
|
846
|
+
:default => [],
|
764
847
|
:public => true,
|
765
|
-
:type =>
|
766
|
-
:deprecated => true,
|
848
|
+
:type => Array,
|
767
849
|
:allowed_from_server => false,
|
768
|
-
:
|
850
|
+
:transform => DefaultSource.method(:convert_to_list),
|
851
|
+
:description => 'Prefix of attributes to exclude from error collection. Allows `*` as wildcard at end.'
|
769
852
|
},
|
770
|
-
:
|
771
|
-
:default =>
|
853
|
+
:'error_collector.attributes.include' => {
|
854
|
+
:default => [],
|
772
855
|
:public => true,
|
773
|
-
:type =>
|
856
|
+
:type => Array,
|
774
857
|
:allowed_from_server => false,
|
775
|
-
:
|
858
|
+
:transform => DefaultSource.method(:convert_to_list),
|
859
|
+
:description => 'Prefix of attributes to include in error collection. Allows `*` as wildcard at end.'
|
776
860
|
},
|
777
|
-
:
|
778
|
-
:default =>
|
861
|
+
:'span_events.attributes.enabled' => {
|
862
|
+
:default => true,
|
779
863
|
:public => true,
|
780
|
-
:deprecated => true,
|
781
864
|
:type => Boolean,
|
782
865
|
:allowed_from_server => false,
|
783
|
-
:description =>
|
784
|
-
)
|
866
|
+
:description => 'If `true`, the agent captures attributes on span events.'
|
785
867
|
},
|
786
|
-
:
|
787
|
-
:default =>
|
868
|
+
:'span_events.attributes.exclude' => {
|
869
|
+
:default => [],
|
788
870
|
:public => true,
|
789
|
-
:type =>
|
871
|
+
:type => Array,
|
790
872
|
:allowed_from_server => false,
|
791
|
-
:
|
873
|
+
:transform => DefaultSource.method(:convert_to_list),
|
874
|
+
:description => 'Prefix of attributes to exclude from span events. Allows `*` as wildcard at end.'
|
792
875
|
},
|
793
|
-
:
|
794
|
-
:default =>
|
876
|
+
:'span_events.attributes.include' => {
|
877
|
+
:default => [],
|
795
878
|
:public => true,
|
796
|
-
:type =>
|
879
|
+
:type => Array,
|
797
880
|
:allowed_from_server => false,
|
798
|
-
:
|
881
|
+
:transform => DefaultSource.method(:convert_to_list),
|
882
|
+
:description => 'Prefix of attributes to include on span events. Allows `*` as wildcard at end.'
|
799
883
|
},
|
800
|
-
:
|
801
|
-
:default =>
|
884
|
+
:'transaction_events.attributes.enabled' => {
|
885
|
+
:default => true,
|
802
886
|
:public => true,
|
803
887
|
:type => Boolean,
|
804
888
|
:allowed_from_server => false,
|
805
|
-
:description => 'If
|
889
|
+
:description => 'If `true`, the agent captures attributes from transaction events.'
|
806
890
|
},
|
807
|
-
:
|
808
|
-
:default =>
|
809
|
-
:public =>
|
810
|
-
:type =>
|
891
|
+
:'transaction_events.attributes.exclude' => {
|
892
|
+
:default => [],
|
893
|
+
:public => true,
|
894
|
+
:type => Array,
|
811
895
|
:allowed_from_server => false,
|
812
|
-
:
|
896
|
+
:transform => DefaultSource.method(:convert_to_list),
|
897
|
+
:description => 'Prefix of attributes to exclude from transaction events. Allows `*` as wildcard at end.'
|
813
898
|
},
|
814
|
-
:
|
815
|
-
:default =>
|
816
|
-
:public =>
|
817
|
-
:type =>
|
899
|
+
:'transaction_events.attributes.include' => {
|
900
|
+
:default => [],
|
901
|
+
:public => true,
|
902
|
+
:type => Array,
|
818
903
|
:allowed_from_server => false,
|
819
|
-
:
|
904
|
+
:transform => DefaultSource.method(:convert_to_list),
|
905
|
+
:description => 'Prefix of attributes to include in transaction events. Allows `*` as wildcard at end.'
|
820
906
|
},
|
821
|
-
:
|
822
|
-
:default =>
|
907
|
+
:'transaction_segments.attributes.enabled' => {
|
908
|
+
:default => true,
|
823
909
|
:public => true,
|
824
910
|
:type => Boolean,
|
825
911
|
:allowed_from_server => false,
|
826
|
-
:description => 'If
|
912
|
+
:description => 'If `true`, the agent captures attributes on transaction segments.'
|
827
913
|
},
|
828
|
-
:
|
829
|
-
:default =>
|
914
|
+
:'transaction_segments.attributes.exclude' => {
|
915
|
+
:default => [],
|
830
916
|
:public => true,
|
831
|
-
:type =>
|
917
|
+
:type => Array,
|
832
918
|
:allowed_from_server => false,
|
833
|
-
:
|
919
|
+
:transform => DefaultSource.method(:convert_to_list),
|
920
|
+
:description => 'Prefix of attributes to exclude from transaction segments. Allows `*` as wildcard at end.'
|
834
921
|
},
|
835
|
-
:
|
836
|
-
:default =>
|
837
|
-
:public =>
|
838
|
-
:type =>
|
922
|
+
:'transaction_segments.attributes.include' => {
|
923
|
+
:default => [],
|
924
|
+
:public => true,
|
925
|
+
:type => Array,
|
839
926
|
:allowed_from_server => false,
|
840
|
-
:
|
841
|
-
:description =>
|
842
|
-
'If <code>true</code>, uses Module.prepend rather than alias_method for Net::HTTP instrumentation.'
|
843
|
-
)
|
927
|
+
:transform => DefaultSource.method(:convert_to_list),
|
928
|
+
:description => 'Prefix of attributes to include on transaction segments. Allows `*` as wildcard at end.'
|
844
929
|
},
|
845
|
-
:'
|
846
|
-
:default =>
|
930
|
+
:'transaction_tracer.attributes.enabled' => {
|
931
|
+
:default => true,
|
847
932
|
:public => true,
|
848
|
-
:type =>
|
849
|
-
:dynamic_name => true,
|
933
|
+
:type => Boolean,
|
850
934
|
:allowed_from_server => false,
|
851
|
-
:description =>
|
935
|
+
:description => 'If `true`, the agent captures attributes from transaction traces.'
|
852
936
|
},
|
853
|
-
:'
|
854
|
-
:default =>
|
937
|
+
:'transaction_tracer.attributes.exclude' => {
|
938
|
+
:default => [],
|
855
939
|
:public => true,
|
856
|
-
:type =>
|
857
|
-
:dynamic_name => true,
|
940
|
+
:type => Array,
|
858
941
|
:allowed_from_server => false,
|
859
|
-
:
|
942
|
+
:transform => DefaultSource.method(:convert_to_list),
|
943
|
+
:description => 'Prefix of attributes to exclude from transaction traces. Allows `*` as wildcard at end.'
|
860
944
|
},
|
861
|
-
:'
|
862
|
-
:default =>
|
945
|
+
:'transaction_tracer.attributes.include' => {
|
946
|
+
:default => [],
|
863
947
|
:public => true,
|
864
|
-
:type =>
|
865
|
-
:dynamic_name => true,
|
948
|
+
:type => Array,
|
866
949
|
:allowed_from_server => false,
|
867
|
-
:
|
950
|
+
:transform => DefaultSource.method(:convert_to_list),
|
951
|
+
:description => 'Prefix of attributes to include in transaction traces. Allows `*` as wildcard at end.'
|
868
952
|
},
|
869
|
-
|
870
|
-
|
953
|
+
# Audit log
|
954
|
+
:'audit_log.enabled' => {
|
955
|
+
:default => false,
|
871
956
|
:public => true,
|
872
|
-
:type =>
|
873
|
-
:dynamic_name => true,
|
957
|
+
:type => Boolean,
|
874
958
|
:allowed_from_server => false,
|
875
|
-
:description => '
|
959
|
+
: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).'
|
876
960
|
},
|
877
|
-
:'
|
878
|
-
:default =>
|
961
|
+
:'audit_log.endpoints' => {
|
962
|
+
:default => [".*"],
|
879
963
|
:public => true,
|
880
|
-
:type =>
|
881
|
-
:dynamic_name => true,
|
964
|
+
:type => Array,
|
882
965
|
:allowed_from_server => false,
|
883
|
-
:
|
966
|
+
:transform => DefaultSource.method(:convert_to_regexp_list),
|
967
|
+
:description => 'List of allowed endpoints to include in audit log'
|
884
968
|
},
|
885
|
-
:'
|
886
|
-
:default =>
|
969
|
+
:'audit_log.path' => {
|
970
|
+
:default => DefaultSource.audit_log_path,
|
971
|
+
:documentation_default => 'config/newrelic_audit.log',
|
887
972
|
:public => true,
|
888
973
|
:type => String,
|
889
|
-
:dynamic_name => true,
|
890
974
|
:allowed_from_server => false,
|
891
|
-
:description =>
|
975
|
+
:description => 'Specifies a path to the audit log file (including the filename).'
|
892
976
|
},
|
893
|
-
|
894
|
-
|
895
|
-
:
|
977
|
+
# Autostart
|
978
|
+
:'autostart.denylisted_constants' => {
|
979
|
+
:default => 'Rails::Console',
|
980
|
+
:public => true,
|
896
981
|
:type => String,
|
897
|
-
:dynamic_name => true,
|
898
982
|
:allowed_from_server => false,
|
899
|
-
:description =>
|
983
|
+
: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`.'
|
900
984
|
},
|
901
|
-
:'
|
902
|
-
:default =>
|
903
|
-
:public =>
|
985
|
+
:'autostart.denylisted_executables' => {
|
986
|
+
:default => 'irb,rspec',
|
987
|
+
:public => true,
|
904
988
|
:type => String,
|
905
|
-
:dynamic_name => true,
|
906
989
|
:allowed_from_server => false,
|
907
|
-
:description =>
|
990
|
+
:description => 'Defines a comma-delimited list of executables that the agent should not instrument. For example, `rake,my_ruby_script.rb`.'
|
908
991
|
},
|
909
|
-
:'
|
910
|
-
:default =>
|
992
|
+
:'autostart.denylisted_rake_tasks' => {
|
993
|
+
:default => AUTOSTART_DENYLISTED_RAKE_TASKS,
|
911
994
|
:public => true,
|
912
995
|
:type => String,
|
913
|
-
:dynamic_name => true,
|
914
996
|
:allowed_from_server => false,
|
915
|
-
:description => '
|
997
|
+
:description => 'Defines a comma-delimited list of Rake tasks that the agent should not instrument. For example, `assets:precompile,db:migrate`.'
|
916
998
|
},
|
917
|
-
|
918
|
-
|
999
|
+
# Code level metrics
|
1000
|
+
:'code_level_metrics.enabled' => {
|
1001
|
+
:default => true,
|
919
1002
|
:public => true,
|
920
|
-
:type =>
|
921
|
-
:
|
922
|
-
:
|
923
|
-
|
1003
|
+
:type => Boolean,
|
1004
|
+
:allowed_from_server => true,
|
1005
|
+
:description => "If `true`, the agent will report source code level metrics for traced methods.\nsee: " \
|
1006
|
+
'https://docs.newrelic.com/docs/apm/agents/ruby-agent/features/ruby-codestream-integration/'
|
924
1007
|
},
|
925
|
-
|
926
|
-
|
1008
|
+
# Cross application tracer
|
1009
|
+
:"cross_application_tracer.enabled" => {
|
1010
|
+
:default => false,
|
927
1011
|
:public => true,
|
928
|
-
:type =>
|
929
|
-
:
|
930
|
-
:
|
931
|
-
:description =>
|
1012
|
+
:type => Boolean,
|
1013
|
+
:allowed_from_server => true,
|
1014
|
+
:deprecated => true,
|
1015
|
+
:description => deprecated_description(
|
1016
|
+
:'distributed_tracing-enabled',
|
1017
|
+
'If `true`, enables [cross-application tracing](/docs/agents/ruby-agent/features/cross-application-tracing-ruby/) when `distributed_tracing.enabled` is set to `false`.'
|
1018
|
+
)
|
932
1019
|
},
|
933
|
-
|
934
|
-
|
935
|
-
:
|
936
|
-
:
|
937
|
-
:
|
1020
|
+
# Custom attributes
|
1021
|
+
:'custom_attributes.enabled' => {
|
1022
|
+
:default => true,
|
1023
|
+
:public => true,
|
1024
|
+
:type => Boolean,
|
938
1025
|
:allowed_from_server => false,
|
939
|
-
:description =>
|
1026
|
+
:description => 'If `false`, custom attributes will not be sent on events.'
|
940
1027
|
},
|
941
|
-
|
942
|
-
|
943
|
-
:
|
944
|
-
:
|
945
|
-
:
|
946
|
-
:allowed_from_server =>
|
947
|
-
:description
|
948
|
-
"<code>to_app</code> method in Rack::Builder to find gems to instrument during " \
|
949
|
-
"application startup. May be one of [auto|prepend|chain|disabled]."
|
1028
|
+
# Custom events
|
1029
|
+
:'custom_insights_events.enabled' => {
|
1030
|
+
:default => true,
|
1031
|
+
:public => true,
|
1032
|
+
:type => Boolean,
|
1033
|
+
:allowed_from_server => true,
|
1034
|
+
:description => 'If `true`, the agent captures [custom events](/docs/insights/new-relic-insights/adding-querying-data/inserting-custom-events-new-relic-apm-agents).'
|
950
1035
|
},
|
951
|
-
:'
|
952
|
-
:default
|
953
|
-
:public
|
954
|
-
:type
|
955
|
-
:
|
956
|
-
:
|
957
|
-
:
|
1036
|
+
:'custom_insights_events.max_samples_stored' => {
|
1037
|
+
:default => 3000,
|
1038
|
+
:public => true,
|
1039
|
+
:type => Integer,
|
1040
|
+
:allowed_from_server => true,
|
1041
|
+
:description => 'Specify a maximum number of custom events to buffer in memory at a time.',
|
1042
|
+
:dynamic_name => true
|
958
1043
|
},
|
959
|
-
|
960
|
-
|
961
|
-
:
|
962
|
-
:
|
963
|
-
:
|
1044
|
+
# Datastore tracer
|
1045
|
+
:'datastore_tracer.database_name_reporting.enabled' => {
|
1046
|
+
:default => true,
|
1047
|
+
:public => true,
|
1048
|
+
:type => Boolean,
|
964
1049
|
:allowed_from_server => false,
|
965
|
-
:description
|
966
|
-
"<code>to_app</code> method in Puma::Rack::Builder to find gems to instrument during " \
|
967
|
-
"application startup. May be one of [auto|prepend|chain|disabled]."
|
1050
|
+
:description => 'If `false`, the agent will not add `database_name` parameter to transaction or slow sql traces.'
|
968
1051
|
},
|
969
|
-
:'
|
970
|
-
:default
|
971
|
-
:public
|
972
|
-
:type
|
973
|
-
:dynamic_name => true,
|
1052
|
+
:'datastore_tracer.instance_reporting.enabled' => {
|
1053
|
+
:default => true,
|
1054
|
+
:public => true,
|
1055
|
+
:type => Boolean,
|
974
1056
|
:allowed_from_server => false,
|
975
|
-
:description
|
1057
|
+
: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.'
|
976
1058
|
},
|
977
|
-
|
978
|
-
|
1059
|
+
# Disabling
|
1060
|
+
:disable_action_cable_instrumentation => {
|
1061
|
+
:default => false,
|
979
1062
|
:public => true,
|
980
|
-
:type =>
|
981
|
-
:dynamic_name => true,
|
1063
|
+
:type => Boolean,
|
982
1064
|
:allowed_from_server => false,
|
983
|
-
:description
|
1065
|
+
:description => 'If `true`, disables Action Cable instrumentation.'
|
984
1066
|
},
|
985
|
-
:
|
986
|
-
|
987
|
-
|
988
|
-
|
989
|
-
|
1067
|
+
# TODO: by subscribing to process_middleware.action_dispatch events,
|
1068
|
+
# we duplicate the efforts already performed by non-notifications
|
1069
|
+
# based instrumentation. In future, we ought to determine the
|
1070
|
+
# extent of the overlap and duplication and end up with only this
|
1071
|
+
# notifications based approach existing and the monkey patching
|
1072
|
+
# approach removed entirely. NOTE that we will likely not want to
|
1073
|
+
# do so until we are okay with dropping support for Rails < v6,
|
1074
|
+
# given that these events are available only for v6+.
|
1075
|
+
:disable_action_dispatch => {
|
1076
|
+
:default => true,
|
1077
|
+
:public => false,
|
1078
|
+
:type => Boolean,
|
990
1079
|
:allowed_from_server => false,
|
991
|
-
:description
|
1080
|
+
:description => 'If `true`, disables Action Dispatch instrumentation.'
|
992
1081
|
},
|
993
|
-
:
|
994
|
-
:default =>
|
1082
|
+
:disable_action_controller => {
|
1083
|
+
:default => false,
|
995
1084
|
:public => true,
|
996
|
-
:type =>
|
997
|
-
:dynamic_name => true,
|
1085
|
+
:type => Boolean,
|
998
1086
|
:allowed_from_server => false,
|
999
|
-
:description
|
1087
|
+
:description => 'If `true`, disables Action Controller instrumentation.'
|
1000
1088
|
},
|
1001
|
-
:
|
1089
|
+
:disable_action_mailbox => {
|
1002
1090
|
:default => false,
|
1003
1091
|
:public => true,
|
1004
1092
|
:type => Boolean,
|
1005
1093
|
:allowed_from_server => false,
|
1006
|
-
:description => 'If
|
1094
|
+
:description => 'If `true`, disables Action Mailbox instrumentation.'
|
1007
1095
|
},
|
1008
|
-
:
|
1096
|
+
:disable_action_mailer => {
|
1009
1097
|
:default => false,
|
1010
1098
|
:public => true,
|
1011
1099
|
:type => Boolean,
|
1012
|
-
:dynamic_name => true,
|
1013
1100
|
:allowed_from_server => false,
|
1014
|
-
:description => 'If
|
1101
|
+
:description => 'If `true`, disables Action Mailer instrumentation.'
|
1015
1102
|
},
|
1016
|
-
:
|
1103
|
+
:disable_activejob => {
|
1017
1104
|
:default => false,
|
1018
1105
|
:public => true,
|
1019
1106
|
:type => Boolean,
|
1020
|
-
:dynamic_name => true,
|
1021
1107
|
:allowed_from_server => false,
|
1022
|
-
:description => 'If
|
1108
|
+
:description => 'If `true`, disables Active Job instrumentation.'
|
1023
1109
|
},
|
1024
1110
|
:disable_active_storage => {
|
1025
1111
|
:default => false,
|
1026
1112
|
:public => true,
|
1027
1113
|
:type => Boolean,
|
1028
|
-
:dynamic_name => true,
|
1029
1114
|
:allowed_from_server => false,
|
1030
|
-
:description => 'If
|
1115
|
+
:description => 'If `true`, disables Active Storage instrumentation.'
|
1031
1116
|
},
|
1032
|
-
:
|
1033
|
-
:default =>
|
1117
|
+
:disable_active_support => {
|
1118
|
+
:default => false,
|
1034
1119
|
:public => true,
|
1035
1120
|
:type => Boolean,
|
1036
|
-
:deprecated => true,
|
1037
1121
|
:allowed_from_server => false,
|
1038
|
-
:description =>
|
1122
|
+
:description => 'If `true`, disables Active Support instrumentation.'
|
1039
1123
|
},
|
1040
|
-
:
|
1041
|
-
:default => value_of(:
|
1124
|
+
:disable_activerecord_instrumentation => {
|
1125
|
+
:default => value_of(:skip_ar_instrumentation),
|
1126
|
+
:documentation_default => false,
|
1042
1127
|
:public => true,
|
1043
1128
|
:type => Boolean,
|
1044
|
-
:deprecated => true,
|
1045
1129
|
:allowed_from_server => false,
|
1046
|
-
:description =>
|
1130
|
+
:description => 'If `true`, disables Active Record instrumentation.'
|
1047
1131
|
},
|
1048
|
-
:
|
1049
|
-
:default =>
|
1132
|
+
:disable_active_record_notifications => {
|
1133
|
+
:default => false,
|
1050
1134
|
:public => true,
|
1051
1135
|
:type => Boolean,
|
1052
|
-
:
|
1136
|
+
:dynamic_name => true,
|
1053
1137
|
:allowed_from_server => false,
|
1054
|
-
:description =>
|
1138
|
+
:description => 'If `true`, disables instrumentation for Active Record 4+'
|
1055
1139
|
},
|
1056
|
-
:
|
1057
|
-
:default =>
|
1140
|
+
:disable_cpu_sampler => {
|
1141
|
+
:default => false,
|
1058
1142
|
:public => true,
|
1059
1143
|
:type => Boolean,
|
1060
|
-
:
|
1144
|
+
:dynamic_name => true,
|
1061
1145
|
:allowed_from_server => false,
|
1062
|
-
:description =>
|
1146
|
+
:description => 'If `true`, the agent won\'t sample the CPU usage of the host process.'
|
1063
1147
|
},
|
1064
|
-
:
|
1148
|
+
:disable_delayed_job_sampler => {
|
1065
1149
|
:default => false,
|
1066
1150
|
:public => true,
|
1067
1151
|
:type => Boolean,
|
1068
|
-
:
|
1152
|
+
:dynamic_name => true,
|
1069
1153
|
:allowed_from_server => false,
|
1070
|
-
:description =>
|
1154
|
+
:description => 'If `true`, the agent won\'t measure the depth of Delayed Job queues.'
|
1071
1155
|
},
|
1072
1156
|
:disable_gc_profiler => {
|
1073
1157
|
:default => false,
|
1074
1158
|
:public => true,
|
1075
1159
|
:type => Boolean,
|
1076
1160
|
:allowed_from_server => false,
|
1077
|
-
:description => 'If
|
1161
|
+
:description => 'If `true`, disables the use of GC::Profiler to measure time spent in garbage collection'
|
1078
1162
|
},
|
1079
|
-
:
|
1163
|
+
:disable_memory_sampler => {
|
1080
1164
|
:default => false,
|
1081
1165
|
:public => true,
|
1082
1166
|
:type => Boolean,
|
1083
|
-
:allowed_from_server => false,
|
1084
1167
|
:dynamic_name => true,
|
1085
|
-
:
|
1086
|
-
:description => 'If
|
1168
|
+
:allowed_from_server => false,
|
1169
|
+
:description => 'If `true`, the agent won\'t sample the memory usage of the host process.'
|
1087
1170
|
},
|
1088
|
-
:
|
1171
|
+
:disable_middleware_instrumentation => {
|
1089
1172
|
:default => false,
|
1090
1173
|
:public => true,
|
1091
1174
|
:type => Boolean,
|
1092
1175
|
:allowed_from_server => false,
|
1093
|
-
:
|
1094
|
-
:deprecated => true,
|
1095
|
-
:description => 'If <code>true</code>, enables the capture of job arguments for transaction traces and traced errors in Resque.'
|
1176
|
+
:description => 'If `true`, the agent won\'t wrap third-party middlewares in instrumentation (regardless of whether they are installed via Rack::Builder or Rails).'
|
1096
1177
|
},
|
1097
|
-
:
|
1098
|
-
:default =>
|
1099
|
-
:public =>
|
1178
|
+
:disable_samplers => {
|
1179
|
+
:default => false,
|
1180
|
+
:public => true,
|
1100
1181
|
:type => Boolean,
|
1101
1182
|
:allowed_from_server => false,
|
1102
|
-
:description => '
|
1183
|
+
: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).'
|
1103
1184
|
},
|
1104
|
-
:
|
1185
|
+
:disable_sequel_instrumentation => {
|
1105
1186
|
:default => false,
|
1106
1187
|
:public => true,
|
1107
1188
|
:type => Boolean,
|
1108
|
-
:allowed_from_server =>
|
1109
|
-
:description => '
|
1189
|
+
:allowed_from_server => false,
|
1190
|
+
:description => 'If `true`, disables [Sequel instrumentation](/docs/agents/ruby-agent/frameworks/sequel-instrumentation).'
|
1110
1191
|
},
|
1111
|
-
:
|
1112
|
-
:default =>
|
1192
|
+
:disable_sidekiq => {
|
1193
|
+
:default => false,
|
1113
1194
|
:public => true,
|
1114
1195
|
:type => Boolean,
|
1115
|
-
:allowed_from_server =>
|
1116
|
-
:description => 'If
|
1117
|
-
},
|
1118
|
-
:'transaction_tracer.transaction_threshold' => {
|
1119
|
-
:default => DefaultSource.transaction_tracer_transaction_threshold,
|
1120
|
-
:public => true,
|
1121
|
-
:type => Float,
|
1122
|
-
:allowed_from_server => true,
|
1123
|
-
: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 <code><a href="https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#apdex_f">apdex_f</a></code>.'
|
1196
|
+
:allowed_from_server => false,
|
1197
|
+
:description => 'If `true`, disables [Sidekiq instrumentation](/docs/agents/ruby-agent/background-jobs/sidekiq-instrumentation).'
|
1124
1198
|
},
|
1125
|
-
:
|
1126
|
-
:default =>
|
1199
|
+
:disable_sinatra_auto_middleware => {
|
1200
|
+
:default => false,
|
1127
1201
|
:public => true,
|
1128
|
-
:type =>
|
1129
|
-
:allowed_from_server =>
|
1130
|
-
:description =>
|
1202
|
+
:type => Boolean,
|
1203
|
+
:allowed_from_server => false,
|
1204
|
+
:description => <<~DESCRIPTION
|
1205
|
+
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).
|
1206
|
+
|
1207
|
+
<Callout variant="important">
|
1208
|
+
Cross 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.
|
1209
|
+
|
1210
|
+
To continue using cross application tracing, update the following options in your `newrelic.yml` configuration file:
|
1131
1211
|
|
1132
|
-
|
1212
|
+
```
|
1213
|
+
# newrelic.yml
|
1133
1214
|
|
1134
|
-
|
1135
|
-
|
1136
|
-
|
1137
|
-
|
1138
|
-
|
1139
|
-
|
1215
|
+
cross_application_tracer:
|
1216
|
+
enabled: true
|
1217
|
+
distributed_tracing:
|
1218
|
+
enabled: false
|
1219
|
+
```
|
1220
|
+
</Callout>
|
1221
|
+
DESCRIPTION
|
1140
1222
|
},
|
1141
|
-
:
|
1223
|
+
:disable_view_instrumentation => {
|
1142
1224
|
:default => false,
|
1143
1225
|
:public => true,
|
1144
1226
|
:type => Boolean,
|
1145
1227
|
:allowed_from_server => false,
|
1146
|
-
:description => 'If
|
1228
|
+
:description => 'If `true`, disables view instrumentation.'
|
1147
1229
|
},
|
1148
|
-
:
|
1149
|
-
:default =>
|
1230
|
+
:disable_vm_sampler => {
|
1231
|
+
:default => false,
|
1150
1232
|
:public => true,
|
1151
1233
|
:type => Boolean,
|
1152
|
-
:
|
1234
|
+
:dynamic_name => true,
|
1153
1235
|
:allowed_from_server => false,
|
1154
|
-
:description => '
|
1155
|
-
},
|
1156
|
-
:'transaction_tracer.explain_threshold' => {
|
1157
|
-
:default => 0.5,
|
1158
|
-
:public => true,
|
1159
|
-
:type => Float,
|
1160
|
-
:allowed_from_server => true,
|
1161
|
-
:description => 'Threshold (in seconds) above which the agent will collect explain plans. Relevant only when <code><a href="#transaction_tracer.explain_enabled">explain_enabled</a></code> is true.'
|
1236
|
+
:description => 'If `true`, the agent won\'t [sample performance measurements from the Ruby VM](/docs/agents/ruby-agent/features/ruby-vm-measurements).'
|
1162
1237
|
},
|
1163
|
-
|
1238
|
+
# Distributed tracing
|
1239
|
+
:'distributed_tracing.enabled' => {
|
1164
1240
|
:default => true,
|
1165
1241
|
:public => true,
|
1166
1242
|
:type => Boolean,
|
1167
1243
|
:allowed_from_server => true,
|
1168
|
-
:description => '
|
1244
|
+
: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.'
|
1169
1245
|
},
|
1170
|
-
|
1171
|
-
|
1246
|
+
# Elasticsearch
|
1247
|
+
:'elasticsearch.capture_queries' => {
|
1248
|
+
:default => true,
|
1172
1249
|
:public => true,
|
1173
|
-
:type =>
|
1250
|
+
:type => Boolean,
|
1174
1251
|
:allowed_from_server => true,
|
1175
|
-
:description => '
|
1252
|
+
:description => 'If `true`, the agent captures Elasticsearch queries in transaction traces.'
|
1176
1253
|
},
|
1177
|
-
:'
|
1178
|
-
:default =>
|
1254
|
+
:'elasticsearch.obfuscate_queries' => {
|
1255
|
+
:default => true,
|
1179
1256
|
:public => true,
|
1180
|
-
:type =>
|
1257
|
+
:type => Boolean,
|
1181
1258
|
:allowed_from_server => true,
|
1182
|
-
:description => '
|
1259
|
+
:description => 'If `true`, the agent obfuscates Elasticsearch queries in transaction traces.'
|
1183
1260
|
},
|
1184
|
-
|
1185
|
-
|
1261
|
+
# Heroku
|
1262
|
+
:'heroku.use_dyno_names' => {
|
1263
|
+
:default => true,
|
1186
1264
|
:public => true,
|
1187
1265
|
:type => Boolean,
|
1188
1266
|
:allowed_from_server => false,
|
1189
|
-
:description => 'If
|
1267
|
+
:description => 'If `true`, the agent uses Heroku dyno names as the hostname.'
|
1190
1268
|
},
|
1191
|
-
:
|
1192
|
-
:default =>
|
1269
|
+
:'heroku.dyno_name_prefixes_to_shorten' => {
|
1270
|
+
:default => %w[scheduler run],
|
1193
1271
|
:public => true,
|
1194
|
-
:type =>
|
1272
|
+
:type => Array,
|
1195
1273
|
:allowed_from_server => false,
|
1196
|
-
:
|
1197
|
-
:description => '
|
1274
|
+
:transform => DefaultSource.method(:convert_to_list),
|
1275
|
+
: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>).'
|
1198
1276
|
},
|
1199
|
-
|
1200
|
-
|
1201
|
-
:
|
1202
|
-
:
|
1277
|
+
# Infinite tracing
|
1278
|
+
:'infinite_tracing.trace_observer.host' => {
|
1279
|
+
:default => '',
|
1280
|
+
:public => true,
|
1281
|
+
:type => String,
|
1203
1282
|
:allowed_from_server => false,
|
1204
|
-
:
|
1205
|
-
:
|
1206
|
-
|
1283
|
+
:external => :infinite_tracing,
|
1284
|
+
:description => "Configures the hostname for the trace observer Host. " \
|
1285
|
+
"When configured, enables tail-based sampling by sending all recorded spans " \
|
1286
|
+
"to a trace observer for further sampling decisions, irrespective of any usual " \
|
1287
|
+
"agent sampling decision."
|
1207
1288
|
},
|
1208
|
-
:
|
1209
|
-
:default
|
1210
|
-
:public
|
1211
|
-
:type
|
1212
|
-
:deprecated => true,
|
1289
|
+
:'infinite_tracing.trace_observer.port' => {
|
1290
|
+
:default => 443,
|
1291
|
+
:public => true,
|
1292
|
+
:type => Integer,
|
1213
1293
|
:allowed_from_server => false,
|
1214
|
-
:
|
1294
|
+
:external => :infinite_tracing,
|
1295
|
+
:description => "Configures the TCP/IP port for the trace observer Host"
|
1215
1296
|
},
|
1216
|
-
|
1217
|
-
|
1218
|
-
:
|
1219
|
-
:
|
1220
|
-
:
|
1297
|
+
# Instrumentation
|
1298
|
+
:'instrumentation.active_support_logger' => {
|
1299
|
+
:default => instrumentation_value_from_boolean(:'application_logging.enabled'),
|
1300
|
+
:documentation_default => 'auto',
|
1301
|
+
:dynamic_name => true,
|
1302
|
+
:public => true,
|
1303
|
+
:type => String,
|
1221
1304
|
:allowed_from_server => false,
|
1222
|
-
:description
|
1305
|
+
:description => 'Controls auto-instrumentation of ActiveSupport::Logger at start up. May be one of [auto|prepend|chain|disabled].'
|
1223
1306
|
},
|
1224
|
-
:'
|
1225
|
-
:default
|
1226
|
-
:public => true,
|
1227
|
-
:type => Boolean,
|
1228
|
-
:allowed_from_server => true,
|
1229
|
-
:description => 'If <code>true</code>, the agent will collect metadata about messages and attach them as segment parameters.'
|
1230
|
-
},
|
1231
|
-
:'slow_sql.enabled' => {
|
1232
|
-
:default => value_of(:'transaction_tracer.enabled'),
|
1307
|
+
:'instrumentation.bunny' => {
|
1308
|
+
:default => 'auto',
|
1233
1309
|
:public => true,
|
1234
|
-
:type =>
|
1235
|
-
:
|
1236
|
-
:
|
1310
|
+
:type => String,
|
1311
|
+
:dynamic_name => true,
|
1312
|
+
:allowed_from_server => false,
|
1313
|
+
:description => 'Controls auto-instrumentation of bunny at start up. May be one of [auto|prepend|chain|disabled].'
|
1237
1314
|
},
|
1238
|
-
:'
|
1239
|
-
:default =>
|
1315
|
+
:'instrumentation.fiber' => {
|
1316
|
+
:default => 'auto',
|
1240
1317
|
:public => true,
|
1241
|
-
:type =>
|
1242
|
-
:
|
1243
|
-
:
|
1318
|
+
:type => String,
|
1319
|
+
:dynamic_name => true,
|
1320
|
+
:allowed_from_server => false,
|
1321
|
+
:description => 'Controls auto-instrumentation of the Fiber class at start up. May be one of [auto|prepend|chain|disabled].'
|
1244
1322
|
},
|
1245
|
-
:'
|
1246
|
-
:default =>
|
1323
|
+
:'instrumentation.concurrent_ruby' => {
|
1324
|
+
:default => 'auto',
|
1247
1325
|
:public => true,
|
1248
|
-
:type =>
|
1249
|
-
:
|
1250
|
-
:
|
1326
|
+
:type => String,
|
1327
|
+
:dynamic_name => true,
|
1328
|
+
:allowed_from_server => false,
|
1329
|
+
:description => 'Controls auto-instrumentation of the concurrent-ruby library at start up. May be one of [auto|prepend|chain|disabled].'
|
1251
1330
|
},
|
1252
|
-
:'
|
1253
|
-
:default =>
|
1331
|
+
:'instrumentation.curb' => {
|
1332
|
+
:default => 'auto',
|
1333
|
+
:documentation_default => 'auto',
|
1254
1334
|
:public => true,
|
1255
1335
|
:type => String,
|
1256
|
-
:
|
1257
|
-
:
|
1336
|
+
:dynamic_name => true,
|
1337
|
+
:allowed_from_server => false,
|
1338
|
+
:description => 'Controls auto-instrumentation of Curb at start up. May be one of [auto|prepend|chain|disabled].'
|
1258
1339
|
},
|
1259
|
-
:'
|
1260
|
-
:default =>
|
1340
|
+
:'instrumentation.delayed_job' => {
|
1341
|
+
:default => 'auto',
|
1342
|
+
:documentation_default => 'auto',
|
1261
1343
|
:public => true,
|
1262
|
-
:type =>
|
1263
|
-
:
|
1264
|
-
:
|
1344
|
+
:type => String,
|
1345
|
+
:dynamic_name => true,
|
1346
|
+
:allowed_from_server => false,
|
1347
|
+
:description => 'Controls auto-instrumentation of Delayed Job at start up. May be one of [auto|prepend|chain|disabled].'
|
1265
1348
|
},
|
1266
|
-
:'
|
1267
|
-
:default =>
|
1349
|
+
:'instrumentation.elasticsearch' => {
|
1350
|
+
:default => 'auto',
|
1268
1351
|
:public => true,
|
1269
|
-
:type =>
|
1270
|
-
:
|
1271
|
-
:
|
1352
|
+
:type => String,
|
1353
|
+
:dynamic_name => true,
|
1354
|
+
:allowed_from_server => false,
|
1355
|
+
:description => 'Controls auto-instrumentation of the elasticsearch library at start up. May be one of [auto|prepend|chain|disabled].'
|
1272
1356
|
},
|
1273
|
-
:'
|
1274
|
-
:default =>
|
1357
|
+
:'instrumentation.excon' => {
|
1358
|
+
:default => 'enabled',
|
1359
|
+
:documentation_default => 'enabled',
|
1275
1360
|
:public => true,
|
1276
|
-
:type =>
|
1277
|
-
:
|
1278
|
-
:
|
1361
|
+
:type => String,
|
1362
|
+
:dynamic_name => true,
|
1363
|
+
:allowed_from_server => false,
|
1364
|
+
:description => "Controls auto-instrumentation of Excon at start up. May be one of [enabled|disabled]."
|
1279
1365
|
},
|
1280
|
-
:'
|
1281
|
-
:default =>
|
1366
|
+
:'instrumentation.grape' => {
|
1367
|
+
:default => 'auto',
|
1282
1368
|
:public => true,
|
1283
|
-
:type =>
|
1284
|
-
:
|
1285
|
-
:
|
1369
|
+
:type => String,
|
1370
|
+
:dynamic_name => true,
|
1371
|
+
:allowed_from_server => false,
|
1372
|
+
:description => "Controls auto-instrumentation of Grape at start up. May be one of [auto|prepend|chain|disabled]."
|
1286
1373
|
},
|
1287
|
-
:'
|
1288
|
-
:default =>
|
1374
|
+
:'instrumentation.grpc_client' => {
|
1375
|
+
:default => instrumentation_value_of(:disable_grpc_client),
|
1376
|
+
:documentation_default => 'auto',
|
1289
1377
|
:public => true,
|
1290
|
-
:type =>
|
1291
|
-
:
|
1378
|
+
:type => String,
|
1379
|
+
:dynamic_name => true,
|
1292
1380
|
:allowed_from_server => false,
|
1293
|
-
:description => '
|
1381
|
+
:description => 'Controls auto-instrumentation of gRPC clients at start up. May be one of [auto|prepend|chain|disabled].'
|
1294
1382
|
},
|
1295
|
-
:'
|
1296
|
-
:default =>
|
1383
|
+
:'instrumentation.grpc.host_denylist' => {
|
1384
|
+
:default => [],
|
1297
1385
|
:public => true,
|
1298
|
-
:type =>
|
1299
|
-
:allowed_from_server =>
|
1300
|
-
:
|
1386
|
+
:type => Array,
|
1387
|
+
:allowed_from_server => false,
|
1388
|
+
:transform => DefaultSource.method(:convert_to_regexp_list),
|
1389
|
+
: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.*")
|
1301
1390
|
},
|
1302
|
-
:'
|
1303
|
-
:default =>
|
1391
|
+
:'instrumentation.grpc_server' => {
|
1392
|
+
:default => instrumentation_value_of(:disable_grpc_server),
|
1393
|
+
:documentation_default => 'auto',
|
1304
1394
|
:public => true,
|
1305
|
-
:type =>
|
1395
|
+
:type => String,
|
1396
|
+
:dynamic_name => true,
|
1306
1397
|
:allowed_from_server => false,
|
1307
|
-
:description => '
|
1398
|
+
:description => 'Controls auto-instrumentation of gRPC servers at start up. May be one of [auto|prepend|chain|disabled].'
|
1308
1399
|
},
|
1309
|
-
:'
|
1310
|
-
:default =>
|
1400
|
+
:'instrumentation.httpclient' => {
|
1401
|
+
:default => 'auto',
|
1402
|
+
:documentation_default => 'auto',
|
1311
1403
|
:public => true,
|
1312
|
-
:type =>
|
1313
|
-
:allowed_from_server => true,
|
1404
|
+
:type => String,
|
1314
1405
|
:dynamic_name => true,
|
1315
|
-
:
|
1406
|
+
:allowed_from_server => false,
|
1407
|
+
:description => "Controls auto-instrumentation of HTTPClient at start up. May be one of [auto|prepend|chain|disabled]."
|
1316
1408
|
},
|
1317
|
-
:'
|
1318
|
-
:default =>
|
1409
|
+
:'instrumentation.httprb' => {
|
1410
|
+
:default => 'auto',
|
1411
|
+
:documentation_default => 'auto',
|
1319
1412
|
:public => true,
|
1320
|
-
:type =>
|
1321
|
-
:
|
1322
|
-
:
|
1413
|
+
:type => String,
|
1414
|
+
:dynamic_name => true,
|
1415
|
+
:allowed_from_server => false,
|
1416
|
+
:description => 'Controls auto-instrumentation of http.rb gem at start up. May be one of [auto|prepend|chain|disabled].'
|
1323
1417
|
},
|
1324
|
-
:'
|
1325
|
-
:default =>
|
1326
|
-
:
|
1327
|
-
:
|
1328
|
-
:
|
1329
|
-
:
|
1418
|
+
:'instrumentation.logger' => {
|
1419
|
+
:default => instrumentation_value_from_boolean(:'application_logging.enabled'),
|
1420
|
+
:documentation_default => 'auto',
|
1421
|
+
:public => true,
|
1422
|
+
:type => String,
|
1423
|
+
:dynamic_name => true,
|
1424
|
+
:allowed_from_server => false,
|
1425
|
+
:description => 'Controls auto-instrumentation of Ruby standard library Logger at start up. May be one of [auto|prepend|chain|disabled].'
|
1330
1426
|
},
|
1331
|
-
:
|
1332
|
-
:default => '',
|
1333
|
-
:public =>
|
1427
|
+
:'instrumentation.memcache' => {
|
1428
|
+
:default => 'auto',
|
1429
|
+
:public => true,
|
1334
1430
|
:type => String,
|
1335
|
-
:
|
1336
|
-
:
|
1431
|
+
:dynamic_name => true,
|
1432
|
+
:allowed_from_server => false,
|
1433
|
+
:description => 'Controls auto-instrumentation of dalli gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
|
1337
1434
|
},
|
1338
|
-
:
|
1339
|
-
:default => '',
|
1340
|
-
:
|
1435
|
+
:'instrumentation.memcached' => {
|
1436
|
+
:default => 'auto',
|
1437
|
+
:documentation_default => 'auto',
|
1438
|
+
:public => true,
|
1341
1439
|
:type => String,
|
1342
|
-
:
|
1343
|
-
:
|
1440
|
+
:dynamic_name => true,
|
1441
|
+
:allowed_from_server => false,
|
1442
|
+
:description => 'Controls auto-instrumentation of memcached gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
|
1344
1443
|
},
|
1345
|
-
:
|
1346
|
-
:default =>
|
1347
|
-
:
|
1444
|
+
:'instrumentation.memcache_client' => {
|
1445
|
+
:default => instrumentation_value_of(:disable_memcache_client),
|
1446
|
+
:documentation_default => 'auto',
|
1447
|
+
:public => true,
|
1348
1448
|
:type => String,
|
1349
|
-
:
|
1350
|
-
:
|
1449
|
+
:dynamic_name => true,
|
1450
|
+
:allowed_from_server => false,
|
1451
|
+
:description => 'Controls auto-instrumentation of memcache-client gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
|
1351
1452
|
},
|
1352
|
-
:
|
1353
|
-
:default => '',
|
1354
|
-
:
|
1453
|
+
:'instrumentation.mongo' => {
|
1454
|
+
:default => 'enabled',
|
1455
|
+
:documentation_default => 'enabled',
|
1456
|
+
:public => true,
|
1355
1457
|
:type => String,
|
1356
|
-
:
|
1357
|
-
:
|
1458
|
+
:dynamic_name => true,
|
1459
|
+
:allowed_from_server => false,
|
1460
|
+
:description => "Controls auto-instrumentation of Mongo at start up. May be one of [enabled|disabled]."
|
1358
1461
|
},
|
1359
|
-
:
|
1360
|
-
:default => '',
|
1361
|
-
:
|
1462
|
+
:'instrumentation.net_http' => {
|
1463
|
+
:default => 'auto',
|
1464
|
+
:documentation_default => 'auto',
|
1465
|
+
:public => true,
|
1362
1466
|
:type => String,
|
1363
|
-
:
|
1364
|
-
:
|
1467
|
+
:dynamic_name => true,
|
1468
|
+
:allowed_from_server => false,
|
1469
|
+
:description => "Controls auto-instrumentation of Net::HTTP at start up. May be one of [auto|prepend|chain|disabled]."
|
1365
1470
|
},
|
1366
|
-
:'
|
1367
|
-
:default => value_of(:'
|
1471
|
+
:'instrumentation.puma_rack' => {
|
1472
|
+
:default => value_of(:'instrumentation.rack'),
|
1473
|
+
:documentation_default => 'auto',
|
1368
1474
|
:public => true,
|
1369
|
-
:type =>
|
1370
|
-
:
|
1371
|
-
:
|
1475
|
+
:type => String,
|
1476
|
+
:dynamic_name => true,
|
1477
|
+
:allowed_from_server => false,
|
1478
|
+
:description => "Controls auto-instrumentation of Puma::Rack. When enabled, the agent hooks into the " \
|
1479
|
+
"`to_app` method in Puma::Rack::Builder to find gems to instrument during " \
|
1480
|
+
"application startup. May be one of [auto|prepend|chain|disabled]."
|
1372
1481
|
},
|
1373
|
-
:'
|
1374
|
-
:default =>
|
1482
|
+
:'instrumentation.puma_rack_urlmap' => {
|
1483
|
+
:default => value_of(:'instrumentation.rack_urlmap'),
|
1484
|
+
:documentation_default => 'auto',
|
1375
1485
|
:public => true,
|
1376
|
-
:type =>
|
1377
|
-
:
|
1486
|
+
:type => String,
|
1487
|
+
:dynamic_name => true,
|
1378
1488
|
:allowed_from_server => false,
|
1379
|
-
:description => '
|
1489
|
+
:description => 'Controls auto-instrumentation of Puma::Rack::URLMap at start up. May be one of [auto|prepend|chain|disabled].'
|
1380
1490
|
},
|
1381
|
-
:'
|
1382
|
-
:default =>
|
1383
|
-
:
|
1491
|
+
:'instrumentation.rack' => {
|
1492
|
+
:default => 'auto',
|
1493
|
+
:documentation_default => 'auto',
|
1494
|
+
:public => true,
|
1384
1495
|
:type => String,
|
1385
|
-
:
|
1386
|
-
:
|
1496
|
+
:dynamic_name => true,
|
1497
|
+
:allowed_from_server => false,
|
1498
|
+
:description => "Controls auto-instrumentation of Rack. When enabled, the agent hooks into the " \
|
1499
|
+
"`to_app` method in Rack::Builder to find gems to instrument during " \
|
1500
|
+
"application startup. May be one of [auto|prepend|chain|disabled]."
|
1387
1501
|
},
|
1388
|
-
:'
|
1389
|
-
:default => '',
|
1390
|
-
:
|
1502
|
+
:'instrumentation.rack_urlmap' => {
|
1503
|
+
:default => 'auto',
|
1504
|
+
:documentation_default => 'auto',
|
1505
|
+
:public => true,
|
1391
1506
|
:type => String,
|
1392
|
-
:
|
1393
|
-
:
|
1507
|
+
:dynamic_name => true,
|
1508
|
+
:allowed_from_server => false,
|
1509
|
+
:description => 'Controls auto-instrumentation of Rack::URLMap at start up. May be one of [auto|prepend|chain|disabled].'
|
1394
1510
|
},
|
1395
|
-
:'
|
1396
|
-
:default =>
|
1397
|
-
:public =>
|
1398
|
-
:type =>
|
1399
|
-
:
|
1400
|
-
:
|
1511
|
+
:'instrumentation.rake' => {
|
1512
|
+
:default => 'auto',
|
1513
|
+
:public => true,
|
1514
|
+
:type => String,
|
1515
|
+
:dynamic_name => true,
|
1516
|
+
:allowed_from_server => false,
|
1517
|
+
:description => "Controls auto-instrumentation of rake at start up. May be one of [auto|prepend|chain|disabled]."
|
1401
1518
|
},
|
1402
|
-
:'
|
1403
|
-
:default =>
|
1404
|
-
:
|
1405
|
-
:
|
1406
|
-
:
|
1407
|
-
:allowed_from_server =>
|
1408
|
-
:description =>
|
1519
|
+
:'instrumentation.redis' => {
|
1520
|
+
:default => 'auto',
|
1521
|
+
:public => true,
|
1522
|
+
:type => String,
|
1523
|
+
:dynamic_name => true,
|
1524
|
+
:allowed_from_server => false,
|
1525
|
+
:description => "Controls auto-instrumentation of Redis at start up. May be one of [auto|prepend|chain|disabled]."
|
1409
1526
|
},
|
1410
|
-
:
|
1411
|
-
:default => '',
|
1412
|
-
:
|
1527
|
+
:'instrumentation.resque' => {
|
1528
|
+
:default => 'auto',
|
1529
|
+
:documentation_default => 'auto',
|
1530
|
+
:public => true,
|
1413
1531
|
:type => String,
|
1414
|
-
:
|
1415
|
-
:
|
1532
|
+
:dynamic_name => true,
|
1533
|
+
:allowed_from_server => false,
|
1534
|
+
:description => "Controls auto-instrumentation of resque at start up. May be one of [auto|prepend|chain|disabled]."
|
1416
1535
|
},
|
1417
|
-
:
|
1418
|
-
:default =>
|
1419
|
-
:public =>
|
1420
|
-
:type =>
|
1536
|
+
:'instrumentation.sinatra' => {
|
1537
|
+
:default => 'auto',
|
1538
|
+
:public => true,
|
1539
|
+
:type => String,
|
1540
|
+
:dynamic_name => true,
|
1421
1541
|
:allowed_from_server => false,
|
1422
|
-
:
|
1423
|
-
:description => 'Enable or disable beta JavaScript error reporting.'
|
1542
|
+
:description => "Controls auto-instrumentation of Sinatra at start up. May be one of [auto|prepend|chain|disabled]."
|
1424
1543
|
},
|
1425
|
-
:
|
1426
|
-
:default =>
|
1427
|
-
:public =>
|
1428
|
-
:type =>
|
1429
|
-
:
|
1430
|
-
:
|
1544
|
+
:'instrumentation.thread' => {
|
1545
|
+
:default => 'auto',
|
1546
|
+
:public => true,
|
1547
|
+
:type => String,
|
1548
|
+
:dynamic_name => true,
|
1549
|
+
:allowed_from_server => false,
|
1550
|
+
: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]."
|
1431
1551
|
},
|
1432
|
-
:
|
1433
|
-
:default =>
|
1552
|
+
:'instrumentation.thread.tracing' => {
|
1553
|
+
:default => true,
|
1434
1554
|
:public => true,
|
1435
1555
|
:type => Boolean,
|
1436
|
-
:allowed_from_server =>
|
1437
|
-
:description =>
|
1556
|
+
:allowed_from_server => false,
|
1557
|
+
:description => "Controls auto-instrumentation of the Thread class at start up to automatically add tracing to all Threads created in the application."
|
1438
1558
|
},
|
1439
|
-
:
|
1440
|
-
:default =>
|
1441
|
-
:allow_nil => true,
|
1559
|
+
:'thread_ids_enabled' => {
|
1560
|
+
:default => false,
|
1442
1561
|
:public => false,
|
1443
1562
|
:type => Boolean,
|
1444
1563
|
:allowed_from_server => false,
|
1445
|
-
:
|
1446
|
-
:description => 'Deprecated in favor of cross_application_tracer.enabled'
|
1564
|
+
:description => "If enabled, will append the current Thread and Fiber object ids onto the segment names of segments created in Threads and concurrent-ruby"
|
1447
1565
|
},
|
1448
|
-
:
|
1449
|
-
:default =>
|
1450
|
-
:public =>
|
1566
|
+
:'instrumentation.tilt' => {
|
1567
|
+
:default => "auto",
|
1568
|
+
:public => true,
|
1451
1569
|
:type => String,
|
1452
|
-
:
|
1453
|
-
:
|
1570
|
+
:dynamic_name => true,
|
1571
|
+
:allowed_from_server => false,
|
1572
|
+
:description => 'Controls auto-instrumentation of the Tilt template rendering library at start up. May be one of [auto|prepend|chain|disabled].'
|
1454
1573
|
},
|
1455
|
-
:
|
1456
|
-
:default => '',
|
1457
|
-
:
|
1574
|
+
:'instrumentation.typhoeus' => {
|
1575
|
+
:default => 'auto',
|
1576
|
+
:documentation_default => 'auto',
|
1577
|
+
:public => true,
|
1458
1578
|
:type => String,
|
1459
|
-
:
|
1460
|
-
:
|
1579
|
+
:dynamic_name => true,
|
1580
|
+
:allowed_from_server => false,
|
1581
|
+
:description => "Controls auto-instrumentation of Typhoeus at start up. May be one of [auto|prepend|chain|disabled]."
|
1461
1582
|
},
|
1462
|
-
|
1463
|
-
|
1583
|
+
# Message tracer
|
1584
|
+
:'message_tracer.segment_parameters.enabled' => {
|
1585
|
+
:default => true,
|
1464
1586
|
:public => true,
|
1465
1587
|
:type => Boolean,
|
1466
1588
|
:allowed_from_server => true,
|
1467
|
-
:description => 'If
|
1468
|
-
},
|
1469
|
-
:'thread_profiler.max_profile_overhead' => {
|
1470
|
-
:default => 0.05,
|
1471
|
-
:public => false,
|
1472
|
-
:type => Float,
|
1473
|
-
:allowed_from_server => true,
|
1474
|
-
:description => 'Maximum overhead percentage for thread profiling before agent reduces polling frequency'
|
1589
|
+
:description => 'If `true`, the agent will collect metadata about messages and attach them as segment parameters.'
|
1475
1590
|
},
|
1476
|
-
|
1477
|
-
|
1591
|
+
# Mongo
|
1592
|
+
:'mongo.capture_queries' => {
|
1593
|
+
:default => true,
|
1478
1594
|
:public => true,
|
1479
|
-
:type =>
|
1480
|
-
:allowed_from_server =>
|
1481
|
-
:description => '
|
1595
|
+
:type => Boolean,
|
1596
|
+
:allowed_from_server => true,
|
1597
|
+
:description => 'If `true`, the agent captures Mongo queries in transaction traces.'
|
1482
1598
|
},
|
1483
|
-
:'
|
1599
|
+
:'mongo.obfuscate_queries' => {
|
1484
1600
|
:default => true,
|
1485
1601
|
:public => true,
|
1486
1602
|
:type => Boolean,
|
1487
1603
|
:allowed_from_server => true,
|
1488
|
-
:description => 'If
|
1604
|
+
:description => 'If `true`, the agent obfuscates Mongo queries in transaction traces.'
|
1489
1605
|
},
|
1490
|
-
|
1491
|
-
|
1606
|
+
# Process host
|
1607
|
+
:'process_host.display_name' => {
|
1608
|
+
:default => proc { NewRelic::Agent::Hostname.get },
|
1492
1609
|
:public => true,
|
1493
|
-
:type =>
|
1494
|
-
:allowed_from_server =>
|
1495
|
-
:description => '
|
1610
|
+
:type => String,
|
1611
|
+
:allowed_from_server => false,
|
1612
|
+
: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).'
|
1496
1613
|
},
|
1497
|
-
|
1498
|
-
|
1614
|
+
# Rails
|
1615
|
+
:'defer_rails_initialization' => {
|
1616
|
+
:default => false,
|
1499
1617
|
:public => true,
|
1500
1618
|
:type => Boolean,
|
1501
|
-
:
|
1619
|
+
:external => true, # this config is used directly from the ENV variables
|
1502
1620
|
:allowed_from_server => false,
|
1503
|
-
:description =>
|
1621
|
+
:description => <<-DESCRIPTION
|
1622
|
+
If `true`, when the agent is in an application using Ruby on Rails, it will start after `config/initializers` run.
|
1623
|
+
|
1624
|
+
<Callout variant="caution">
|
1625
|
+
This option may only be set by environment variable.
|
1626
|
+
</Callout>
|
1627
|
+
DESCRIPTION
|
1504
1628
|
},
|
1505
|
-
|
1506
|
-
|
1507
|
-
:
|
1508
|
-
:
|
1629
|
+
# Rake
|
1630
|
+
:'rake.tasks' => {
|
1631
|
+
:default => [],
|
1632
|
+
:public => true,
|
1633
|
+
:type => Array,
|
1509
1634
|
:allowed_from_server => false,
|
1510
|
-
:
|
1635
|
+
:transform => DefaultSource.method(:convert_to_regexp_list),
|
1636
|
+
:description => 'Specify an Array of Rake tasks to automatically instrument. ' \
|
1637
|
+
'This configuration option converts the Array to a RegEx list. If you\'d like ' \
|
1638
|
+
'to allow all tasks by default, use `rake.tasks: [.+]`. No rake tasks will be ' \
|
1639
|
+
'instrumented unless they\'re added to this list. For more information, ' \
|
1640
|
+
'visit the (New Relic Rake Instrumentation docs)[/docs/apm/agents/ruby-agent/background-jobs/rake-instrumentation].'
|
1511
1641
|
},
|
1512
|
-
:
|
1513
|
-
:default =>
|
1514
|
-
:public =>
|
1515
|
-
:type =>
|
1642
|
+
:'rake.connect_timeout' => {
|
1643
|
+
:default => 10,
|
1644
|
+
:public => true,
|
1645
|
+
:type => Integer,
|
1516
1646
|
:allowed_from_server => false,
|
1517
|
-
:description => '
|
1647
|
+
:description => 'Timeout for waiting on connect to complete before a rake task'
|
1518
1648
|
},
|
1519
|
-
|
1520
|
-
|
1649
|
+
# Rules
|
1650
|
+
:'rules.ignore_url_regexes' => {
|
1651
|
+
:default => [],
|
1652
|
+
:public => true,
|
1653
|
+
:type => Array,
|
1654
|
+
:allowed_from_server => true,
|
1655
|
+
:transform => DefaultSource.method(:convert_to_regexp_list),
|
1656
|
+
:description => 'Define transactions you want the agent to ignore, by specifying a list of patterns matching the URI you want to ignore. For more detail, see [the docs on ignoring specific transactions](/docs/agents/ruby-agent/api-guides/ignoring-specific-transactions/#config-ignoring).'
|
1657
|
+
},
|
1658
|
+
# Slow SQL
|
1659
|
+
:'slow_sql.enabled' => {
|
1660
|
+
:default => value_of(:'transaction_tracer.enabled'),
|
1661
|
+
:documentation_default => true,
|
1521
1662
|
:public => true,
|
1522
1663
|
:type => Boolean,
|
1523
|
-
:allowed_from_server =>
|
1524
|
-
:description => '
|
1664
|
+
:allowed_from_server => true,
|
1665
|
+
:description => 'If `true`, the agent collects [slow SQL queries](/docs/apm/applications-menu/monitoring/viewing-slow-query-details).'
|
1525
1666
|
},
|
1526
|
-
:
|
1527
|
-
:default
|
1528
|
-
:
|
1529
|
-
:
|
1530
|
-
:
|
1531
|
-
:allowed_from_server =>
|
1532
|
-
:description
|
1667
|
+
:'slow_sql.explain_threshold' => {
|
1668
|
+
:default => value_of(:'transaction_tracer.explain_threshold'),
|
1669
|
+
:documentation_default => 0.5,
|
1670
|
+
:public => true,
|
1671
|
+
:type => Float,
|
1672
|
+
:allowed_from_server => true,
|
1673
|
+
: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.'
|
1533
1674
|
},
|
1534
|
-
:
|
1535
|
-
:default
|
1536
|
-
:
|
1537
|
-
:
|
1538
|
-
:
|
1539
|
-
:allowed_from_server =>
|
1540
|
-
:description
|
1675
|
+
:'slow_sql.explain_enabled' => {
|
1676
|
+
:default => value_of(:'transaction_tracer.explain_enabled'),
|
1677
|
+
:documentation_default => true,
|
1678
|
+
:public => true,
|
1679
|
+
:type => Boolean,
|
1680
|
+
:allowed_from_server => true,
|
1681
|
+
: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.'
|
1541
1682
|
},
|
1542
|
-
:
|
1543
|
-
:default
|
1544
|
-
:
|
1545
|
-
:
|
1546
|
-
:
|
1547
|
-
:allowed_from_server =>
|
1548
|
-
:description
|
1683
|
+
:'slow_sql.record_sql' => {
|
1684
|
+
:default => value_of(:'transaction_tracer.record_sql'),
|
1685
|
+
:documentation_default => 'obfuscated',
|
1686
|
+
:public => true,
|
1687
|
+
:type => String,
|
1688
|
+
:allowed_from_server => true,
|
1689
|
+
:description => 'Defines an obfuscation level for slow SQL queries. Valid options are `obfuscated`, `raw`, or `none`).'
|
1549
1690
|
},
|
1550
|
-
:
|
1551
|
-
:default
|
1552
|
-
:public
|
1553
|
-
:type
|
1554
|
-
:
|
1555
|
-
:
|
1556
|
-
:description => 'If <code>true</code>, the agent won\'t measure the depth of Delayed Job queues.'
|
1691
|
+
:'slow_sql.use_longer_sql_id' => {
|
1692
|
+
:default => false,
|
1693
|
+
:public => true,
|
1694
|
+
:type => Boolean,
|
1695
|
+
:allowed_from_server => true,
|
1696
|
+
:description => 'Generate a longer sql_id for slow SQL traces. sql_id is used for aggregation of similar queries.'
|
1557
1697
|
},
|
1558
|
-
|
1559
|
-
|
1560
|
-
:
|
1561
|
-
:
|
1562
|
-
:
|
1563
|
-
:allowed_from_server =>
|
1564
|
-
:description
|
1698
|
+
# Span events
|
1699
|
+
:'span_events.enabled' => {
|
1700
|
+
:default => true,
|
1701
|
+
:public => true,
|
1702
|
+
:type => Boolean,
|
1703
|
+
:allowed_from_server => true,
|
1704
|
+
:description => 'If `true`, enables span event sampling.'
|
1565
1705
|
},
|
1566
|
-
:
|
1567
|
-
:default
|
1568
|
-
:public
|
1569
|
-
:type
|
1570
|
-
:deprecated => true,
|
1571
|
-
:dynamic_name => true,
|
1706
|
+
:'span_events.queue_size' => {
|
1707
|
+
:default => 10_000,
|
1708
|
+
:public => true,
|
1709
|
+
:type => Integer,
|
1572
1710
|
:allowed_from_server => false,
|
1573
|
-
:
|
1711
|
+
:external => :infinite_tracing,
|
1712
|
+
:description => "Sets the maximum number of span events to buffer when streaming to the trace observer."
|
1574
1713
|
},
|
1575
|
-
:
|
1576
|
-
:default
|
1577
|
-
:public
|
1578
|
-
:type
|
1579
|
-
:
|
1580
|
-
:
|
1581
|
-
:allowed_from_server => false,
|
1582
|
-
:description => deprecated_description(:'instrumentation.curb', 'If <code>true</code>, disables instrumentation for the curb gem.' )
|
1714
|
+
:'span_events.max_samples_stored' => {
|
1715
|
+
:default => 2000,
|
1716
|
+
:public => true,
|
1717
|
+
:type => Integer,
|
1718
|
+
:allowed_from_server => true,
|
1719
|
+
:description => 'Defines the maximum number of span events reported from a single harvest. Any Integer between 1 and 10000 is valid.'
|
1583
1720
|
},
|
1584
|
-
|
1585
|
-
|
1586
|
-
:
|
1587
|
-
:
|
1588
|
-
:
|
1589
|
-
:
|
1721
|
+
# Strip exception messages
|
1722
|
+
:'strip_exception_messages.enabled' => {
|
1723
|
+
:default => value_of(:high_security),
|
1724
|
+
:documentation_default => false,
|
1725
|
+
:public => true,
|
1726
|
+
:type => Boolean,
|
1590
1727
|
:allowed_from_server => false,
|
1591
|
-
:description
|
1728
|
+
: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).'
|
1592
1729
|
},
|
1593
|
-
:'
|
1594
|
-
:default =>
|
1595
|
-
:public =>
|
1730
|
+
:'strip_exception_messages.allowed_classes' => {
|
1731
|
+
:default => '',
|
1732
|
+
:public => true,
|
1596
1733
|
:type => String,
|
1597
|
-
:dynamic_name => true,
|
1598
1734
|
:allowed_from_server => false,
|
1599
|
-
:
|
1735
|
+
:transform => DefaultSource.method(:convert_to_constant_list),
|
1736
|
+
: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"`.'
|
1600
1737
|
},
|
1601
|
-
|
1602
|
-
|
1603
|
-
:
|
1604
|
-
:
|
1605
|
-
:
|
1606
|
-
:
|
1607
|
-
:allowed_from_server =>
|
1608
|
-
:description
|
1738
|
+
# Thread profiler
|
1739
|
+
:'thread_profiler.enabled' => {
|
1740
|
+
:default => DefaultSource.thread_profiler_enabled,
|
1741
|
+
:documentation_default => false,
|
1742
|
+
:public => true,
|
1743
|
+
:type => Boolean,
|
1744
|
+
:allowed_from_server => true,
|
1745
|
+
:description => 'If `true`, enables use of the [thread profiler](/docs/apm/applications-menu/events/thread-profiler-tool).'
|
1609
1746
|
},
|
1610
|
-
|
1611
|
-
|
1612
|
-
:
|
1613
|
-
:
|
1614
|
-
:
|
1747
|
+
# Utilization
|
1748
|
+
:'utilization.detect_aws' => {
|
1749
|
+
:default => true,
|
1750
|
+
:public => true,
|
1751
|
+
:type => Boolean,
|
1615
1752
|
:allowed_from_server => false,
|
1616
|
-
:deprecated => true,
|
1617
|
-
:description => deprecated_description(:'instrumentation.net_http',
|
1618
|
-
'If <code>true</code>, disables instrumentation for Net::HTTP.'
|
1619
|
-
)
|
1620
|
-
},
|
1621
|
-
:disable_rack => {
|
1622
|
-
:default => false,
|
1623
|
-
:public => true,
|
1624
|
-
:type => Boolean,
|
1625
1753
|
:dynamic_name => true,
|
1626
|
-
:
|
1627
|
-
:deprecated => true,
|
1628
|
-
:description => deprecated_description(:'instrumentation.rack', 'If <code>true</code>, prevents the agent from hooking into the <code>to_app</code> method in Rack::Builder to find gems to instrument during application startup.')
|
1754
|
+
:description => 'If `true`, the agent automatically detects that it is running in an AWS environment.'
|
1629
1755
|
},
|
1630
|
-
:
|
1631
|
-
:default
|
1632
|
-
:public
|
1633
|
-
:type
|
1634
|
-
:dynamic_name => true,
|
1756
|
+
:'utilization.detect_azure' => {
|
1757
|
+
:default => true,
|
1758
|
+
:public => true,
|
1759
|
+
:type => Boolean,
|
1635
1760
|
:allowed_from_server => false,
|
1636
|
-
:deprecated => true,
|
1637
|
-
:description => deprecated_description(:'instrumentation.rack_urlmap', 'If <code>true</code>, prevents the agent from hooking into Rack::URLMap to install middleware tracing.')
|
1638
|
-
},
|
1639
|
-
:disable_puma_rack => {
|
1640
|
-
:default => value_of(:disable_rack),
|
1641
|
-
:public => true,
|
1642
|
-
:type => Boolean,
|
1643
1761
|
:dynamic_name => true,
|
1644
|
-
:
|
1645
|
-
:deprecated => true,
|
1646
|
-
:description => deprecated_description(:'instrumentation.puma_rack', 'If <code>true</code>, prevents the agent from hooking into the <code>to_app</code> method in Puma::Rack::Builder to find gems to instrument during application startup.')
|
1762
|
+
:description => 'If `true`, the agent automatically detects that it is running in an Azure environment.'
|
1647
1763
|
},
|
1648
|
-
:
|
1649
|
-
:default
|
1650
|
-
:public
|
1651
|
-
:type
|
1652
|
-
:dynamic_name => true,
|
1764
|
+
:'utilization.detect_docker' => {
|
1765
|
+
:default => true,
|
1766
|
+
:public => true,
|
1767
|
+
:type => Boolean,
|
1653
1768
|
:allowed_from_server => false,
|
1654
|
-
:
|
1655
|
-
:description => deprecated_description(:'instrumentation.puma_rack_urlmap', 'If <code>true</code>, prevents the agent from hooking into Puma::Rack::URLMap to install middleware tracing.')
|
1769
|
+
:description => 'If `true`, the agent automatically detects that it is running in Docker.'
|
1656
1770
|
},
|
1657
|
-
:
|
1658
|
-
:default
|
1659
|
-
:public
|
1660
|
-
:type
|
1661
|
-
:dynamic_name => true,
|
1662
|
-
:deprecated => true,
|
1771
|
+
:'utilization.detect_gcp' => {
|
1772
|
+
:default => true,
|
1773
|
+
:public => true,
|
1774
|
+
:type => Boolean,
|
1663
1775
|
:allowed_from_server => false,
|
1664
|
-
:description => deprecated_description(:'instrumentation.typhoeus', 'If <code>true</code>, the agent won\'t install instrumentation for the typhoeus gem.' )
|
1665
|
-
},
|
1666
|
-
:disable_httprb => {
|
1667
|
-
:default => false,
|
1668
|
-
:public => true,
|
1669
|
-
:type => Boolean,
|
1670
1776
|
:dynamic_name => true,
|
1671
|
-
:
|
1672
|
-
:allowed_from_server => false,
|
1673
|
-
:description => deprecated_description(:'instrumentation.httprb', 'If <code>true</code>, the agent won\'t install instrumentation for the http.rb gem.' )
|
1777
|
+
:description => 'If `true`, the agent automatically detects that it is running in an Google Cloud Platform environment.'
|
1674
1778
|
},
|
1675
|
-
:
|
1676
|
-
:default
|
1677
|
-
:public
|
1678
|
-
:type
|
1779
|
+
:'utilization.detect_kubernetes' => {
|
1780
|
+
:default => true,
|
1781
|
+
:public => true,
|
1782
|
+
:type => Boolean,
|
1679
1783
|
:allowed_from_server => false,
|
1680
|
-
:description
|
1784
|
+
:description => 'If `true`, the agent automatically detects that it is running in Kubernetes.'
|
1681
1785
|
},
|
1682
|
-
:
|
1683
|
-
:default
|
1684
|
-
:public
|
1685
|
-
:type
|
1786
|
+
:'utilization.detect_pcf' => {
|
1787
|
+
:default => true,
|
1788
|
+
:public => true,
|
1789
|
+
:type => Boolean,
|
1686
1790
|
:allowed_from_server => false,
|
1687
|
-
:
|
1791
|
+
:dynamic_name => true,
|
1792
|
+
:description => 'If `true`, the agent automatically detects that it is running in a Pivotal Cloud Foundry environment.'
|
1688
1793
|
},
|
1689
|
-
|
1690
|
-
|
1691
|
-
:
|
1692
|
-
:
|
1693
|
-
:
|
1694
|
-
:
|
1794
|
+
# Private
|
1795
|
+
:account_id => {
|
1796
|
+
:default => nil,
|
1797
|
+
:allow_nil => true,
|
1798
|
+
:public => false,
|
1799
|
+
:type => String,
|
1800
|
+
:allowed_from_server => true,
|
1801
|
+
:description => 'The account id associated with your application.'
|
1695
1802
|
},
|
1696
|
-
:
|
1697
|
-
:default
|
1698
|
-
:public
|
1699
|
-
:type
|
1700
|
-
:allowed_from_server =>
|
1701
|
-
:
|
1702
|
-
: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>).'
|
1803
|
+
:aggressive_keepalive => {
|
1804
|
+
:default => true,
|
1805
|
+
:public => false,
|
1806
|
+
:type => Boolean,
|
1807
|
+
:allowed_from_server => true,
|
1808
|
+
:description => 'If true, attempt to keep the TCP connection to the collector alive between harvests.'
|
1703
1809
|
},
|
1704
|
-
:
|
1705
|
-
:default
|
1706
|
-
:public
|
1707
|
-
:type
|
1810
|
+
:api_host => {
|
1811
|
+
:default => DefaultSource.api_host,
|
1812
|
+
:public => false,
|
1813
|
+
:type => String,
|
1708
1814
|
:allowed_from_server => false,
|
1709
|
-
:description
|
1815
|
+
:description => 'API host for New Relic.'
|
1710
1816
|
},
|
1711
|
-
:
|
1712
|
-
:default
|
1713
|
-
:public
|
1714
|
-
:type
|
1817
|
+
:api_port => {
|
1818
|
+
:default => value_of(:port),
|
1819
|
+
:public => false,
|
1820
|
+
:type => Integer,
|
1715
1821
|
:allowed_from_server => false,
|
1716
|
-
:description
|
1822
|
+
:description => 'Port for the New Relic API host.'
|
1717
1823
|
},
|
1718
|
-
:
|
1719
|
-
:default
|
1720
|
-
:public
|
1721
|
-
:type
|
1824
|
+
:application_id => {
|
1825
|
+
:default => '',
|
1826
|
+
:public => false,
|
1827
|
+
:type => String,
|
1722
1828
|
:allowed_from_server => true,
|
1723
|
-
:description
|
1829
|
+
:description => 'Application ID for real user monitoring.'
|
1724
1830
|
},
|
1725
|
-
:
|
1726
|
-
:default
|
1727
|
-
:public
|
1728
|
-
:type
|
1831
|
+
:beacon => {
|
1832
|
+
:default => '',
|
1833
|
+
:public => false,
|
1834
|
+
:type => String,
|
1729
1835
|
:allowed_from_server => true,
|
1730
|
-
:description
|
1731
|
-
},
|
1732
|
-
:ca_bundle_path => {
|
1733
|
-
:default => nil,
|
1734
|
-
:allow_nil => true,
|
1735
|
-
:public => true,
|
1736
|
-
:type => String,
|
1737
|
-
:allowed_from_server => false,
|
1738
|
-
: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."
|
1836
|
+
:description => 'Beacon for real user monitoring.'
|
1739
1837
|
},
|
1740
|
-
:
|
1741
|
-
:default
|
1742
|
-
:public
|
1743
|
-
:type
|
1838
|
+
:browser_key => {
|
1839
|
+
:default => '',
|
1840
|
+
:public => false,
|
1841
|
+
:type => String,
|
1744
1842
|
:allowed_from_server => true,
|
1745
|
-
:
|
1746
|
-
:description => 'Define transactions you want the agent to ignore, by specifying a list of patterns matching the URI you want to ignore.'
|
1843
|
+
:description => 'Real user monitoring license key for the browser timing header.'
|
1747
1844
|
},
|
1748
|
-
:'
|
1749
|
-
:default
|
1750
|
-
:public
|
1751
|
-
:type
|
1845
|
+
:'browser_monitoring.loader' => {
|
1846
|
+
:default => 'rum',
|
1847
|
+
:public => false,
|
1848
|
+
:type => String,
|
1752
1849
|
:allowed_from_server => true,
|
1753
|
-
:description
|
1850
|
+
:description => 'Type of JavaScript agent loader to use for browser monitoring instrumentation.'
|
1754
1851
|
},
|
1755
|
-
:'
|
1756
|
-
:default
|
1757
|
-
:public
|
1758
|
-
:type
|
1852
|
+
:'browser_monitoring.loader_version' => {
|
1853
|
+
:default => '',
|
1854
|
+
:public => false,
|
1855
|
+
:type => String,
|
1759
1856
|
:allowed_from_server => true,
|
1760
|
-
:description
|
1857
|
+
:description => 'Version of JavaScript agent loader (returned from the New Relic [collector](/docs/apm/new-relic-apm/getting-started/glossary#collector).)'
|
1761
1858
|
},
|
1762
|
-
:'
|
1763
|
-
:default
|
1764
|
-
:public
|
1765
|
-
:type
|
1859
|
+
:'browser_monitoring.debug' => {
|
1860
|
+
:default => false,
|
1861
|
+
:public => false,
|
1862
|
+
:type => Boolean,
|
1766
1863
|
:allowed_from_server => true,
|
1767
|
-
:description
|
1864
|
+
:description => 'Enable or disable debugging version of JavaScript agent loader for browser monitoring instrumentation.'
|
1768
1865
|
},
|
1769
|
-
:'
|
1770
|
-
:default
|
1771
|
-
:
|
1772
|
-
:
|
1866
|
+
:'browser_monitoring.ssl_for_http' => {
|
1867
|
+
:default => nil,
|
1868
|
+
:allow_nil => true,
|
1869
|
+
:public => false,
|
1870
|
+
:type => Boolean,
|
1773
1871
|
:allowed_from_server => true,
|
1774
|
-
:description
|
1775
|
-
:dynamic_name => true
|
1776
|
-
},
|
1777
|
-
:disable_grape_instrumentation => {
|
1778
|
-
:default => false,
|
1779
|
-
:public => false,
|
1780
|
-
:type => Boolean,
|
1781
|
-
:allowed_from_server => false,
|
1782
|
-
:deprecated => true,
|
1783
|
-
:description => deprecated_description(:'instrumentation.grape',
|
1784
|
-
'If <code>true</code>, the agent won\'t install Grape instrumentation.'
|
1785
|
-
)
|
1786
|
-
},
|
1787
|
-
:disable_grape => {
|
1788
|
-
:default => false,
|
1789
|
-
:public => true,
|
1790
|
-
:type => Boolean,
|
1791
|
-
:allowed_from_server => false,
|
1792
|
-
:deprecated => true,
|
1793
|
-
:description => deprecated_description(:'instrumentation.grape',
|
1794
|
-
'If <code>true</code>, the agent won\'t install Grape instrumentation.'
|
1795
|
-
)
|
1872
|
+
:description => 'Enable or disable HTTPS instrumentation by JavaScript agent on HTTP pages.'
|
1796
1873
|
},
|
1797
|
-
:
|
1798
|
-
:default =>
|
1799
|
-
:public =>
|
1874
|
+
:compressed_content_encoding => {
|
1875
|
+
:default => 'gzip',
|
1876
|
+
:public => false,
|
1800
1877
|
:type => String,
|
1801
|
-
:dynamic_name => true,
|
1802
1878
|
:allowed_from_server => false,
|
1803
|
-
:description =>
|
1804
|
-
},
|
1805
|
-
:'attributes.enabled' => {
|
1806
|
-
:default => true,
|
1807
|
-
:public => true,
|
1808
|
-
:type => Boolean,
|
1809
|
-
:allowed_from_server => false,
|
1810
|
-
:description => 'If <code>true</code>, enables capture of attributes for all destinations.'
|
1811
|
-
},
|
1812
|
-
:'transaction_tracer.attributes.enabled' => {
|
1813
|
-
:default => value_of(:'transaction_tracer.capture_attributes'),
|
1814
|
-
:public => true,
|
1815
|
-
:type => Boolean,
|
1816
|
-
:allowed_from_server => false,
|
1817
|
-
:description => 'If <code>true</code>, the agent captures attributes from transaction traces.'
|
1818
|
-
},
|
1819
|
-
:'transaction_events.attributes.enabled' => {
|
1820
|
-
:default => value_of(:'analytics_events.capture_attributes'),
|
1821
|
-
:public => true,
|
1822
|
-
:type => Boolean,
|
1823
|
-
:allowed_from_server => false,
|
1824
|
-
:description => 'If <code>true</code>, the agent captures attributes from transaction events.'
|
1825
|
-
},
|
1826
|
-
:'error_collector.attributes.enabled' => {
|
1827
|
-
:default => value_of(:'error_collector.capture_attributes'),
|
1828
|
-
:public => true,
|
1829
|
-
:type => Boolean,
|
1830
|
-
:allowed_from_server => false,
|
1831
|
-
:description => 'If <code>true</code>, the agent captures attributes from error collection.'
|
1832
|
-
},
|
1833
|
-
:'browser_monitoring.attributes.enabled' => {
|
1834
|
-
:default => value_of(:'browser_monitoring.capture_attributes'),
|
1835
|
-
:public => true,
|
1836
|
-
:type => Boolean,
|
1837
|
-
:allowed_from_server => false,
|
1838
|
-
:description => 'If <code>true</code>, the agent captures attributes from browser monitoring.'
|
1839
|
-
},
|
1840
|
-
:'span_events.attributes.enabled' => {
|
1841
|
-
:default => true,
|
1842
|
-
:public => true,
|
1843
|
-
:type => Boolean,
|
1844
|
-
:allowed_from_server => false,
|
1845
|
-
:description => 'If <code>true</code>, the agent captures attributes on span events.'
|
1846
|
-
},
|
1847
|
-
:'transaction_segments.attributes.enabled' => {
|
1848
|
-
:default => true,
|
1849
|
-
:public => true,
|
1850
|
-
:type => Boolean,
|
1851
|
-
:allowed_from_server => false,
|
1852
|
-
:description => 'If <code>true</code>, the agent captures attributes on transaction segments.'
|
1853
|
-
},
|
1854
|
-
:'attributes.exclude' => {
|
1855
|
-
:default => [],
|
1856
|
-
:public => true,
|
1857
|
-
:type => Array,
|
1858
|
-
:allowed_from_server => false,
|
1859
|
-
:transform => DefaultSource.method(:convert_to_list),
|
1860
|
-
:description => 'Prefix of attributes to exclude from all destinations. Allows <code>*</code> as wildcard at end.'
|
1861
|
-
},
|
1862
|
-
:'transaction_tracer.attributes.exclude' => {
|
1863
|
-
:default => [],
|
1864
|
-
:public => true,
|
1865
|
-
:type => Array,
|
1866
|
-
:allowed_from_server => false,
|
1867
|
-
:transform => DefaultSource.method(:convert_to_list),
|
1868
|
-
:description => 'Prefix of attributes to exclude from transaction traces. Allows <code>*</code> as wildcard at end.'
|
1869
|
-
},
|
1870
|
-
:'transaction_events.attributes.exclude' => {
|
1871
|
-
:default => [],
|
1872
|
-
:public => true,
|
1873
|
-
:type => Array,
|
1874
|
-
:allowed_from_server => false,
|
1875
|
-
:transform => DefaultSource.method(:convert_to_list),
|
1876
|
-
:description => 'Prefix of attributes to exclude from transaction events. Allows <code>*</code> as wildcard at end.'
|
1879
|
+
:description => 'Encoding to use if data needs to be compressed. The options are deflate and gzip.'
|
1877
1880
|
},
|
1878
|
-
:
|
1879
|
-
:default
|
1880
|
-
:public
|
1881
|
-
:type
|
1881
|
+
:config_search_paths => {
|
1882
|
+
:default => DefaultSource.config_search_paths,
|
1883
|
+
:public => false,
|
1884
|
+
:type => Array,
|
1882
1885
|
:allowed_from_server => false,
|
1883
|
-
:
|
1884
|
-
:description => 'Prefix of attributes to exclude from error collection. Allows <code>*</code> as wildcard at end.'
|
1886
|
+
:description => "An array of candidate locations for the agent's configuration file."
|
1885
1887
|
},
|
1886
|
-
:
|
1887
|
-
:default
|
1888
|
-
:public
|
1889
|
-
:type
|
1890
|
-
:allowed_from_server =>
|
1891
|
-
:
|
1892
|
-
:description => 'Prefix of attributes to exclude from browser monitoring. Allows <code>*</code> as wildcard at end.'
|
1888
|
+
:cross_process_id => {
|
1889
|
+
:default => '',
|
1890
|
+
:public => false,
|
1891
|
+
:type => String,
|
1892
|
+
:allowed_from_server => true,
|
1893
|
+
:description => 'Cross process ID for cross-application tracing.'
|
1893
1894
|
},
|
1894
|
-
:
|
1895
|
-
:default
|
1896
|
-
:public
|
1897
|
-
:type
|
1898
|
-
:allowed_from_server =>
|
1899
|
-
:
|
1900
|
-
:description => 'Prefix of attributes to exclude from span events. Allows <code>*</code> as wildcard at end.'
|
1895
|
+
:data_report_period => {
|
1896
|
+
:default => 60,
|
1897
|
+
:public => false,
|
1898
|
+
:type => Integer,
|
1899
|
+
:allowed_from_server => true,
|
1900
|
+
:description => 'Number of seconds betwixt connections to the New Relic data collection service.'
|
1901
1901
|
},
|
1902
|
-
:
|
1903
|
-
:default
|
1904
|
-
:public
|
1905
|
-
:type
|
1902
|
+
:dispatcher => {
|
1903
|
+
:default => DefaultSource.dispatcher,
|
1904
|
+
:public => false,
|
1905
|
+
:type => Symbol,
|
1906
1906
|
:allowed_from_server => false,
|
1907
|
-
:
|
1908
|
-
:description => 'Prefix of attributes to exclude from transaction segments. Allows <code>*</code> as wildcard at end.'
|
1907
|
+
:description => 'Autodetected application component that reports metrics to New Relic.'
|
1909
1908
|
},
|
1910
|
-
:
|
1911
|
-
:default
|
1912
|
-
:public
|
1913
|
-
:type
|
1909
|
+
:disable_harvest_thread => {
|
1910
|
+
:default => false,
|
1911
|
+
:public => false,
|
1912
|
+
:type => Boolean,
|
1914
1913
|
:allowed_from_server => false,
|
1915
|
-
:
|
1916
|
-
:description => 'Prefix of attributes to include in all destinations. Allows <code>*</code> as wildcard at end.'
|
1914
|
+
:description => 'Enable or disable the harvest thread.'
|
1917
1915
|
},
|
1918
|
-
:
|
1919
|
-
:default
|
1920
|
-
:public
|
1921
|
-
:type
|
1916
|
+
:disable_rails_middleware => {
|
1917
|
+
:default => false,
|
1918
|
+
:public => false,
|
1919
|
+
:type => Boolean,
|
1922
1920
|
:allowed_from_server => false,
|
1923
|
-
:
|
1924
|
-
:description => 'Prefix of attributes to include in transaction traces. Allows <code>*</code> as wildcard at end.'
|
1921
|
+
:description => 'Internal name for controlling Rails 3+ middleware instrumentation'
|
1925
1922
|
},
|
1926
|
-
:
|
1927
|
-
:default
|
1928
|
-
:public
|
1929
|
-
:type
|
1923
|
+
:enabled => {
|
1924
|
+
:default => true,
|
1925
|
+
:public => false,
|
1926
|
+
:type => Boolean,
|
1927
|
+
:aliases => [:enable],
|
1930
1928
|
:allowed_from_server => false,
|
1931
|
-
:
|
1932
|
-
:description => 'Prefix of attributes to include in transaction events. Allows <code>*</code> as wildcard at end.'
|
1929
|
+
:description => 'Enable or disable the agent.'
|
1933
1930
|
},
|
1934
|
-
:
|
1935
|
-
:default
|
1936
|
-
:public
|
1937
|
-
:type
|
1938
|
-
:allowed_from_server =>
|
1939
|
-
:
|
1940
|
-
:description => 'Prefix of attributes to include in error collection. Allows <code>*</code> as wildcard at end.'
|
1931
|
+
:encoding_key => {
|
1932
|
+
:default => '',
|
1933
|
+
:public => false,
|
1934
|
+
:type => String,
|
1935
|
+
:allowed_from_server => true,
|
1936
|
+
:description => 'Encoding key for cross-application tracing.'
|
1941
1937
|
},
|
1942
|
-
:
|
1943
|
-
:default
|
1944
|
-
:
|
1945
|
-
:
|
1946
|
-
:
|
1947
|
-
:
|
1948
|
-
:description => '
|
1938
|
+
:entity_guid => {
|
1939
|
+
:default => nil,
|
1940
|
+
:allow_nil => true,
|
1941
|
+
:public => false,
|
1942
|
+
:type => String,
|
1943
|
+
:allowed_from_server => true,
|
1944
|
+
:description => 'The [Entity GUID](/attribute-dictionary/span/entityguid) for the entity running your agent.'
|
1949
1945
|
},
|
1950
|
-
:
|
1951
|
-
:default
|
1952
|
-
:public
|
1953
|
-
:type
|
1954
|
-
:allowed_from_server =>
|
1955
|
-
:
|
1956
|
-
:description => 'Prefix of attributes to include on span events. Allows <code>*</code> as wildcard at end.'
|
1946
|
+
:error_beacon => {
|
1947
|
+
:default => '',
|
1948
|
+
:public => false,
|
1949
|
+
:type => String,
|
1950
|
+
:allowed_from_server => true,
|
1951
|
+
:description => 'Error beacon for real user monitoring.'
|
1957
1952
|
},
|
1958
|
-
:
|
1959
|
-
:default
|
1960
|
-
:public
|
1961
|
-
:type
|
1962
|
-
:allowed_from_server =>
|
1963
|
-
:
|
1964
|
-
:description => 'Prefix of attributes to include on transaction segments. Allows <code>*</code> as wildcard at end.'
|
1953
|
+
:event_report_period => {
|
1954
|
+
:default => 60,
|
1955
|
+
:public => false,
|
1956
|
+
:type => Integer,
|
1957
|
+
:allowed_from_server => true,
|
1958
|
+
:description => 'Number of seconds betwixt connections to the New Relic event collection services.'
|
1965
1959
|
},
|
1966
|
-
:'
|
1967
|
-
:default
|
1968
|
-
:public
|
1969
|
-
:type
|
1970
|
-
:
|
1971
|
-
:
|
1960
|
+
:'event_report_period.transaction_event_data' => {
|
1961
|
+
:default => 60,
|
1962
|
+
:public => false,
|
1963
|
+
:type => Integer,
|
1964
|
+
:dynamic_name => true,
|
1965
|
+
:allowed_from_server => true,
|
1966
|
+
:description => 'Number of seconds betwixt connections to the New Relic transaction event collection services.'
|
1972
1967
|
},
|
1973
|
-
:'
|
1974
|
-
:default
|
1975
|
-
:public
|
1976
|
-
:type
|
1977
|
-
:allowed_from_server => false,
|
1968
|
+
:'event_report_period.custom_event_data' => {
|
1969
|
+
:default => 60,
|
1970
|
+
:public => false,
|
1971
|
+
:type => Integer,
|
1978
1972
|
:dynamic_name => true,
|
1979
|
-
:
|
1973
|
+
:allowed_from_server => true,
|
1974
|
+
:description => 'Number of seconds betwixt connections to the New Relic custom event collection services.'
|
1980
1975
|
},
|
1981
|
-
:'
|
1982
|
-
:default
|
1983
|
-
:public
|
1984
|
-
:type
|
1985
|
-
:allowed_from_server => false,
|
1976
|
+
:'event_report_period.error_event_data' => {
|
1977
|
+
:default => 60,
|
1978
|
+
:public => false,
|
1979
|
+
:type => Integer,
|
1986
1980
|
:dynamic_name => true,
|
1987
|
-
:
|
1981
|
+
:allowed_from_server => true,
|
1982
|
+
:description => 'Number of seconds betwixt connections to the New Relic error event collection services.'
|
1988
1983
|
},
|
1989
|
-
:'
|
1990
|
-
:default
|
1991
|
-
:public
|
1992
|
-
:type
|
1993
|
-
:allowed_from_server => false,
|
1984
|
+
:'event_report_period.log_event_data' => {
|
1985
|
+
:default => 60,
|
1986
|
+
:public => false,
|
1987
|
+
:type => Integer,
|
1994
1988
|
:dynamic_name => true,
|
1995
|
-
:
|
1989
|
+
:allowed_from_server => true,
|
1990
|
+
:description => 'Number of seconds betwixt connections to the New Relic log event collection services.'
|
1996
1991
|
},
|
1997
|
-
:'
|
1998
|
-
:default
|
1999
|
-
:public
|
2000
|
-
:type
|
2001
|
-
:allowed_from_server => false,
|
1992
|
+
:'event_report_period.span_event_data' => {
|
1993
|
+
:default => 60,
|
1994
|
+
:public => false,
|
1995
|
+
:type => Integer,
|
2002
1996
|
:dynamic_name => true,
|
2003
|
-
:
|
1997
|
+
:allowed_from_server => true,
|
1998
|
+
:description => 'Number of seconds betwixt connections to the New Relic span event collection services.'
|
2004
1999
|
},
|
2005
|
-
:
|
2006
|
-
:default
|
2007
|
-
:public
|
2008
|
-
:type
|
2000
|
+
:force_reconnect => {
|
2001
|
+
:default => false,
|
2002
|
+
:public => false,
|
2003
|
+
:type => Boolean,
|
2009
2004
|
:allowed_from_server => false,
|
2010
|
-
:description => '
|
2005
|
+
: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.'
|
2011
2006
|
},
|
2012
|
-
:
|
2013
|
-
:default
|
2014
|
-
:public
|
2015
|
-
:type
|
2007
|
+
:framework => {
|
2008
|
+
:default => DefaultSource.framework,
|
2009
|
+
:public => false,
|
2010
|
+
:type => Symbol,
|
2016
2011
|
:allowed_from_server => false,
|
2017
|
-
:description => '
|
2012
|
+
:description => 'Autodetected application framework used to enable framework-specific functionality.'
|
2018
2013
|
},
|
2019
|
-
:
|
2020
|
-
:default
|
2021
|
-
:
|
2022
|
-
:
|
2023
|
-
:type => String,
|
2014
|
+
:host => {
|
2015
|
+
:default => DefaultSource.host,
|
2016
|
+
:public => false,
|
2017
|
+
:type => String,
|
2024
2018
|
:allowed_from_server => false,
|
2025
|
-
:description =>
|
2019
|
+
:description => "URI for the New Relic data collection service."
|
2026
2020
|
},
|
2027
|
-
:'
|
2028
|
-
:default
|
2029
|
-
:
|
2030
|
-
:
|
2031
|
-
:type => Integer,
|
2021
|
+
:'infinite_tracing.batching' => {
|
2022
|
+
:default => true,
|
2023
|
+
:public => true,
|
2024
|
+
:type => Boolean,
|
2032
2025
|
:allowed_from_server => false,
|
2033
|
-
:
|
2026
|
+
:external => :infinite_tracing,
|
2027
|
+
:description => "If `true` (the default), data sent to the trace observer is batched\ninstead of sending " \
|
2028
|
+
"each span individually."
|
2034
2029
|
},
|
2035
|
-
:'
|
2036
|
-
:default
|
2037
|
-
:
|
2038
|
-
:
|
2039
|
-
:type => Integer,
|
2030
|
+
:'infinite_tracing.compression_level' => {
|
2031
|
+
:default => :high,
|
2032
|
+
:public => true,
|
2033
|
+
:type => Symbol,
|
2040
2034
|
:allowed_from_server => false,
|
2041
|
-
:
|
2035
|
+
:external => :infinite_tracing,
|
2036
|
+
:description => "Configure the compression level for data sent to the trace observer\nMay be one of " \
|
2037
|
+
"[none|low|medium|high]\n'high' is the default. Set the level to 'none' to disable compression"
|
2042
2038
|
},
|
2043
|
-
:
|
2044
|
-
:default
|
2045
|
-
:public
|
2046
|
-
:type
|
2047
|
-
:allowed_from_server =>
|
2048
|
-
:description => '
|
2039
|
+
:js_agent_file => {
|
2040
|
+
:default => '',
|
2041
|
+
:public => false,
|
2042
|
+
:type => String,
|
2043
|
+
:allowed_from_server => true,
|
2044
|
+
:description => 'JavaScript agent file for real user monitoring.'
|
2049
2045
|
},
|
2050
|
-
:
|
2051
|
-
:default
|
2052
|
-
:public
|
2053
|
-
:type
|
2054
|
-
:allowed_from_server =>
|
2055
|
-
:description => '
|
2046
|
+
:js_agent_loader => {
|
2047
|
+
:default => '',
|
2048
|
+
:public => false,
|
2049
|
+
:type => String,
|
2050
|
+
:allowed_from_server => true,
|
2051
|
+
:description => 'JavaScript agent loader content.'
|
2056
2052
|
},
|
2057
|
-
:
|
2058
|
-
:default
|
2059
|
-
:public
|
2060
|
-
:type
|
2061
|
-
:allowed_from_server =>
|
2062
|
-
:description => '
|
2053
|
+
:keep_alive_timeout => {
|
2054
|
+
:default => 60,
|
2055
|
+
:public => false,
|
2056
|
+
:type => Integer,
|
2057
|
+
:allowed_from_server => true,
|
2058
|
+
:description => 'Timeout for keep alive on TCP connection to collector if supported by Ruby version. Only used in conjunction when aggressive_keepalive is enabled.'
|
2063
2059
|
},
|
2064
|
-
:
|
2065
|
-
:default =>
|
2066
|
-
:allow_nil => true,
|
2060
|
+
:max_payload_size_in_bytes => {
|
2061
|
+
:default => 1000000,
|
2067
2062
|
:public => false,
|
2068
|
-
:type =>
|
2063
|
+
:type => Integer,
|
2069
2064
|
:allowed_from_server => true,
|
2070
|
-
:description => '
|
2065
|
+
:description => 'Maximum number of bytes to send to the New Relic data collection service.'
|
2066
|
+
},
|
2067
|
+
:normalize_json_string_encodings => {
|
2068
|
+
:default => true,
|
2069
|
+
:public => false,
|
2070
|
+
:type => Boolean,
|
2071
|
+
:allowed_from_server => false,
|
2072
|
+
:description => 'Controls whether to normalize string encodings prior to serializing data for the collector to JSON.'
|
2073
|
+
},
|
2074
|
+
:port => {
|
2075
|
+
:default => 443,
|
2076
|
+
:public => false,
|
2077
|
+
:type => Integer,
|
2078
|
+
:allowed_from_server => false,
|
2079
|
+
:description => 'Port for the New Relic data collection service.'
|
2071
2080
|
},
|
2072
2081
|
:primary_application_id => {
|
2073
2082
|
:default => nil,
|
@@ -2075,22 +2084,42 @@ module NewRelic
|
|
2075
2084
|
:public => false,
|
2076
2085
|
:type => String,
|
2077
2086
|
:allowed_from_server => true,
|
2078
|
-
:description => 'The primary id associated with
|
2087
|
+
:description => 'The primary id associated with your application.'
|
2079
2088
|
},
|
2080
|
-
:
|
2081
|
-
:default
|
2082
|
-
:public
|
2083
|
-
:type
|
2089
|
+
:put_for_data_send => {
|
2090
|
+
:default => false,
|
2091
|
+
:public => false,
|
2092
|
+
:type => Boolean,
|
2084
2093
|
:allowed_from_server => false,
|
2085
|
-
:description => '
|
2094
|
+
:description => 'Use HTTP PUT requests instead of POST.'
|
2086
2095
|
},
|
2087
|
-
:
|
2088
|
-
:default =>
|
2089
|
-
:allow_nil => true,
|
2096
|
+
:report_instance_busy => {
|
2097
|
+
:default => true,
|
2090
2098
|
:public => false,
|
2091
|
-
:type =>
|
2099
|
+
:type => Boolean,
|
2100
|
+
:allowed_from_server => false,
|
2101
|
+
:description => 'Enable or disable transmission of metrics recording the percentage of time application instances spend servicing requests (duty cycle metrics).'
|
2102
|
+
},
|
2103
|
+
:restart_thread_in_children => {
|
2104
|
+
:default => true,
|
2105
|
+
:public => false,
|
2106
|
+
:type => Boolean,
|
2107
|
+
:allowed_from_server => false,
|
2108
|
+
:description => 'Controls whether to check on running a transaction whether to respawn the harvest thread.'
|
2109
|
+
},
|
2110
|
+
:'resque.use_ruby_dns' => {
|
2111
|
+
:default => true,
|
2112
|
+
:public => false,
|
2113
|
+
:type => Boolean,
|
2114
|
+
:allowed_from_server => false,
|
2115
|
+
:description => 'Replace the libc DNS resolver with the all Ruby resolver Resolv'
|
2116
|
+
},
|
2117
|
+
:'rum.enabled' => {
|
2118
|
+
:default => true,
|
2119
|
+
:public => false,
|
2120
|
+
:type => Boolean,
|
2092
2121
|
:allowed_from_server => true,
|
2093
|
-
:description => '
|
2122
|
+
:description => 'Enable or disable page load timing (sometimes referred to as real user monitoring or RUM).'
|
2094
2123
|
},
|
2095
2124
|
:sampling_target => {
|
2096
2125
|
:default => 10,
|
@@ -2106,53 +2135,93 @@ module NewRelic
|
|
2106
2135
|
:allowed_from_server => true,
|
2107
2136
|
:description => 'The period during which a target number of transactions should be marked as sampled.'
|
2108
2137
|
},
|
2109
|
-
:
|
2138
|
+
:send_environment_info => {
|
2110
2139
|
:default => true,
|
2111
|
-
:public =>
|
2140
|
+
:public => false,
|
2112
2141
|
:type => Boolean,
|
2113
|
-
:allowed_from_server =>
|
2114
|
-
:description => '
|
2142
|
+
:allowed_from_server => false,
|
2143
|
+
:description => 'Enable or disable transmission of application environment information to the New Relic data collection service.'
|
2115
2144
|
},
|
2116
|
-
:
|
2117
|
-
:default =>
|
2118
|
-
:public =>
|
2119
|
-
:type =>
|
2145
|
+
:simple_compression => {
|
2146
|
+
:default => false,
|
2147
|
+
:public => false,
|
2148
|
+
:type => Boolean,
|
2120
2149
|
:allowed_from_server => false,
|
2121
|
-
:
|
2122
|
-
:description => "Sets the maximum number of span events to buffer when streaming to the trace observer."
|
2150
|
+
:description => 'When enabled the agent will compress payloads destined for the collector, but will not pre-compress parts of the payload.'
|
2123
2151
|
},
|
2124
|
-
:
|
2125
|
-
:default =>
|
2126
|
-
:public =>
|
2152
|
+
:skip_ar_instrumentation => {
|
2153
|
+
:default => false,
|
2154
|
+
:public => false,
|
2155
|
+
:type => Boolean,
|
2156
|
+
:allowed_from_server => false,
|
2157
|
+
:description => 'Enable or disable active record instrumentation.'
|
2158
|
+
},
|
2159
|
+
:'synthetics.traces_limit' => {
|
2160
|
+
:default => 20,
|
2161
|
+
:public => false,
|
2127
2162
|
:type => Integer,
|
2128
2163
|
:allowed_from_server => true,
|
2129
|
-
:description => '
|
2164
|
+
:description => 'Maximum number of synthetics transaction traces to hold for a given harvest'
|
2130
2165
|
},
|
2131
|
-
:'
|
2166
|
+
:'synthetics.events_limit' => {
|
2167
|
+
:default => 200,
|
2168
|
+
:public => false,
|
2169
|
+
:type => Integer,
|
2170
|
+
:allowed_from_server => true,
|
2171
|
+
:description => 'Maximum number of synthetics transaction events to hold for a given harvest'
|
2172
|
+
},
|
2173
|
+
:test_mode => {
|
2132
2174
|
:default => false,
|
2133
|
-
:public =>
|
2175
|
+
:public => false,
|
2134
2176
|
:type => Boolean,
|
2177
|
+
:allowed_from_server => false,
|
2178
|
+
: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.'
|
2179
|
+
},
|
2180
|
+
:'thread_profiler.max_profile_overhead' => {
|
2181
|
+
:default => 0.05,
|
2182
|
+
:public => false,
|
2183
|
+
:type => Float,
|
2135
2184
|
:allowed_from_server => true,
|
2136
|
-
:description =>
|
2185
|
+
:description => 'Maximum overhead percentage for thread profiling before agent reduces polling frequency'
|
2137
2186
|
},
|
2138
|
-
:
|
2139
|
-
:default =>
|
2140
|
-
:public =>
|
2187
|
+
:trusted_account_ids => {
|
2188
|
+
:default => [],
|
2189
|
+
:public => false,
|
2190
|
+
:type => Array,
|
2191
|
+
:allowed_from_server => true,
|
2192
|
+
: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.'
|
2193
|
+
},
|
2194
|
+
:trusted_account_key => {
|
2195
|
+
:default => nil,
|
2196
|
+
:allow_nil => true,
|
2197
|
+
:public => false,
|
2198
|
+
:type => String,
|
2199
|
+
:allowed_from_server => true,
|
2200
|
+
:description => 'A shared key to validate that a distributed trace payload came from a trusted account.'
|
2201
|
+
},
|
2202
|
+
:'utilization.billing_hostname' => {
|
2203
|
+
:default => nil,
|
2204
|
+
:allow_nil => true,
|
2205
|
+
:public => false,
|
2141
2206
|
:type => String,
|
2142
2207
|
:allowed_from_server => false,
|
2143
|
-
:
|
2144
|
-
:description => "Configures the hostname for the Trace Observer Host. " \
|
2145
|
-
"When configured, enables tail-based sampling by sending all recorded spans " \
|
2146
|
-
"to a Trace Observer for further sampling decisions, irrespective of any usual " \
|
2147
|
-
"agent sampling decision."
|
2208
|
+
:description => 'The configured server name by a customer.'
|
2148
2209
|
},
|
2149
|
-
:'
|
2150
|
-
:default =>
|
2151
|
-
:
|
2210
|
+
:'utilization.logical_processors' => {
|
2211
|
+
:default => nil,
|
2212
|
+
:allow_nil => true,
|
2213
|
+
:public => false,
|
2152
2214
|
:type => Integer,
|
2153
2215
|
:allowed_from_server => false,
|
2154
|
-
:
|
2155
|
-
|
2216
|
+
:description => 'The total number of hyper-threaded execution contexts available.'
|
2217
|
+
},
|
2218
|
+
:'utilization.total_ram_mib' => {
|
2219
|
+
:default => nil,
|
2220
|
+
:allow_nil => true,
|
2221
|
+
:public => false,
|
2222
|
+
:type => Integer,
|
2223
|
+
:allowed_from_server => false,
|
2224
|
+
: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).'
|
2156
2225
|
}
|
2157
2226
|
}.freeze
|
2158
2227
|
end
|