newrelic_rpm 8.10.0 → 8.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +32 -190
- data/.rubocop_todo.yml +52 -0
- data/.simplecov +11 -2
- data/CHANGELOG.md +91 -26
- data/Gemfile +0 -1
- data/README.md +1 -1
- data/Rakefile +3 -20
- data/Thorfile +5 -0
- data/bin/nrdebug +63 -43
- data/config.dot +5 -5
- data/init.rb +1 -2
- data/install.rb +1 -2
- data/lib/new_relic/agent/adaptive_sampler.rb +0 -1
- data/lib/new_relic/agent/agent/shutdown.rb +0 -1
- data/lib/new_relic/agent/agent/special_startup.rb +0 -1
- data/lib/new_relic/agent/agent/start_worker_thread.rb +0 -1
- data/lib/new_relic/agent/agent/startup.rb +0 -1
- data/lib/new_relic/agent/agent.rb +100 -73
- data/lib/new_relic/agent/agent_logger.rb +4 -5
- data/lib/new_relic/agent/attribute_filter.rb +39 -21
- data/lib/new_relic/agent/attribute_processing.rb +3 -4
- data/lib/new_relic/agent/attributes.rb +0 -1
- data/lib/new_relic/agent/audit_logger.rb +2 -3
- data/lib/new_relic/agent/autostart.rb +0 -1
- data/lib/new_relic/agent/chained_call.rb +0 -1
- data/lib/new_relic/agent/commands/agent_command.rb +0 -1
- data/lib/new_relic/agent/commands/agent_command_router.rb +3 -4
- data/lib/new_relic/agent/commands/thread_profiler_session.rb +0 -1
- data/lib/new_relic/agent/configuration/default_source.rb +56 -27
- data/lib/new_relic/agent/configuration/dotted_hash.rb +1 -2
- data/lib/new_relic/agent/configuration/environment_source.rb +3 -4
- data/lib/new_relic/agent/configuration/event_harvest_config.rb +0 -1
- data/lib/new_relic/agent/configuration/high_security_source.rb +0 -1
- data/lib/new_relic/agent/configuration/manager.rb +1 -2
- data/lib/new_relic/agent/configuration/manual_source.rb +0 -1
- data/lib/new_relic/agent/configuration/mask_defaults.rb +2 -3
- data/lib/new_relic/agent/configuration/security_policy_source.rb +0 -1
- data/lib/new_relic/agent/configuration/server_source.rb +0 -1
- data/lib/new_relic/agent/configuration/yaml_source.rb +2 -3
- data/lib/new_relic/agent/configuration.rb +0 -1
- data/lib/new_relic/agent/connect/request_builder.rb +1 -2
- data/lib/new_relic/agent/connect/response_handler.rb +1 -2
- data/lib/new_relic/agent/custom_event_aggregator.rb +0 -1
- data/lib/new_relic/agent/database/explain_plan_helpers.rb +0 -1
- data/lib/new_relic/agent/database/obfuscation_helpers.rb +0 -1
- data/lib/new_relic/agent/database/obfuscator.rb +0 -1
- data/lib/new_relic/agent/database/postgres_explain_obfuscator.rb +0 -1
- data/lib/new_relic/agent/database.rb +13 -14
- data/lib/new_relic/agent/database_adapter.rb +0 -1
- data/lib/new_relic/agent/datastores/metric_helper.rb +0 -4
- data/lib/new_relic/agent/datastores/mongo/event_formatter.rb +2 -3
- data/lib/new_relic/agent/datastores/mongo/metric_translator.rb +1 -4
- data/lib/new_relic/agent/datastores/mongo/obfuscator.rb +0 -1
- data/lib/new_relic/agent/datastores/mongo.rb +0 -1
- data/lib/new_relic/agent/datastores/redis.rb +0 -1
- data/lib/new_relic/agent/datastores.rb +0 -1
- data/lib/new_relic/agent/deprecator.rb +0 -1
- data/lib/new_relic/agent/distributed_tracing/cross_app_payload.rb +0 -1
- data/lib/new_relic/agent/distributed_tracing/cross_app_tracing.rb +0 -1
- data/lib/new_relic/agent/distributed_tracing/distributed_trace_attributes.rb +0 -1
- data/lib/new_relic/agent/distributed_tracing/distributed_trace_metrics.rb +0 -1
- data/lib/new_relic/agent/distributed_tracing/distributed_trace_payload.rb +0 -2
- data/lib/new_relic/agent/distributed_tracing/distributed_trace_transport_type.rb +0 -1
- data/lib/new_relic/agent/distributed_tracing/trace_context.rb +0 -1
- data/lib/new_relic/agent/distributed_tracing/trace_context_payload.rb +0 -1
- data/lib/new_relic/agent/distributed_tracing.rb +0 -1
- data/lib/new_relic/agent/encoding_normalizer.rb +0 -1
- data/lib/new_relic/agent/error_collector.rb +0 -1
- data/lib/new_relic/agent/error_event_aggregator.rb +0 -1
- data/lib/new_relic/agent/error_filter.rb +4 -5
- data/lib/new_relic/agent/error_trace_aggregator.rb +1 -2
- data/lib/new_relic/agent/event_aggregator.rb +0 -1
- data/lib/new_relic/agent/event_buffer.rb +0 -1
- data/lib/new_relic/agent/event_listener.rb +0 -1
- data/lib/new_relic/agent/event_loop.rb +2 -3
- data/lib/new_relic/agent/external.rb +1 -2
- data/lib/new_relic/agent/guid_generator.rb +0 -1
- data/lib/new_relic/agent/harvester.rb +0 -1
- data/lib/new_relic/agent/heap.rb +2 -3
- data/lib/new_relic/agent/hostname.rb +0 -1
- data/lib/new_relic/agent/http_clients/abstract.rb +0 -1
- data/lib/new_relic/agent/http_clients/curb_wrappers.rb +0 -1
- data/lib/new_relic/agent/http_clients/excon_wrappers.rb +0 -1
- data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +1 -2
- data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +1 -2
- data/lib/new_relic/agent/http_clients/net_http_wrappers.rb +0 -1
- data/lib/new_relic/agent/http_clients/typhoeus_wrappers.rb +1 -2
- data/lib/new_relic/agent/http_clients/uri_util.rb +0 -1
- data/lib/new_relic/agent/instrumentation/action_cable_subscriber.rb +0 -1
- data/lib/new_relic/agent/instrumentation/action_controller_subscriber.rb +8 -5
- data/lib/new_relic/agent/instrumentation/action_view_subscriber.rb +1 -2
- data/lib/new_relic/agent/instrumentation/active_job.rb +0 -1
- data/lib/new_relic/agent/instrumentation/active_merchant.rb +2 -2
- data/lib/new_relic/agent/instrumentation/active_record.rb +0 -1
- data/lib/new_relic/agent/instrumentation/active_record_helper.rb +0 -1
- data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +0 -1
- data/lib/new_relic/agent/instrumentation/active_record_prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +0 -1
- data/lib/new_relic/agent/instrumentation/active_storage.rb +0 -1
- data/lib/new_relic/agent/instrumentation/active_storage_subscriber.rb +0 -1
- data/lib/new_relic/agent/instrumentation/active_support_logger/chain.rb +0 -1
- data/lib/new_relic/agent/instrumentation/active_support_logger/instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/active_support_logger/prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/active_support_logger.rb +0 -1
- data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +0 -1
- data/lib/new_relic/agent/instrumentation/authlogic.rb +0 -1
- data/lib/new_relic/agent/instrumentation/bunny/chain.rb +0 -1
- data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/bunny/prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/bunny.rb +0 -1
- data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +2 -3
- data/lib/new_relic/agent/instrumentation/curb/chain.rb +0 -1
- data/lib/new_relic/agent/instrumentation/curb/instrumentation.rb +14 -11
- data/lib/new_relic/agent/instrumentation/curb/prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/curb.rb +0 -1
- data/lib/new_relic/agent/instrumentation/data_mapper.rb +1 -2
- data/lib/new_relic/agent/instrumentation/delayed_job/chain.rb +0 -1
- data/lib/new_relic/agent/instrumentation/delayed_job/instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/delayed_job/prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/excon/middleware.rb +0 -1
- data/lib/new_relic/agent/instrumentation/excon.rb +0 -1
- data/lib/new_relic/agent/instrumentation/grape/chain.rb +0 -1
- data/lib/new_relic/agent/instrumentation/grape/instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/grape/prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/grape.rb +0 -1
- data/lib/new_relic/agent/instrumentation/grpc/client/chain.rb +0 -9
- data/lib/new_relic/agent/instrumentation/grpc/client/instrumentation.rb +10 -9
- data/lib/new_relic/agent/instrumentation/grpc/client/prepend.rb +0 -6
- data/lib/new_relic/agent/instrumentation/grpc/client/request_wrapper.rb +0 -1
- data/lib/new_relic/agent/instrumentation/grpc/helper.rb +2 -1
- data/lib/new_relic/agent/instrumentation/grpc/server/chain.rb +0 -1
- data/lib/new_relic/agent/instrumentation/grpc/server/instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/grpc/server/rpc_desc_prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/grpc/server/rpc_server_prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/grpc_client.rb +0 -1
- data/lib/new_relic/agent/instrumentation/grpc_server.rb +0 -1
- data/lib/new_relic/agent/instrumentation/httpclient/chain.rb +0 -1
- data/lib/new_relic/agent/instrumentation/httpclient/instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/httpclient/prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/httpclient.rb +0 -1
- data/lib/new_relic/agent/instrumentation/httprb/chain.rb +0 -1
- data/lib/new_relic/agent/instrumentation/httprb/instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/httprb/prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/httprb.rb +0 -1
- data/lib/new_relic/agent/instrumentation/ignore_actions.rb +0 -1
- data/lib/new_relic/agent/instrumentation/logger/chain.rb +0 -1
- data/lib/new_relic/agent/instrumentation/logger/instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/logger/prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/logger.rb +0 -1
- data/lib/new_relic/agent/instrumentation/memcache/chain.rb +0 -1
- data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +1 -2
- data/lib/new_relic/agent/instrumentation/memcache/helper.rb +0 -1
- data/lib/new_relic/agent/instrumentation/memcache/instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/memcache/prepend.rb +1 -2
- data/lib/new_relic/agent/instrumentation/memcache.rb +4 -5
- data/lib/new_relic/agent/instrumentation/middleware_proxy.rb +1 -2
- data/lib/new_relic/agent/instrumentation/middleware_tracing.rb +0 -1
- data/lib/new_relic/agent/instrumentation/mongo.rb +0 -1
- data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +1 -2
- data/lib/new_relic/agent/instrumentation/net_http/chain.rb +0 -1
- data/lib/new_relic/agent/instrumentation/net_http/instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/net_http/prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/net_http.rb +0 -1
- data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +2 -3
- data/lib/new_relic/agent/instrumentation/padrino/chain.rb +0 -1
- data/lib/new_relic/agent/instrumentation/padrino/instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/padrino/prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/padrino.rb +0 -1
- data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/queue_time.rb +0 -2
- data/lib/new_relic/agent/instrumentation/rack/chain.rb +0 -1
- data/lib/new_relic/agent/instrumentation/rack/helpers.rb +0 -1
- data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/rack/prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/rack.rb +0 -1
- data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +0 -1
- data/lib/new_relic/agent/instrumentation/rails_middleware.rb +0 -1
- data/lib/new_relic/agent/instrumentation/rails_notifications/action_cable.rb +0 -1
- data/lib/new_relic/agent/instrumentation/rails_notifications/action_controller.rb +0 -1
- data/lib/new_relic/agent/instrumentation/rails_notifications/action_view.rb +0 -1
- data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/rake/chain.rb +0 -1
- data/lib/new_relic/agent/instrumentation/rake/instrumentation.rb +5 -1
- data/lib/new_relic/agent/instrumentation/rake/prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/rake.rb +0 -1
- data/lib/new_relic/agent/instrumentation/redis/chain.rb +0 -1
- data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/redis/prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/redis.rb +0 -1
- data/lib/new_relic/agent/instrumentation/resque/chain.rb +0 -1
- data/lib/new_relic/agent/instrumentation/resque/helper.rb +0 -1
- data/lib/new_relic/agent/instrumentation/resque/instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/resque/prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/resque.rb +0 -1
- data/lib/new_relic/agent/instrumentation/sequel.rb +0 -1
- data/lib/new_relic/agent/instrumentation/sequel_helper.rb +0 -1
- data/lib/new_relic/agent/instrumentation/sidekiq.rb +1 -2
- data/lib/new_relic/agent/instrumentation/sinatra/chain.rb +0 -1
- data/lib/new_relic/agent/instrumentation/sinatra/ignorer.rb +0 -1
- data/lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/sinatra/prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/sinatra/transaction_namer.rb +0 -1
- data/lib/new_relic/agent/instrumentation/sinatra.rb +0 -1
- data/lib/new_relic/agent/instrumentation/sunspot.rb +0 -1
- data/lib/new_relic/agent/instrumentation/thread/chain.rb +0 -1
- data/lib/new_relic/agent/instrumentation/thread/instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/thread/prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/thread.rb +0 -1
- data/lib/new_relic/agent/instrumentation/tilt/chain.rb +0 -1
- data/lib/new_relic/agent/instrumentation/tilt/instrumentation.rb +0 -1
- data/lib/new_relic/agent/instrumentation/tilt/prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/tilt.rb +0 -1
- data/lib/new_relic/agent/instrumentation/typhoeus/chain.rb +0 -1
- data/lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb +3 -4
- data/lib/new_relic/agent/instrumentation/typhoeus/prepend.rb +0 -1
- data/lib/new_relic/agent/instrumentation/typhoeus.rb +0 -1
- data/lib/new_relic/agent/instrumentation.rb +0 -1
- data/lib/new_relic/agent/internal_agent_error.rb +0 -1
- data/lib/new_relic/agent/javascript_instrumentor.rb +1 -2
- data/lib/new_relic/agent/linking_metadata.rb +0 -1
- data/lib/new_relic/agent/local_log_decorator.rb +0 -1
- data/lib/new_relic/agent/log_event_aggregator.rb +0 -1
- data/lib/new_relic/agent/log_once.rb +0 -1
- data/lib/new_relic/agent/log_priority.rb +0 -1
- data/lib/new_relic/agent/logging.rb +0 -1
- data/lib/new_relic/agent/memory_logger.rb +0 -1
- data/lib/new_relic/agent/messaging.rb +1 -2
- data/lib/new_relic/agent/method_tracer.rb +0 -1
- data/lib/new_relic/agent/method_tracer_helpers.rb +1 -2
- data/lib/new_relic/agent/monitors/cross_app_monitor.rb +0 -1
- data/lib/new_relic/agent/monitors/distributed_tracing_monitor.rb +0 -1
- data/lib/new_relic/agent/monitors/inbound_request_monitor.rb +0 -1
- data/lib/new_relic/agent/monitors/synthetics_monitor.rb +0 -1
- data/lib/new_relic/agent/monitors.rb +0 -1
- data/lib/new_relic/agent/new_relic_service/encoders.rb +0 -1
- data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +0 -1
- data/lib/new_relic/agent/new_relic_service/marshaller.rb +0 -1
- data/lib/new_relic/agent/new_relic_service/security_policy_settings.rb +0 -1
- data/lib/new_relic/agent/new_relic_service.rb +193 -142
- data/lib/new_relic/agent/{noticible_error.rb → noticeable_error.rb} +1 -2
- data/lib/new_relic/agent/null_logger.rb +0 -1
- data/lib/new_relic/agent/obfuscator.rb +1 -2
- data/lib/new_relic/agent/parameter_filtering.rb +0 -1
- data/lib/new_relic/agent/payload_metric_mapping.rb +0 -1
- data/lib/new_relic/agent/pipe_channel_manager.rb +0 -1
- data/lib/new_relic/agent/pipe_service.rb +0 -1
- data/lib/new_relic/agent/prepend_supportability.rb +0 -1
- data/lib/new_relic/agent/priority_sampled_buffer.rb +2 -3
- data/lib/new_relic/agent/range_extensions.rb +0 -1
- data/lib/new_relic/agent/rules_engine/replacement_rule.rb +0 -1
- data/lib/new_relic/agent/rules_engine/segment_terms_rule.rb +0 -1
- data/lib/new_relic/agent/rules_engine.rb +0 -1
- data/lib/new_relic/agent/sampler.rb +0 -1
- data/lib/new_relic/agent/sampler_collection.rb +0 -1
- data/lib/new_relic/agent/samplers/cpu_sampler.rb +0 -1
- data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +0 -1
- data/lib/new_relic/agent/samplers/memory_sampler.rb +5 -6
- data/lib/new_relic/agent/samplers/object_sampler.rb +0 -1
- data/lib/new_relic/agent/samplers/vm_sampler.rb +2 -1
- data/lib/new_relic/agent/span_event_aggregator.rb +0 -1
- data/lib/new_relic/agent/span_event_primitive.rb +0 -2
- data/lib/new_relic/agent/sql_sampler.rb +0 -1
- data/lib/new_relic/agent/stats.rb +12 -3
- data/lib/new_relic/agent/stats_engine/gc_profiler.rb +0 -2
- data/lib/new_relic/agent/stats_engine/stats_hash.rb +1 -2
- data/lib/new_relic/agent/stats_engine.rb +0 -1
- data/lib/new_relic/agent/synthetics_event_aggregator.rb +0 -1
- data/lib/new_relic/agent/system_info.rb +1 -2
- data/lib/new_relic/agent/threading/agent_thread.rb +12 -9
- data/lib/new_relic/agent/threading/backtrace_node.rb +0 -1
- data/lib/new_relic/agent/threading/backtrace_service.rb +0 -1
- data/lib/new_relic/agent/threading/thread_profile.rb +1 -2
- data/lib/new_relic/agent/timestamp_sampled_buffer.rb +0 -1
- data/lib/new_relic/agent/tracer.rb +7 -6
- data/lib/new_relic/agent/transaction/abstract_segment.rb +2 -3
- data/lib/new_relic/agent/transaction/datastore_segment.rb +0 -1
- data/lib/new_relic/agent/transaction/distributed_tracer.rb +0 -1
- data/lib/new_relic/agent/transaction/distributed_tracing.rb +0 -1
- data/lib/new_relic/agent/transaction/external_request_segment.rb +1 -2
- data/lib/new_relic/agent/transaction/message_broker_segment.rb +0 -1
- data/lib/new_relic/agent/transaction/request_attributes.rb +0 -1
- data/lib/new_relic/agent/transaction/segment.rb +0 -1
- data/lib/new_relic/agent/transaction/slowest_sample_buffer.rb +0 -1
- data/lib/new_relic/agent/transaction/synthetics_sample_buffer.rb +0 -1
- data/lib/new_relic/agent/transaction/trace.rb +0 -1
- data/lib/new_relic/agent/transaction/trace_builder.rb +0 -1
- data/lib/new_relic/agent/transaction/trace_context.rb +0 -1
- data/lib/new_relic/agent/transaction/trace_node.rb +2 -3
- data/lib/new_relic/agent/transaction/tracing.rb +0 -1
- data/lib/new_relic/agent/transaction/transaction_sample_buffer.rb +0 -2
- data/lib/new_relic/agent/transaction.rb +3 -5
- data/lib/new_relic/agent/transaction_error_primitive.rb +0 -1
- data/lib/new_relic/agent/transaction_event_aggregator.rb +0 -1
- data/lib/new_relic/agent/transaction_event_primitive.rb +0 -1
- data/lib/new_relic/agent/transaction_event_recorder.rb +1 -2
- data/lib/new_relic/agent/transaction_metrics.rb +1 -2
- data/lib/new_relic/agent/transaction_sampler.rb +0 -1
- data/lib/new_relic/agent/transaction_time_aggregator.rb +1 -2
- data/lib/new_relic/agent/utilization/aws.rb +0 -1
- data/lib/new_relic/agent/utilization/azure.rb +1 -2
- data/lib/new_relic/agent/utilization/gcp.rb +1 -2
- data/lib/new_relic/agent/utilization/pcf.rb +1 -2
- data/lib/new_relic/agent/utilization/vendor.rb +1 -2
- data/lib/new_relic/agent/utilization_data.rb +0 -1
- data/lib/new_relic/agent/vm/jruby_vm.rb +0 -1
- data/lib/new_relic/agent/vm/monotonic_gc_profiler.rb +0 -1
- data/lib/new_relic/agent/vm/mri_vm.rb +35 -23
- data/lib/new_relic/agent/vm/snapshot.rb +1 -2
- data/lib/new_relic/agent/vm.rb +0 -1
- data/lib/new_relic/agent/worker_loop.rb +0 -1
- data/lib/new_relic/agent.rb +13 -16
- data/lib/new_relic/cli/command.rb +1 -2
- data/lib/new_relic/cli/commands/deployments.rb +72 -21
- data/lib/new_relic/cli/commands/install.rb +0 -1
- data/lib/new_relic/coerce.rb +0 -1
- data/lib/new_relic/collection_helper.rb +1 -2
- data/lib/new_relic/constants.rb +0 -1
- data/lib/new_relic/control/class_methods.rb +0 -1
- data/lib/new_relic/control/frameworks/external.rb +0 -1
- data/lib/new_relic/control/frameworks/rails.rb +0 -1
- data/lib/new_relic/control/frameworks/rails3.rb +0 -1
- data/lib/new_relic/control/frameworks/rails4.rb +0 -1
- data/lib/new_relic/control/frameworks/rails_notifications.rb +0 -1
- data/lib/new_relic/control/frameworks/ruby.rb +0 -1
- data/lib/new_relic/control/frameworks/sinatra.rb +0 -1
- data/lib/new_relic/control/frameworks.rb +0 -1
- data/lib/new_relic/control/instance_methods.rb +17 -40
- data/lib/new_relic/control/instrumentation.rb +0 -1
- data/lib/new_relic/control/private_instance_methods.rb +48 -0
- data/lib/new_relic/control/server_methods.rb +0 -1
- data/lib/new_relic/control.rb +0 -1
- data/lib/new_relic/delayed_job_injection.rb +0 -1
- data/lib/new_relic/dependency_detection.rb +3 -4
- data/lib/new_relic/environment_report.rb +23 -14
- data/lib/new_relic/helper.rb +1 -2
- data/lib/new_relic/language_support.rb +7 -3
- data/lib/new_relic/latest_changes.rb +3 -4
- data/lib/new_relic/local_environment.rb +3 -4
- data/lib/new_relic/metric_data.rb +27 -22
- data/lib/new_relic/metric_spec.rb +0 -1
- data/lib/new_relic/noticed_error.rb +3 -6
- data/lib/new_relic/rack/agent_hooks.rb +0 -1
- data/lib/new_relic/rack/agent_middleware.rb +0 -1
- data/lib/new_relic/rack/browser_monitoring.rb +131 -123
- data/lib/new_relic/rack.rb +0 -1
- data/lib/new_relic/recipes/capistrano3.rb +2 -59
- data/lib/new_relic/recipes/capistrano_legacy.rb +1 -2
- data/lib/new_relic/recipes/helpers/send_deployment.rb +69 -0
- data/lib/new_relic/recipes.rb +0 -1
- data/lib/new_relic/supportability_helper.rb +1 -2
- data/lib/new_relic/traced_thread.rb +0 -1
- data/lib/new_relic/version.rb +1 -2
- data/lib/newrelic_rpm.rb +0 -1
- data/lib/sequel/extensions/newrelic_instrumentation.rb +2 -3
- data/lib/sequel/plugins/newrelic_instrumentation.rb +0 -1
- data/lib/tasks/all.rb +0 -1
- data/lib/tasks/config.rake +4 -113
- data/lib/tasks/coverage_report.rake +20 -15
- data/lib/tasks/{config.html.erb → helpers/config.html.erb} +0 -0
- data/lib/tasks/{config.text.erb → helpers/config.text.erb} +0 -0
- data/lib/tasks/helpers/format.rb +120 -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 +0 -1
- 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 +102 -0
- data/lib/tasks/instrumentation_generator/templates/Envfile.tt +9 -0
- data/lib/tasks/instrumentation_generator/templates/chain.tt +21 -0
- data/lib/tasks/instrumentation_generator/templates/chain_method.tt +7 -0
- data/lib/tasks/instrumentation_generator/templates/dependency_detection.tt +29 -0
- data/lib/tasks/instrumentation_generator/templates/instrumentation.tt +12 -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 +0 -1
- data/lib/tasks/multiverse.rb +3 -29
- data/lib/tasks/newrelic.rb +0 -1
- data/lib/tasks/tests.rake +3 -8
- data/newrelic.yml +10 -1
- data/newrelic_rpm.gemspec +14 -19
- data/recipes/newrelic.rb +0 -1
- data/test/agent_helper.rb +22 -54
- metadata +50 -101
- data/bin/mongrel_rpm +0 -33
@@ -1,4 +1,3 @@
|
|
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.
|
4
3
|
# frozen_string_literal: true
|
@@ -10,7 +9,7 @@ module NewRelic
|
|
10
9
|
module Configuration
|
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
|
@@ -28,7 +27,7 @@ module NewRelic
|
|
28
27
|
# - auto, when returned means, try to use prepend unless conflicting gems discovered
|
29
28
|
#
|
30
29
|
def self.instrumentation_value_of(disable_key, prepend_key = nil)
|
31
|
-
|
30
|
+
proc do
|
32
31
|
if NewRelic::Agent.config[disable_key]
|
33
32
|
"disabled"
|
34
33
|
elsif prepend_key && !NewRelic::Agent.config[prepend_key]
|
@@ -40,7 +39,7 @@ module NewRelic
|
|
40
39
|
end
|
41
40
|
|
42
41
|
def self.instrumentation_value_from_boolean(key)
|
43
|
-
|
42
|
+
proc do
|
44
43
|
NewRelic::Agent.config[key] ? 'auto' : 'disabled'
|
45
44
|
end
|
46
45
|
end
|
@@ -48,7 +47,7 @@ module NewRelic
|
|
48
47
|
# Marks the config option as deprecated in the documentation once generated.
|
49
48
|
# Does not appear in logs.
|
50
49
|
def self.deprecated_description(new_setting, description)
|
51
|
-
link_ref = new_setting.to_s.
|
50
|
+
link_ref = new_setting.to_s.tr(".", "-")
|
52
51
|
%{Please see: [#{new_setting}](docs/agents/ruby-agent/configuration/ruby-agent-configuration##{link_ref}). \n\n#{description}}
|
53
52
|
end
|
54
53
|
|
@@ -82,7 +81,7 @@ module NewRelic
|
|
82
81
|
end
|
83
82
|
|
84
83
|
def self.config_search_paths
|
85
|
-
|
84
|
+
proc {
|
86
85
|
paths = [
|
87
86
|
File.join("config", "newrelic.yml"),
|
88
87
|
File.join("newrelic.yml"),
|
@@ -116,7 +115,7 @@ module NewRelic
|
|
116
115
|
end
|
117
116
|
|
118
117
|
def self.config_path
|
119
|
-
|
118
|
+
proc {
|
120
119
|
found_path = NewRelic::Agent.config[:config_search_paths].detect do |file|
|
121
120
|
File.expand_path(file) if File.exist?(file)
|
122
121
|
end
|
@@ -125,7 +124,7 @@ module NewRelic
|
|
125
124
|
end
|
126
125
|
|
127
126
|
def self.framework
|
128
|
-
|
127
|
+
proc {
|
129
128
|
case
|
130
129
|
when defined?(::NewRelic::TEST) then :test
|
131
130
|
when defined?(::Rails::VERSION)
|
@@ -146,7 +145,7 @@ module NewRelic
|
|
146
145
|
end
|
147
146
|
|
148
147
|
def self.agent_enabled
|
149
|
-
|
148
|
+
proc {
|
150
149
|
NewRelic::Agent.config[:enabled] &&
|
151
150
|
(NewRelic::Agent.config[:test_mode] || NewRelic::Agent.config[:monitor_mode]) &&
|
152
151
|
NewRelic::Agent::Autostart.agent_should_start?
|
@@ -156,9 +155,9 @@ module NewRelic
|
|
156
155
|
DEFAULT_LOG_DIR = 'log/'.freeze
|
157
156
|
|
158
157
|
def self.audit_log_path
|
159
|
-
|
158
|
+
proc {
|
160
159
|
log_file_path = NewRelic::Agent.config[:log_file_path]
|
161
|
-
wants_stdout = (log_file_path.
|
160
|
+
wants_stdout = (log_file_path.casecmp('STDOUT').zero?)
|
162
161
|
audit_log_dir = wants_stdout ? DEFAULT_LOG_DIR : log_file_path
|
163
162
|
|
164
163
|
File.join(audit_log_dir, 'newrelic_audit.log')
|
@@ -166,30 +165,30 @@ module NewRelic
|
|
166
165
|
end
|
167
166
|
|
168
167
|
def self.app_name
|
169
|
-
|
168
|
+
proc { NewRelic::Control.instance.env }
|
170
169
|
end
|
171
170
|
|
172
171
|
def self.dispatcher
|
173
|
-
|
172
|
+
proc { NewRelic::Control.instance.local_env.discovered_dispatcher }
|
174
173
|
end
|
175
174
|
|
176
175
|
def self.thread_profiler_enabled
|
177
|
-
|
176
|
+
proc { NewRelic::Agent::Threading::BacktraceService.is_supported? }
|
178
177
|
end
|
179
178
|
|
180
179
|
# This check supports the js_errors_beta key we've asked clients to
|
181
180
|
# set. Once JS errors are GA, browser_monitoring.loader can stop
|
182
181
|
# being dynamic.
|
183
182
|
def self.browser_monitoring_loader
|
184
|
-
|
183
|
+
proc { NewRelic::Agent.config[:js_errors_beta] ? "full" : "rum" }
|
185
184
|
end
|
186
185
|
|
187
186
|
def self.transaction_tracer_transaction_threshold
|
188
|
-
|
187
|
+
proc { NewRelic::Agent.config[:apdex_t] * 4 }
|
189
188
|
end
|
190
189
|
|
191
190
|
def self.profiling_available
|
192
|
-
|
191
|
+
proc {
|
193
192
|
begin
|
194
193
|
require 'ruby-prof'
|
195
194
|
true
|
@@ -200,7 +199,7 @@ module NewRelic
|
|
200
199
|
end
|
201
200
|
|
202
201
|
def self.host
|
203
|
-
|
202
|
+
proc do
|
204
203
|
regex = /\A(?<identifier>.+?)x/
|
205
204
|
if matches = regex.match(String(NewRelic::Agent.config[:license_key]))
|
206
205
|
"collector.#{matches['identifier']}.nr-data.net"
|
@@ -211,12 +210,16 @@ module NewRelic
|
|
211
210
|
end
|
212
211
|
|
213
212
|
def self.api_host
|
214
|
-
|
215
|
-
|
216
|
-
|
213
|
+
# only used for deployment task
|
214
|
+
proc do
|
215
|
+
api_version = if NewRelic::Agent.config[:api_key].nil? || NewRelic::Agent.config[:api_key].empty?
|
216
|
+
"rpm"
|
217
217
|
else
|
218
|
-
|
218
|
+
"api"
|
219
219
|
end
|
220
|
+
api_region = "eu." if String(NewRelic::Agent.config[:license_key]).start_with?('eu')
|
221
|
+
|
222
|
+
"#{api_version}.#{api_region}newrelic.com"
|
220
223
|
end
|
221
224
|
end
|
222
225
|
|
@@ -260,7 +263,7 @@ module NewRelic
|
|
260
263
|
end
|
261
264
|
|
262
265
|
def self.enforce_fallback(allowed_values: nil, fallback: nil)
|
263
|
-
|
266
|
+
proc do |configured_value|
|
264
267
|
if allowed_values.any? { |v| v =~ /#{configured_value}/i }
|
265
268
|
configured_value
|
266
269
|
else
|
@@ -330,6 +333,13 @@ module NewRelic
|
|
330
333
|
:allowed_from_server => false,
|
331
334
|
:description => 'Your New Relic [license key](/docs/apis/intro-apis/new-relic-api-keys/#ingest-license-key).'
|
332
335
|
},
|
336
|
+
:api_key => {
|
337
|
+
:default => '',
|
338
|
+
:public => true,
|
339
|
+
:type => String,
|
340
|
+
:allowed_from_server => false,
|
341
|
+
:description => 'Your New Relic API key. Required when using the New Relic REST API v2 to record deployments using the `newrelic deployments` command.'
|
342
|
+
},
|
333
343
|
:agent_enabled => {
|
334
344
|
:default => DefaultSource.agent_enabled,
|
335
345
|
:documentation_default => true,
|
@@ -930,7 +940,7 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
|
|
930
940
|
:type => String,
|
931
941
|
:dynamic_name => true,
|
932
942
|
:allowed_from_server => false,
|
933
|
-
:description => "Controls auto-instrumentation of the Thread class at start up to allow the agent to correctly nest spans inside of an
|
943
|
+
:description => "Controls auto-instrumentation of the Thread class at start up to allow the agent to correctly nest spans inside of an asynchronous transaction. This does not enable the agent to automatically trace all threads created (see `instrumentation.thread.tracing`). May be one of [auto|prepend|chain|disabled]."
|
934
944
|
},
|
935
945
|
:'instrumentation.thread.tracing' => {
|
936
946
|
:default => false,
|
@@ -1562,7 +1572,7 @@ A map of error classes to a list of messages. When an error of one of the classe
|
|
1562
1572
|
:public => false,
|
1563
1573
|
:type => String,
|
1564
1574
|
:allowed_from_server => true,
|
1565
|
-
:description => '
|
1575
|
+
:description => 'JavaScript agent file for real user monitoring.'
|
1566
1576
|
},
|
1567
1577
|
:'browser_monitoring.auto_instrument' => {
|
1568
1578
|
:default => value_of(:'rum.enabled'),
|
@@ -1921,7 +1931,7 @@ A map of error classes to a list of messages. When an error of one of the classe
|
|
1921
1931
|
:description => 'If `true`, the agent uses Heroku dyno names as the hostname.'
|
1922
1932
|
},
|
1923
1933
|
:'heroku.dyno_name_prefixes_to_shorten' => {
|
1924
|
-
:default => [
|
1934
|
+
:default => %w[scheduler run],
|
1925
1935
|
:public => true,
|
1926
1936
|
:type => Array,
|
1927
1937
|
:allowed_from_server => false,
|
@@ -1929,7 +1939,7 @@ A map of error classes to a list of messages. When an error of one of the classe
|
|
1929
1939
|
:description => 'Ordinarily the agent reports dyno names with a trailing dot and process ID (for example, <b>worker.3</b>). You can remove this trailing data by specifying the prefixes you want to report without trailing data (for example, <b>worker</b>).'
|
1930
1940
|
},
|
1931
1941
|
:'process_host.display_name' => {
|
1932
|
-
:default =>
|
1942
|
+
:default => proc { NewRelic::Agent::Hostname.get },
|
1933
1943
|
:public => true,
|
1934
1944
|
:type => String,
|
1935
1945
|
:allowed_from_server => false,
|
@@ -2436,6 +2446,25 @@ A map of error classes to a list of messages. When an error of one of the classe
|
|
2436
2446
|
:allowed_from_server => false,
|
2437
2447
|
:external => :infinite_tracing,
|
2438
2448
|
:description => "Configures the TCP/IP port for the Trace Observer Host"
|
2449
|
+
},
|
2450
|
+
:'infinite_tracing.compression_level' => {
|
2451
|
+
:default => :none,
|
2452
|
+
:public => false,
|
2453
|
+
:type => Symbol,
|
2454
|
+
:allowed_from_server => false,
|
2455
|
+
:external => :infinite_tracing,
|
2456
|
+
:description => "Configure the compression level for data sent to the Trace Observer\nMay be one of " \
|
2457
|
+
"[none|low|medium|high]\nBy default, compression is not used (level = none)"
|
2458
|
+
},
|
2459
|
+
:'infinite_tracing.batching' => {
|
2460
|
+
:default => false,
|
2461
|
+
:public => false,
|
2462
|
+
:type => Boolean,
|
2463
|
+
:allowed_from_server => false,
|
2464
|
+
:external => :infinite_tracing,
|
2465
|
+
:description => "If true, data sent to the Trace Observer will be batched instead of the default of each " \
|
2466
|
+
"span being sent individually"
|
2467
|
+
|
2439
2468
|
}
|
2440
2469
|
}.freeze
|
2441
2470
|
end
|
@@ -1,4 +1,3 @@
|
|
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.
|
4
3
|
# frozen_string_literal: true
|
@@ -36,7 +35,7 @@ module NewRelic
|
|
36
35
|
# turns {'a' => {'b' => 'c'}} into {'a.b' => 'c'}
|
37
36
|
def dot_flattened(nested_hash, names = [], result = {})
|
38
37
|
nested_hash.each do |key, val|
|
39
|
-
next if val
|
38
|
+
next if val.nil?
|
40
39
|
if val.respond_to?(:has_key?)
|
41
40
|
dot_flattened(val, names + [key], result)
|
42
41
|
else
|
@@ -1,4 +1,3 @@
|
|
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.
|
4
3
|
# frozen_string_literal: true
|
@@ -44,14 +43,14 @@ module NewRelic
|
|
44
43
|
config_setting = original_config_setting.to_s
|
45
44
|
|
46
45
|
if config_setting.include?('.')
|
47
|
-
config_alias = config_setting.
|
46
|
+
config_alias = config_setting.tr('.', '_').to_sym
|
48
47
|
self.alias_map[config_alias] = original_config_setting
|
49
48
|
end
|
50
49
|
end
|
51
50
|
|
52
51
|
def set_log_file
|
53
52
|
if ENV['NEW_RELIC_LOG']
|
54
|
-
if ENV['NEW_RELIC_LOG'].
|
53
|
+
if ENV['NEW_RELIC_LOG'].casecmp('STDOUT').zero?
|
55
54
|
self[:log_file_path] = self[:log_file_name] = 'STDOUT'
|
56
55
|
else
|
57
56
|
self[:log_file_path] = File.dirname(ENV['NEW_RELIC_LOG'])
|
@@ -96,7 +95,7 @@ module NewRelic
|
|
96
95
|
elsif type == NewRelic::Agent::Configuration::Boolean
|
97
96
|
if value =~ /false|off|no/i
|
98
97
|
self[config_key] = false
|
99
|
-
elsif value
|
98
|
+
elsif !value.nil?
|
100
99
|
self[config_key] = true
|
101
100
|
end
|
102
101
|
else
|
@@ -1,4 +1,3 @@
|
|
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.
|
4
3
|
# frozen_string_literal: true
|
@@ -156,7 +155,7 @@ module NewRelic
|
|
156
155
|
|
157
156
|
def register_callback(key, &proc)
|
158
157
|
@callbacks[key] << proc
|
159
|
-
|
158
|
+
yield(@cache[key])
|
160
159
|
end
|
161
160
|
|
162
161
|
def invoke_callbacks(direction, source)
|
@@ -1,4 +1,3 @@
|
|
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.
|
4
3
|
# frozen_string_literal: true
|
@@ -7,8 +6,8 @@ module NewRelic
|
|
7
6
|
module Agent
|
8
7
|
module Configuration
|
9
8
|
MASK_DEFAULTS = {
|
10
|
-
:'thread_profiler' =>
|
11
|
-
:'thread_profiler.enabled' =>
|
9
|
+
:'thread_profiler' => proc { !NewRelic::Agent::Threading::BacktraceService.is_supported? },
|
10
|
+
:'thread_profiler.enabled' => proc { !NewRelic::Agent::Threading::BacktraceService.is_supported? }
|
12
11
|
}
|
13
12
|
end
|
14
13
|
end
|
@@ -1,4 +1,3 @@
|
|
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.
|
4
3
|
# frozen_string_literal: true
|
@@ -14,7 +13,7 @@ module NewRelic
|
|
14
13
|
|
15
14
|
# These are configuration options that have a value of a Hash
|
16
15
|
# This is used in YamlSource#dot_flattened prevent flattening these values
|
17
|
-
CONFIG_WITH_HASH_VALUE = [
|
16
|
+
CONFIG_WITH_HASH_VALUE = %w[expected_messages ignore_messages]
|
18
17
|
|
19
18
|
def initialize(path, env)
|
20
19
|
@path = path
|
@@ -156,7 +155,7 @@ module NewRelic
|
|
156
155
|
|
157
156
|
def dot_flattened(nested_hash, names = [], result = {})
|
158
157
|
nested_hash.each do |key, val|
|
159
|
-
next if val
|
158
|
+
next if val.nil?
|
160
159
|
if val.respond_to?(:has_key?) && !CONFIG_WITH_HASH_VALUE.include?(key)
|
161
160
|
dot_flattened(val, names + [key], result)
|
162
161
|
else
|
@@ -1,4 +1,3 @@
|
|
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.
|
4
3
|
# frozen_string_literal: true
|
@@ -39,7 +38,7 @@ module NewRelic
|
|
39
38
|
end
|
40
39
|
|
41
40
|
# We've seen objects in the environment report (Rails.env in
|
42
|
-
# particular) that can't
|
41
|
+
# particular) that can't serialize to JSON. Cope with that here and
|
43
42
|
# clear out so downstream code doesn't have to check again.
|
44
43
|
def sanitize_environment_report(environment_report)
|
45
44
|
return NewRelic::EMPTY_ARRAY unless @service.valid_to_marshal?(environment_report)
|
@@ -1,4 +1,3 @@
|
|
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.
|
4
3
|
# frozen_string_literal: true
|
@@ -20,7 +19,7 @@ module NewRelic
|
|
20
19
|
# Can accommodate most arbitrary data - anything extra is
|
21
20
|
# ignored unless we say to do something with it here.
|
22
21
|
def configure_agent(config_data)
|
23
|
-
return if config_data
|
22
|
+
return if config_data.nil?
|
24
23
|
|
25
24
|
@agent.agent_id = config_data['agent_run_id']
|
26
25
|
|
@@ -1,4 +1,3 @@
|
|
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.
|
4
3
|
# frozen_string_literal: true
|
@@ -119,18 +118,18 @@ module NewRelic
|
|
119
118
|
return statement.explain || []
|
120
119
|
end
|
121
120
|
|
122
|
-
KNOWN_OPERATIONS = [
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
121
|
+
KNOWN_OPERATIONS = %w[
|
122
|
+
alter
|
123
|
+
select
|
124
|
+
update
|
125
|
+
delete
|
126
|
+
insert
|
127
|
+
create
|
128
|
+
show
|
129
|
+
set
|
130
|
+
exec
|
131
|
+
execute
|
132
|
+
call
|
134
133
|
]
|
135
134
|
OTHER_OPERATION = 'other'.freeze
|
136
135
|
SQL_COMMENT_REGEX = Regexp.new('/\*.*?\*/', Regexp::MULTILINE).freeze
|
@@ -158,7 +157,7 @@ module NewRelic
|
|
158
157
|
return connection if connection
|
159
158
|
|
160
159
|
begin
|
161
|
-
@connections[config] =
|
160
|
+
@connections[config] = yield(config)
|
162
161
|
rescue => e
|
163
162
|
::NewRelic::Agent.logger.error("Caught exception trying to get connection to DB for explain.", e)
|
164
163
|
nil
|
@@ -1,4 +1,3 @@
|
|
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.
|
4
3
|
# frozen_string_literal: true
|
@@ -8,9 +7,6 @@ module NewRelic
|
|
8
7
|
module Datastores
|
9
8
|
module MetricHelper
|
10
9
|
ROLLUP_METRIC = "Datastore/all".freeze
|
11
|
-
WEB_ROLLUP_METRIC = "Datastore/allWeb".freeze
|
12
|
-
OTHER_ROLLUP_METRIC = "Datastore/allOther".freeze
|
13
|
-
DEFAULT_PRODUCT_NAME = "ActiveRecord".freeze
|
14
10
|
OTHER = "Other".freeze
|
15
11
|
|
16
12
|
ALL = "all".freeze
|
@@ -1,4 +1,3 @@
|
|
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.
|
4
3
|
# frozen_string_literal: true
|
@@ -11,10 +10,10 @@ module NewRelic
|
|
11
10
|
module Mongo
|
12
11
|
module EventFormatter
|
13
12
|
# Keys that will get their values replaced with '?'.
|
14
|
-
OBFUSCATE_KEYS = [
|
13
|
+
OBFUSCATE_KEYS = %w[filter query pipeline].freeze
|
15
14
|
|
16
15
|
# Keys that will get completely removed from the statement.
|
17
|
-
DENYLISTED_KEYS = [
|
16
|
+
DENYLISTED_KEYS = %w[deletes documents updates].freeze
|
18
17
|
|
19
18
|
def self.format(command_name, database_name, command)
|
20
19
|
return nil unless NewRelic::Agent.config[:'mongo.capture_queries']
|
@@ -1,4 +1,3 @@
|
|
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.
|
4
3
|
# frozen_string_literal: true
|
@@ -58,8 +57,6 @@ module NewRelic
|
|
58
57
|
nil
|
59
58
|
end
|
60
59
|
|
61
|
-
MONGO_PRODUCT_NAME = "MongoDB".freeze
|
62
|
-
|
63
60
|
def self.collection_in_selector?(payload)
|
64
61
|
payload[:collection] == '$cmd' && payload[:selector]
|
65
62
|
end
|
@@ -122,7 +119,7 @@ module NewRelic
|
|
122
119
|
name == :findandmodify && payload[:selector] && payload[:selector][:remove]
|
123
120
|
end
|
124
121
|
|
125
|
-
def self.create_indexes?(name,
|
122
|
+
def self.create_indexes?(name, _payload)
|
126
123
|
name == :createIndexes
|
127
124
|
end
|
128
125
|
|
@@ -1,4 +1,3 @@
|
|
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.
|
4
3
|
# frozen_string_literal: true
|
@@ -19,7 +18,6 @@ module NewRelic
|
|
19
18
|
|
20
19
|
VERSION = [0, 1].freeze
|
21
20
|
PARENT_TYPE = "App"
|
22
|
-
POUND = '#'
|
23
21
|
|
24
22
|
# Key names for serialization
|
25
23
|
VERSION_KEY = 'v'
|