newrelic_rpm 5.5.0.348 → 7.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +9 -0
- data/.yardopts +1 -0
- data/CHANGELOG.md +931 -0
- data/CONTRIBUTING.md +117 -19
- data/Gemfile +6 -2
- data/Guardfile +18 -1
- data/LICENSE +208 -38
- data/README.md +80 -84
- data/ROADMAP.md +24 -0
- data/Rakefile +2 -0
- data/THIRD_PARTY_NOTICES.md +213 -0
- data/bin/nrdebug +1 -1
- data/config.dot +1 -0
- data/init.rb +1 -1
- data/install.rb +1 -1
- data/lib/new_relic/agent.rb +111 -20
- data/lib/new_relic/agent/adaptive_sampler.rb +1 -1
- data/lib/new_relic/agent/agent.rb +182 -194
- data/lib/new_relic/agent/agent_logger.rb +5 -1
- data/lib/new_relic/agent/attribute_filter.rb +85 -25
- data/lib/new_relic/agent/attribute_processing.rb +1 -1
- data/lib/new_relic/agent/attributes.rb +152 -0
- data/lib/new_relic/agent/audit_logger.rb +11 -1
- data/lib/new_relic/agent/autostart.rb +19 -15
- data/lib/new_relic/agent/chained_call.rb +1 -1
- data/lib/new_relic/agent/commands/agent_command.rb +1 -1
- data/lib/new_relic/agent/commands/agent_command_router.rb +3 -22
- data/lib/new_relic/agent/commands/thread_profiler_session.rb +1 -1
- data/lib/new_relic/agent/configuration.rb +1 -1
- data/lib/new_relic/agent/configuration/default_source.rb +656 -188
- data/lib/new_relic/agent/configuration/dotted_hash.rb +1 -1
- data/lib/new_relic/agent/configuration/environment_source.rb +5 -3
- data/lib/new_relic/agent/configuration/event_harvest_config.rb +45 -0
- data/lib/new_relic/agent/configuration/high_security_source.rb +2 -1
- data/lib/new_relic/agent/configuration/manager.rb +17 -13
- data/lib/new_relic/agent/configuration/manual_source.rb +1 -1
- data/lib/new_relic/agent/configuration/mask_defaults.rb +1 -1
- data/lib/new_relic/agent/configuration/security_policy_source.rb +15 -1
- data/lib/new_relic/agent/configuration/server_source.rb +39 -4
- data/lib/new_relic/agent/configuration/yaml_source.rb +12 -7
- data/lib/new_relic/agent/connect/request_builder.rb +63 -0
- data/lib/new_relic/agent/connect/response_handler.rb +61 -0
- data/lib/new_relic/agent/custom_event_aggregator.rb +1 -1
- data/lib/new_relic/agent/database.rb +2 -3
- data/lib/new_relic/agent/database/explain_plan_helpers.rb +1 -1
- data/lib/new_relic/agent/database/obfuscation_helpers.rb +2 -2
- data/lib/new_relic/agent/database/obfuscator.rb +1 -1
- data/lib/new_relic/agent/database/postgres_explain_obfuscator.rb +1 -1
- data/lib/new_relic/agent/database_adapter.rb +33 -0
- data/lib/new_relic/agent/datastores.rb +7 -9
- data/lib/new_relic/agent/datastores/metric_helper.rb +2 -3
- data/lib/new_relic/agent/datastores/mongo.rb +2 -2
- data/lib/new_relic/agent/datastores/mongo/event_formatter.rb +3 -3
- data/lib/new_relic/agent/datastores/mongo/metric_translator.rb +1 -1
- data/lib/new_relic/agent/datastores/mongo/obfuscator.rb +9 -9
- data/lib/new_relic/agent/datastores/mongo/statement_formatter.rb +1 -1
- data/lib/new_relic/agent/datastores/redis.rb +1 -5
- data/lib/new_relic/agent/deprecator.rb +1 -1
- data/lib/new_relic/agent/distributed_tracing.rb +115 -32
- data/lib/new_relic/agent/{cross_app_payload.rb → distributed_tracing/cross_app_payload.rb} +3 -2
- data/lib/new_relic/agent/{cross_app_tracing.rb → distributed_tracing/cross_app_tracing.rb} +61 -46
- data/lib/new_relic/agent/distributed_tracing/distributed_trace_attributes.rb +84 -0
- data/lib/new_relic/agent/distributed_tracing/distributed_trace_metrics.rb +75 -0
- data/lib/new_relic/agent/{distributed_trace_payload.rb → distributed_tracing/distributed_trace_payload.rb} +32 -113
- data/lib/new_relic/agent/distributed_tracing/distributed_trace_transport_type.rb +39 -0
- data/lib/new_relic/agent/distributed_tracing/trace_context.rb +246 -0
- data/lib/new_relic/agent/distributed_tracing/trace_context_payload.rb +126 -0
- data/lib/new_relic/agent/encoding_normalizer.rb +1 -1
- data/lib/new_relic/agent/error_collector.rb +88 -58
- data/lib/new_relic/agent/error_event_aggregator.rb +10 -7
- data/lib/new_relic/agent/error_filter.rb +167 -0
- data/lib/new_relic/agent/error_trace_aggregator.rb +2 -1
- data/lib/new_relic/agent/event_aggregator.rb +27 -33
- data/lib/new_relic/agent/event_buffer.rb +1 -1
- data/lib/new_relic/agent/event_listener.rb +1 -1
- data/lib/new_relic/agent/event_loop.rb +1 -1
- data/lib/new_relic/agent/external.rb +13 -11
- data/lib/new_relic/agent/guid_generator.rb +28 -0
- data/lib/new_relic/agent/harvester.rb +1 -1
- data/lib/new_relic/agent/heap.rb +1 -1
- data/lib/new_relic/agent/hostname.rb +16 -2
- data/lib/new_relic/agent/http_clients/abstract.rb +82 -0
- data/lib/new_relic/agent/http_clients/curb_wrappers.rb +25 -20
- data/lib/new_relic/agent/http_clients/excon_wrappers.rb +29 -14
- data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +18 -22
- data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +11 -12
- data/lib/new_relic/agent/http_clients/net_http_wrappers.rb +17 -5
- data/lib/new_relic/agent/http_clients/typhoeus_wrappers.rb +5 -7
- data/lib/new_relic/agent/http_clients/uri_util.rb +12 -11
- data/lib/new_relic/agent/instrumentation.rb +1 -1
- data/lib/new_relic/agent/instrumentation/action_cable_subscriber.rb +26 -43
- data/lib/new_relic/agent/instrumentation/action_controller_subscriber.rb +53 -73
- data/lib/new_relic/agent/instrumentation/action_view_subscriber.rb +81 -56
- data/lib/new_relic/agent/instrumentation/active_job.rb +7 -8
- data/lib/new_relic/agent/instrumentation/active_merchant.rb +1 -1
- data/lib/new_relic/agent/instrumentation/active_record.rb +85 -38
- data/lib/new_relic/agent/instrumentation/active_record_helper.rb +17 -6
- data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +152 -0
- data/lib/new_relic/agent/instrumentation/active_record_prepend.rb +35 -11
- data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +47 -51
- data/lib/new_relic/agent/instrumentation/active_storage.rb +23 -0
- data/lib/new_relic/agent/instrumentation/active_storage_subscriber.rb +63 -0
- data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +10 -9
- data/lib/new_relic/agent/instrumentation/authlogic.rb +1 -1
- data/lib/new_relic/agent/instrumentation/bunny.rb +13 -132
- data/lib/new_relic/agent/instrumentation/bunny/chain.rb +45 -0
- data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +152 -0
- data/lib/new_relic/agent/instrumentation/bunny/prepend.rb +35 -0
- data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +11 -4
- data/lib/new_relic/agent/instrumentation/curb.rb +11 -183
- data/lib/new_relic/agent/instrumentation/curb/chain.rb +93 -0
- data/lib/new_relic/agent/instrumentation/curb/instrumentation.rb +222 -0
- data/lib/new_relic/agent/instrumentation/curb/prepend.rb +63 -0
- data/lib/new_relic/agent/instrumentation/data_mapper.rb +5 -3
- data/lib/new_relic/agent/instrumentation/delayed_job/chain.rb +38 -0
- data/lib/new_relic/agent/instrumentation/delayed_job/instrumentation.rb +53 -0
- data/lib/new_relic/agent/instrumentation/delayed_job/prepend.rb +34 -0
- data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +9 -49
- data/lib/new_relic/agent/instrumentation/excon.rb +4 -3
- data/lib/new_relic/agent/instrumentation/excon/connection.rb +8 -5
- data/lib/new_relic/agent/instrumentation/excon/middleware.rb +3 -2
- data/lib/new_relic/agent/instrumentation/grape.rb +14 -107
- data/lib/new_relic/agent/instrumentation/grape/chain.rb +25 -0
- data/lib/new_relic/agent/instrumentation/grape/instrumentation.rb +100 -0
- data/lib/new_relic/agent/instrumentation/grape/prepend.rb +17 -0
- data/lib/new_relic/agent/instrumentation/httpclient.rb +10 -30
- data/lib/new_relic/agent/instrumentation/httpclient/chain.rb +25 -0
- data/lib/new_relic/agent/instrumentation/httpclient/instrumentation.rb +38 -0
- data/lib/new_relic/agent/instrumentation/httpclient/prepend.rb +17 -0
- data/lib/new_relic/agent/instrumentation/httprb.rb +29 -0
- data/lib/new_relic/agent/instrumentation/httprb/chain.rb +22 -0
- data/lib/new_relic/agent/instrumentation/httprb/instrumentation.rb +30 -0
- data/lib/new_relic/agent/instrumentation/httprb/prepend.rb +15 -0
- data/lib/new_relic/agent/instrumentation/ignore_actions.rb +1 -1
- data/lib/new_relic/agent/instrumentation/memcache.rb +55 -68
- data/lib/new_relic/agent/instrumentation/memcache/chain.rb +16 -0
- data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +39 -118
- data/lib/new_relic/agent/instrumentation/memcache/helper.rb +56 -0
- data/lib/new_relic/agent/instrumentation/memcache/instrumentation.rb +88 -0
- data/lib/new_relic/agent/instrumentation/memcache/prepend.rb +88 -0
- data/lib/new_relic/agent/instrumentation/merb/controller.rb +1 -1
- data/lib/new_relic/agent/instrumentation/merb/errors.rb +1 -1
- data/lib/new_relic/agent/instrumentation/middleware_proxy.rb +4 -2
- data/lib/new_relic/agent/instrumentation/middleware_tracing.rb +20 -11
- data/lib/new_relic/agent/instrumentation/mongo.rb +17 -4
- data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +36 -3
- data/lib/new_relic/agent/instrumentation/net_http.rb +44 -0
- data/lib/new_relic/agent/instrumentation/net_http/chain.rb +25 -0
- data/lib/new_relic/agent/instrumentation/net_http/instrumentation.rb +40 -0
- data/lib/new_relic/agent/instrumentation/net_http/prepend.rb +21 -0
- data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +100 -0
- data/lib/new_relic/agent/instrumentation/padrino.rb +19 -52
- data/lib/new_relic/agent/instrumentation/padrino/chain.rb +34 -0
- data/lib/new_relic/agent/instrumentation/padrino/instrumentation.rb +27 -0
- data/lib/new_relic/agent/instrumentation/padrino/prepend.rb +20 -0
- data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +1 -1
- data/lib/new_relic/agent/instrumentation/queue_time.rb +1 -1
- data/lib/new_relic/agent/instrumentation/rack.rb +30 -138
- data/lib/new_relic/agent/instrumentation/rack/chain.rb +58 -0
- data/lib/new_relic/agent/instrumentation/rack/helpers.rb +32 -0
- data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +73 -0
- data/lib/new_relic/agent/instrumentation/rack/prepend.rb +37 -0
- data/lib/new_relic/agent/instrumentation/rails/action_controller.rb +1 -1
- data/lib/new_relic/agent/instrumentation/rails/action_web_service.rb +1 -1
- data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +1 -1
- data/lib/new_relic/agent/instrumentation/rails_middleware.rb +1 -1
- data/lib/new_relic/agent/instrumentation/{rails5 → rails_notifications}/action_cable.rb +6 -7
- data/lib/new_relic/agent/instrumentation/{rails5 → rails_notifications}/action_controller.rb +4 -4
- data/lib/new_relic/agent/instrumentation/{rails4 → rails_notifications}/action_view.rb +4 -4
- data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +1 -1
- data/lib/new_relic/agent/instrumentation/rake.rb +14 -155
- data/lib/new_relic/agent/instrumentation/rake/chain.rb +25 -0
- data/lib/new_relic/agent/instrumentation/rake/instrumentation.rb +144 -0
- data/lib/new_relic/agent/instrumentation/rake/prepend.rb +14 -0
- data/lib/new_relic/agent/instrumentation/redis.rb +13 -102
- data/lib/new_relic/agent/instrumentation/redis/chain.rb +34 -0
- data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +65 -0
- data/lib/new_relic/agent/instrumentation/redis/prepend.rb +24 -0
- data/lib/new_relic/agent/instrumentation/resque.rb +22 -30
- data/lib/new_relic/agent/instrumentation/resque/chain.rb +22 -0
- data/lib/new_relic/agent/instrumentation/resque/helper.rb +19 -0
- data/lib/new_relic/agent/instrumentation/resque/instrumentation.rb +35 -0
- data/lib/new_relic/agent/instrumentation/resque/prepend.rb +16 -0
- data/lib/new_relic/agent/instrumentation/sequel.rb +2 -2
- data/lib/new_relic/agent/instrumentation/sequel_helper.rb +1 -1
- data/lib/new_relic/agent/instrumentation/sidekiq.rb +48 -24
- data/lib/new_relic/agent/instrumentation/sinatra.rb +21 -160
- data/lib/new_relic/agent/instrumentation/sinatra/chain.rb +55 -0
- data/lib/new_relic/agent/instrumentation/sinatra/ignorer.rb +30 -35
- data/lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb +124 -0
- data/lib/new_relic/agent/instrumentation/sinatra/prepend.rb +33 -0
- data/lib/new_relic/agent/instrumentation/sinatra/transaction_namer.rb +1 -1
- data/lib/new_relic/agent/instrumentation/sunspot.rb +1 -1
- data/lib/new_relic/agent/instrumentation/typhoeus.rb +12 -74
- data/lib/new_relic/agent/instrumentation/typhoeus/chain.rb +22 -0
- data/lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb +82 -0
- data/lib/new_relic/agent/instrumentation/typhoeus/prepend.rb +14 -0
- data/lib/new_relic/agent/internal_agent_error.rb +1 -1
- data/lib/new_relic/agent/javascript_instrumentor.rb +15 -10
- data/lib/new_relic/agent/log_once.rb +1 -1
- data/lib/new_relic/agent/logging.rb +139 -0
- data/lib/new_relic/agent/memory_logger.rb +1 -1
- data/lib/new_relic/agent/messaging.rb +15 -82
- data/lib/new_relic/agent/method_tracer.rb +10 -8
- data/lib/new_relic/agent/method_tracer_helpers.rb +5 -5
- data/lib/new_relic/agent/monitors.rb +27 -0
- data/lib/new_relic/agent/monitors/cross_app_monitor.rb +110 -0
- data/lib/new_relic/agent/monitors/distributed_tracing_monitor.rb +27 -0
- data/lib/new_relic/agent/{inbound_request_monitor.rb → monitors/inbound_request_monitor.rb} +4 -4
- data/lib/new_relic/agent/{synthetics_monitor.rb → monitors/synthetics_monitor.rb} +4 -7
- data/lib/new_relic/agent/new_relic_service.rb +106 -40
- data/lib/new_relic/agent/new_relic_service/encoders.rb +1 -1
- data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +1 -2
- data/lib/new_relic/agent/new_relic_service/marshaller.rb +6 -27
- data/lib/new_relic/agent/new_relic_service/security_policy_settings.rb +1 -1
- data/lib/new_relic/agent/noticible_error.rb +22 -0
- data/lib/new_relic/agent/null_logger.rb +1 -1
- data/lib/new_relic/agent/obfuscator.rb +1 -1
- data/lib/new_relic/agent/parameter_filtering.rb +19 -6
- data/lib/new_relic/agent/payload_metric_mapping.rb +1 -1
- data/lib/new_relic/agent/pipe_channel_manager.rb +1 -1
- data/lib/new_relic/agent/pipe_service.rb +1 -1
- data/lib/new_relic/agent/prepend_supportability.rb +1 -1
- data/lib/new_relic/agent/priority_sampled_buffer.rb +9 -4
- data/lib/new_relic/agent/range_extensions.rb +1 -1
- data/lib/new_relic/agent/rules_engine.rb +1 -1
- data/lib/new_relic/agent/rules_engine/replacement_rule.rb +1 -1
- data/lib/new_relic/agent/rules_engine/segment_terms_rule.rb +1 -1
- data/lib/new_relic/agent/sampler.rb +1 -1
- data/lib/new_relic/agent/sampler_collection.rb +1 -1
- data/lib/new_relic/agent/samplers/cpu_sampler.rb +1 -1
- data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +1 -1
- data/lib/new_relic/agent/samplers/memory_sampler.rb +2 -2
- data/lib/new_relic/agent/samplers/object_sampler.rb +1 -1
- data/lib/new_relic/agent/samplers/vm_sampler.rb +1 -1
- data/lib/new_relic/agent/span_event_aggregator.rb +3 -5
- data/lib/new_relic/agent/span_event_primitive.rb +129 -65
- data/lib/new_relic/agent/sql_sampler.rb +12 -12
- data/lib/new_relic/agent/stats.rb +1 -1
- data/lib/new_relic/agent/stats_engine.rb +3 -3
- data/lib/new_relic/agent/stats_engine/gc_profiler.rb +2 -2
- data/lib/new_relic/agent/stats_engine/stats_hash.rb +1 -1
- data/lib/new_relic/agent/supported_versions.rb +3 -3
- data/lib/new_relic/agent/synthetics_event_aggregator.rb +1 -1
- data/lib/new_relic/agent/system_info.rb +18 -4
- data/lib/new_relic/agent/threading/agent_thread.rb +2 -2
- data/lib/new_relic/agent/threading/backtrace_node.rb +1 -1
- data/lib/new_relic/agent/threading/backtrace_service.rb +4 -4
- data/lib/new_relic/agent/threading/thread_profile.rb +10 -24
- data/lib/new_relic/agent/timestamp_sampled_buffer.rb +1 -1
- data/lib/new_relic/agent/tracer.rb +509 -0
- data/lib/new_relic/agent/transaction.rb +143 -171
- data/lib/new_relic/agent/transaction/abstract_segment.rb +33 -6
- data/lib/new_relic/agent/transaction/datastore_segment.rb +1 -3
- data/lib/new_relic/agent/transaction/distributed_tracer.rb +177 -0
- data/lib/new_relic/agent/transaction/distributed_tracing.rb +59 -149
- data/lib/new_relic/agent/transaction/external_request_segment.rb +32 -39
- data/lib/new_relic/agent/transaction/message_broker_segment.rb +5 -12
- data/lib/new_relic/agent/transaction/request_attributes.rb +1 -1
- data/lib/new_relic/agent/transaction/segment.rb +28 -2
- data/lib/new_relic/agent/transaction/slowest_sample_buffer.rb +1 -1
- data/lib/new_relic/agent/transaction/synthetics_sample_buffer.rb +1 -1
- data/lib/new_relic/agent/transaction/trace.rb +6 -13
- data/lib/new_relic/agent/transaction/trace_builder.rb +1 -2
- data/lib/new_relic/agent/transaction/trace_context.rb +168 -0
- data/lib/new_relic/agent/transaction/trace_node.rb +12 -8
- data/lib/new_relic/agent/transaction/tracing.rb +1 -100
- data/lib/new_relic/agent/transaction/transaction_sample_buffer.rb +1 -1
- data/lib/new_relic/agent/transaction_error_primitive.rb +11 -16
- data/lib/new_relic/agent/transaction_event_aggregator.rb +1 -1
- data/lib/new_relic/agent/transaction_event_primitive.rb +29 -40
- data/lib/new_relic/agent/transaction_event_recorder.rb +4 -4
- data/lib/new_relic/agent/transaction_metrics.rb +1 -1
- data/lib/new_relic/agent/transaction_sampler.rb +2 -6
- data/lib/new_relic/agent/transaction_time_aggregator.rb +50 -26
- data/lib/new_relic/agent/utilization/aws.rb +1 -1
- data/lib/new_relic/agent/utilization/azure.rb +1 -1
- data/lib/new_relic/agent/utilization/gcp.rb +1 -1
- data/lib/new_relic/agent/utilization/pcf.rb +1 -1
- data/lib/new_relic/agent/utilization/vendor.rb +1 -1
- data/lib/new_relic/agent/utilization_data.rb +37 -2
- data/lib/new_relic/agent/vm.rb +1 -1
- data/lib/new_relic/agent/vm/jruby_vm.rb +1 -1
- data/lib/new_relic/agent/vm/monotonic_gc_profiler.rb +1 -1
- data/lib/new_relic/agent/vm/mri_vm.rb +7 -5
- data/lib/new_relic/agent/vm/snapshot.rb +1 -1
- data/lib/new_relic/agent/worker_loop.rb +1 -1
- data/lib/new_relic/cli/command.rb +1 -1
- data/lib/new_relic/cli/commands/deployments.rb +2 -3
- data/lib/new_relic/cli/commands/install.rb +4 -3
- data/lib/new_relic/coerce.rb +32 -7
- data/lib/new_relic/collection_helper.rb +1 -1
- data/lib/new_relic/constants.rb +42 -0
- data/lib/new_relic/control.rb +1 -1
- data/lib/new_relic/control/class_methods.rb +8 -2
- data/lib/new_relic/control/frameworks.rb +1 -1
- data/lib/new_relic/control/frameworks/external.rb +1 -1
- data/lib/new_relic/control/frameworks/merb.rb +1 -1
- data/lib/new_relic/control/frameworks/rails.rb +12 -10
- data/lib/new_relic/control/frameworks/rails3.rb +1 -1
- data/lib/new_relic/control/frameworks/rails4.rb +1 -1
- data/lib/new_relic/control/frameworks/{rails5.rb → rails_notifications.rb} +2 -2
- data/lib/new_relic/control/frameworks/ruby.rb +1 -1
- data/lib/new_relic/control/frameworks/sinatra.rb +1 -1
- data/lib/new_relic/control/instance_methods.rb +12 -2
- data/lib/new_relic/control/instrumentation.rb +1 -1
- data/lib/new_relic/control/server_methods.rb +1 -1
- data/lib/new_relic/delayed_job_injection.rb +1 -1
- data/lib/new_relic/dependency_detection.rb +124 -14
- data/lib/new_relic/environment_report.rb +2 -4
- data/lib/new_relic/helper.rb +1 -1
- data/lib/new_relic/language_support.rb +1 -1
- data/lib/new_relic/latest_changes.rb +4 -4
- data/lib/new_relic/local_environment.rb +1 -1
- data/lib/new_relic/metric_data.rb +1 -1
- data/lib/new_relic/metric_spec.rb +1 -1
- data/lib/new_relic/noticed_error.rb +38 -21
- data/lib/new_relic/rack.rb +1 -1
- data/lib/new_relic/rack/agent_hooks.rb +1 -1
- data/lib/new_relic/rack/agent_middleware.rb +2 -2
- data/lib/new_relic/rack/browser_monitoring.rb +16 -9
- data/lib/new_relic/recipes.rb +1 -1
- data/lib/new_relic/recipes/capistrano3.rb +1 -1
- data/lib/new_relic/recipes/capistrano_legacy.rb +1 -1
- data/lib/new_relic/supportability_helper.rb +16 -1
- data/lib/new_relic/version.rb +3 -3
- data/lib/newrelic_rpm.rb +1 -1
- data/lib/sequel/extensions/newrelic_instrumentation.rb +1 -1
- data/lib/sequel/plugins/newrelic_instrumentation.rb +1 -1
- data/lib/tasks/all.rb +1 -1
- data/lib/tasks/config.html.erb +14 -25
- data/lib/tasks/config.rake +9 -9
- data/lib/tasks/multiverse.rb +35 -1
- data/lib/tasks/newrelic.rb +1 -1
- data/lib/tasks/tests.rake +6 -1
- data/newrelic_rpm.gemspec +22 -17
- data/recipes/newrelic.rb +1 -1
- data/test/agent_helper.rb +358 -78
- metadata +151 -66
- data/.travis.yml +0 -201
- data/cert/cacert.pem +0 -1177
- data/lib/new_relic/agent/commands/xray_session.rb +0 -55
- data/lib/new_relic/agent/commands/xray_session_collection.rb +0 -161
- data/lib/new_relic/agent/cross_app_monitor.rb +0 -110
- data/lib/new_relic/agent/distributed_trace_monitor.rb +0 -41
- data/lib/new_relic/agent/http_clients/abstract_request.rb +0 -31
- data/lib/new_relic/agent/instrumentation/active_record_4.rb +0 -42
- data/lib/new_relic/agent/instrumentation/active_record_5.rb +0 -41
- data/lib/new_relic/agent/instrumentation/evented_subscriber.rb +0 -104
- data/lib/new_relic/agent/instrumentation/http.rb +0 -46
- data/lib/new_relic/agent/instrumentation/net.rb +0 -50
- data/lib/new_relic/agent/instrumentation/rails4/action_controller.rb +0 -32
- data/lib/new_relic/agent/instrumentation/rails5/action_view.rb +0 -27
- data/lib/new_relic/agent/transaction/attributes.rb +0 -154
- data/lib/new_relic/agent/transaction/xray_sample_buffer.rb +0 -64
- data/lib/new_relic/agent/transaction_state.rb +0 -186
- data/lib/new_relic/build.rb +0 -2
- data/lib/new_relic/metrics.rb +0 -13
- data/lib/tasks/versions.html.erb +0 -28
- data/lib/tasks/versions.postface.html +0 -8
- data/lib/tasks/versions.preface.html +0 -9
- data/lib/tasks/versions.rake +0 -65
- data/lib/tasks/versions.txt.erb +0 -14
data/lib/new_relic/rack.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
# This file is distributed under New Relic's license terms.
|
3
|
-
# See https://github.com/newrelic/
|
3
|
+
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
4
4
|
|
5
5
|
# @api public
|
6
6
|
module NewRelic
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
# This file is distributed under New Relic's license terms.
|
3
|
-
# See https://github.com/newrelic/
|
3
|
+
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
4
4
|
|
5
5
|
require 'new_relic/agent/event_listener'
|
6
6
|
require 'new_relic/rack/agent_middleware'
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
# This file is distributed under New Relic's license terms.
|
3
|
-
# See https://github.com/newrelic/
|
3
|
+
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
4
4
|
|
5
|
-
require 'new_relic/agent/
|
5
|
+
require 'new_relic/agent/tracer'
|
6
6
|
require 'new_relic/agent/instrumentation/controller_instrumentation'
|
7
7
|
require 'new_relic/agent/instrumentation/middleware_tracing'
|
8
8
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
# This file is distributed under New Relic's license terms.
|
3
|
-
# See https://github.com/newrelic/
|
3
|
+
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
4
4
|
|
5
5
|
require 'rack'
|
6
6
|
require 'new_relic/rack/agent_middleware'
|
@@ -21,6 +21,7 @@ module NewRelic::Rack
|
|
21
21
|
|
22
22
|
CONTENT_TYPE = 'Content-Type'.freeze
|
23
23
|
CONTENT_DISPOSITION = 'Content-Disposition'.freeze
|
24
|
+
CONTENT_LENGTH = 'Content-Length'.freeze
|
24
25
|
ATTACHMENT = 'attachment'.freeze
|
25
26
|
TEXT_HTML = 'text/html'.freeze
|
26
27
|
|
@@ -29,15 +30,20 @@ module NewRelic::Rack
|
|
29
30
|
GT = ">".freeze
|
30
31
|
|
31
32
|
def traced_call(env)
|
32
|
-
result = @app.call(env)
|
33
|
+
result = @app.call(env)
|
34
|
+
(status, headers, response) = result
|
33
35
|
|
34
36
|
js_to_inject = NewRelic::Agent.browser_timing_header
|
35
|
-
if (js_to_inject != "") && should_instrument?(env,
|
36
|
-
response_string = autoinstrument_source(
|
37
|
+
if (js_to_inject != "") && should_instrument?(env, status, headers)
|
38
|
+
response_string = autoinstrument_source(response, headers, js_to_inject)
|
39
|
+
if headers.key?(CONTENT_LENGTH)
|
40
|
+
content_length = response_string ? response_string.bytesize : 0
|
41
|
+
headers[CONTENT_LENGTH] = content_length.to_s
|
42
|
+
end
|
37
43
|
|
38
44
|
env[ALREADY_INSTRUMENTED_KEY] = true
|
39
45
|
if response_string
|
40
|
-
response = Rack::Response.new(response_string,
|
46
|
+
response = Rack::Response.new(response_string, status, headers)
|
41
47
|
response.finish
|
42
48
|
else
|
43
49
|
result
|
@@ -55,7 +61,7 @@ module NewRelic::Rack
|
|
55
61
|
!env[ALREADY_INSTRUMENTED_KEY] &&
|
56
62
|
is_html?(headers) &&
|
57
63
|
!is_attachment?(headers) &&
|
58
|
-
!is_streaming?(env)
|
64
|
+
!is_streaming?(env, headers)
|
59
65
|
end
|
60
66
|
|
61
67
|
def is_html?(headers)
|
@@ -66,10 +72,11 @@ module NewRelic::Rack
|
|
66
72
|
headers[CONTENT_DISPOSITION] && headers[CONTENT_DISPOSITION].include?(ATTACHMENT)
|
67
73
|
end
|
68
74
|
|
69
|
-
def is_streaming?(env)
|
70
|
-
return
|
75
|
+
def is_streaming?(env, headers)
|
76
|
+
return true if headers && headers['Transfer-Encoding'] == 'chunked'
|
71
77
|
|
72
|
-
|
78
|
+
defined?(ActionController::Live) &&
|
79
|
+
env['action_controller.instance'].class.included_modules.include?(ActionController::Live)
|
73
80
|
end
|
74
81
|
|
75
82
|
CHARSET_RE = /<\s*meta[^>]+charset\s*=[^>]*>/im.freeze
|
data/lib/new_relic/recipes.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
# This file is distributed under New Relic's license terms.
|
3
|
-
# See https://github.com/newrelic/
|
3
|
+
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
4
4
|
|
5
5
|
# When installed as a plugin, this is loaded automatically.
|
6
6
|
#
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
# This file is distributed under New Relic's license terms.
|
3
|
-
# See https://github.com/newrelic/
|
3
|
+
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
4
4
|
|
5
5
|
require 'capistrano/framework'
|
6
6
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
# This file is distributed under New Relic's license terms.
|
3
|
-
# See https://github.com/newrelic/
|
3
|
+
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
4
4
|
|
5
5
|
make_notify_task = Proc.new do
|
6
6
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
# This file is distributed under New Relic's license terms.
|
3
|
-
# See https://github.com/newrelic/
|
3
|
+
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
4
4
|
|
5
5
|
module NewRelic
|
6
6
|
module SupportabilityHelper
|
@@ -11,7 +11,10 @@ module NewRelic
|
|
11
11
|
# transaction, just to eke out a bit less performance hit
|
12
12
|
#
|
13
13
|
API_SUPPORTABILITY_METRICS = [
|
14
|
+
:insert_distributed_trace_headers,
|
15
|
+
:accept_distributed_trace_headers,
|
14
16
|
:add_custom_attributes,
|
17
|
+
:add_custom_span_attributes,
|
15
18
|
:add_instrumentation,
|
16
19
|
:add_method_tracer,
|
17
20
|
:add_transaction_tracer,
|
@@ -64,5 +67,17 @@ module NewRelic
|
|
64
67
|
NewRelic::Agent.logger.debug "API supportability metric not found for :#{method_name}"
|
65
68
|
end
|
66
69
|
end
|
70
|
+
|
71
|
+
def valid_api_argument_class? arg, name, klass
|
72
|
+
return true if arg.is_a?(klass)
|
73
|
+
|
74
|
+
caller_location = caller_locations.first.label
|
75
|
+
|
76
|
+
message = "Bad argument passed to ##{caller_location}. " \
|
77
|
+
"Expected #{klass} for `#{name}` but got #{arg.class}"
|
78
|
+
|
79
|
+
NewRelic::Agent.logger.warn message
|
80
|
+
nil
|
81
|
+
end
|
67
82
|
end
|
68
83
|
end
|
data/lib/new_relic/version.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/ruby
|
2
2
|
# encoding: utf-8
|
3
3
|
# This file is distributed under New Relic's license terms.
|
4
|
-
# See https://github.com/newrelic/
|
4
|
+
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
5
5
|
|
6
6
|
|
7
7
|
module NewRelic
|
@@ -10,8 +10,8 @@ module NewRelic
|
|
10
10
|
parts.compact.join('.')
|
11
11
|
end
|
12
12
|
|
13
|
-
MAJOR =
|
14
|
-
MINOR =
|
13
|
+
MAJOR = 7
|
14
|
+
MINOR = 2
|
15
15
|
TINY = 0
|
16
16
|
|
17
17
|
begin
|
data/lib/newrelic_rpm.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
# This file is distributed under New Relic's license terms.
|
3
|
-
# See https://github.com/newrelic/
|
3
|
+
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
4
4
|
|
5
5
|
# == New Relic Initialization
|
6
6
|
#
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- ruby -*-
|
2
2
|
# encoding: utf-8
|
3
3
|
# This file is distributed under New Relic's license terms.
|
4
|
-
# See https://github.com/newrelic/
|
4
|
+
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
5
5
|
|
6
6
|
require 'sequel' unless defined?( Sequel )
|
7
7
|
require 'newrelic_rpm' unless defined?( NewRelic )
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- ruby -*-
|
2
2
|
# encoding: utf-8
|
3
3
|
# This file is distributed under New Relic's license terms.
|
4
|
-
# See https://github.com/newrelic/
|
4
|
+
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
5
5
|
|
6
6
|
require 'sequel' unless defined?( Sequel )
|
7
7
|
require 'newrelic_rpm' unless defined?( NewRelic )
|
data/lib/tasks/all.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
# This file is distributed under New Relic's license terms.
|
3
|
-
# See https://github.com/newrelic/
|
3
|
+
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
4
4
|
|
5
5
|
# This is required to load in task definitions from merb
|
6
6
|
Dir.glob(File.join(File.dirname(__FILE__),'*.rake')) do |file|
|
data/lib/tasks/config.html.erb
CHANGED
@@ -1,32 +1,21 @@
|
|
1
1
|
<% sections.each do |(section_key, section_name, section_description, configs)| %>
|
2
|
-
|
2
|
+
## <%=section_name%>
|
3
3
|
|
4
|
-
<%= "
|
4
|
+
<%= "#{section_description}" unless section_description.nil? %>
|
5
5
|
|
6
|
-
<
|
6
|
+
<CollapserGroup>
|
7
7
|
<% configs.each do |config|%>
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
</tr>
|
17
|
-
<tr>
|
18
|
-
<th>Default</th>
|
19
|
-
<td><%=config[:default]%></td>
|
20
|
-
</tr>
|
21
|
-
<tr>
|
22
|
-
<th>Environ variable</th>
|
23
|
-
<td><code><%=config[:env_var]%></code></td>
|
24
|
-
</tr>
|
25
|
-
</tbody>
|
26
|
-
</table>
|
8
|
+
<Collapser id="<%= config[:key].gsub('.', '-') %>" title="<%=config[:key]%>">
|
9
|
+
<table>
|
10
|
+
<tbody>
|
11
|
+
<tr><th>Type</th><td><%=config[:type]%></td></tr>
|
12
|
+
<tr><th>Default</th><td>`<%=config[:default]%>`</td></tr>
|
13
|
+
<tr><th>Environ variable</th><td>`<%=config[:env_var]%>`</td></tr>
|
14
|
+
</tbody>
|
15
|
+
</table>
|
27
16
|
|
28
|
-
|
29
|
-
</
|
17
|
+
<%=config[:description]%>
|
18
|
+
</Collapser>
|
30
19
|
<% end %>
|
31
|
-
</
|
20
|
+
</CollapserGroup>
|
32
21
|
<% end %>
|
data/lib/tasks/config.rake
CHANGED
@@ -9,16 +9,15 @@ namespace :newrelic do
|
|
9
9
|
SECTION_DESCRIPTIONS = {
|
10
10
|
GENERAL => 'These settings are available for agent configuration. Some settings depend on your New Relic subscription level.',
|
11
11
|
DISABLING => 'Use these settings to toggle instrumentation types during agent startup.',
|
12
|
-
ATTRIBUTES => '
|
13
|
-
"transaction_tracer" => 'The
|
12
|
+
ATTRIBUTES => '[Attributes](/docs/features/agent-attributes) are key-value pairs containing information that determines the properties of an event or transaction. These key-value pairs can be viewed within transaction traces in APM, traced errors in APM, transaction events in dashboards, and page views in dashboards. You can customize exactly which attributes will be sent to each of these destinations',
|
13
|
+
"transaction_tracer" => 'The [transaction traces](/docs/apm/traces/transaction-traces/transaction-traces) feature collects detailed information from a selection of transactions, including a summary of the calling sequence, a breakdown of time spent, and a list of SQL queries and their query plans (on mysql and postgresql). Available features depend on your New Relic subscription level.',
|
14
14
|
"error_collector" => 'The agent collects and reports all uncaught exceptions by default. These configuration options allow you to customize the error collection.',
|
15
|
-
"browser_monitoring" => '
|
16
|
-
"analytics_events" => '
|
15
|
+
"browser_monitoring" => 'The Browser monitoring [page load timing](/docs/browser/new-relic-browser/page-load-timing/page-load-timing-process) feature (sometimes referred to as real user monitoring or RUM) gives you insight into the performance real users are experiencing with your website. This is accomplished by measuring the time it takes for your users\' browsers to download and render your web pages by injecting a small amount of JavaScript code into the header and footer of each page.',
|
16
|
+
"analytics_events" => '[New Relic dashboards](/docs/query-your-data/explore-query-data/dashboards/introduction-new-relic-one-dashboards) is a resource to gather and visualize data about your software and what it says about your business. With it you can quickly and easily create real-time dashboards to get immediate answers about end-user experiences, clickstreams, mobile activities, and server transactions.'
|
17
17
|
}
|
18
18
|
|
19
19
|
NAME_OVERRIDES = {
|
20
|
-
"slow_sql" => "Slow SQL"
|
21
|
-
"xray_session" => "X-Ray Session"
|
20
|
+
"slow_sql" => "Slow SQL"
|
22
21
|
}
|
23
22
|
|
24
23
|
def output(format)
|
@@ -97,8 +96,9 @@ namespace :newrelic do
|
|
97
96
|
end
|
98
97
|
|
99
98
|
def format_description(value)
|
100
|
-
description =
|
101
|
-
description
|
99
|
+
description = ''
|
100
|
+
description += "<b>DEPRECATED</b> " if value[:deprecated]
|
101
|
+
description += value[:description]
|
102
102
|
description
|
103
103
|
end
|
104
104
|
|
@@ -106,7 +106,7 @@ namespace :newrelic do
|
|
106
106
|
if spec[:default].is_a?(Proc)
|
107
107
|
'(Dynamic)'
|
108
108
|
else
|
109
|
-
"
|
109
|
+
"#{spec[:default].inspect}"
|
110
110
|
end
|
111
111
|
end
|
112
112
|
|
data/lib/tasks/multiverse.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
# This file is distributed under New Relic's license terms.
|
3
|
-
# See https://github.com/newrelic/
|
3
|
+
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
4
4
|
#
|
5
5
|
# Rake task for running Ruby agent multiverse tests. This file may be required
|
6
6
|
# from third party gems. It is also used by the agent itself to run multiverse.
|
@@ -43,11 +43,45 @@ namespace :test do
|
|
43
43
|
|
44
44
|
namespace :multiverse do
|
45
45
|
|
46
|
+
def remove_local_multiverse_databases
|
47
|
+
list_databases_command = %{echo "show databases" | mysql -u root}
|
48
|
+
databases = `#{list_databases_command}`.chomp!.split("\n").select{|s| s =~ /multiverse/}
|
49
|
+
databases.each do |database|
|
50
|
+
puts "Dropping #{database}"
|
51
|
+
`echo "drop database #{database}" | mysql -u root`
|
52
|
+
end
|
53
|
+
rescue => error
|
54
|
+
puts "ERROR: Cannot get MySQL databases..."
|
55
|
+
puts error.message
|
56
|
+
end
|
57
|
+
|
58
|
+
def remove_generated_gemfiles
|
59
|
+
file_path = File.expand_path "test/multiverse/suites"
|
60
|
+
Dir.glob(File.join file_path, "**", "Gemfile*").each do |fn|
|
61
|
+
puts "Removing #{fn.gsub(file_path,'.../suites')}"
|
62
|
+
FileUtils.rm fn
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def remove_generated_gemfile_lockfiles
|
67
|
+
file_path = File.expand_path "test/environments"
|
68
|
+
Dir.glob(File.join file_path, "**", "Gemfile.lock").each do |fn|
|
69
|
+
puts "Removing #{fn.gsub(file_path,'.../environments')}"
|
70
|
+
FileUtils.rm fn
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
46
74
|
task :env do
|
47
75
|
# ENV['SUITES_DIRECTORY'] = File.expand_path('../../test/multiverse/suites', __FILE__)
|
48
76
|
require File.expand_path('../../../test/multiverse/lib/multiverse', __FILE__)
|
49
77
|
end
|
50
78
|
|
79
|
+
task :clobber do
|
80
|
+
remove_local_multiverse_databases
|
81
|
+
remove_generated_gemfiles
|
82
|
+
remove_generated_gemfile_lockfiles
|
83
|
+
end
|
84
|
+
|
51
85
|
desc "Clean cached gemfiles from Bundler.bundle_path"
|
52
86
|
task :clean_gemfile_cache do
|
53
87
|
glob = File.expand_path 'multiverse-cache/Gemfile.*.lock', Bundler.bundle_path
|
data/lib/tasks/newrelic.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
# This file is distributed under New Relic's license terms.
|
3
|
-
# See https://github.com/newrelic/
|
3
|
+
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
4
4
|
#
|
5
5
|
# If you are looking to instrument rake tasks in a Rails environment, but the
|
6
6
|
# task doesn't depend on :environment, this task may be included to ensure that
|
data/lib/tasks/tests.rake
CHANGED
@@ -26,9 +26,14 @@ if defined? Rake::TestTask
|
|
26
26
|
agent_home = File.expand_path(File.join(File.dirname(__FILE__),'..','..'))
|
27
27
|
|
28
28
|
Rake::TestTask.new(:newrelic) do |t|
|
29
|
+
|
30
|
+
file_pattern = ENV["file"]
|
31
|
+
file_pattern = file_pattern.split(",").map{|f| "#{agent_home}/#{f}".gsub("//", "/")} if file_pattern
|
32
|
+
file_pattern ||= "#{agent_home}/test/new_relic/**/*_test.rb"
|
33
|
+
|
29
34
|
t.libs << "#{agent_home}/test"
|
30
35
|
t.libs << "#{agent_home}/lib"
|
31
|
-
t.pattern =
|
36
|
+
t.pattern = Array(file_pattern)
|
32
37
|
t.verbose = true
|
33
38
|
end
|
34
39
|
|
data/newrelic_rpm.gemspec
CHANGED
@@ -10,16 +10,16 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.version = NewRelic::VERSION::STRING
|
11
11
|
s.required_ruby_version = '>= 2.0.0'
|
12
12
|
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
13
|
-
s.authors = [ "
|
13
|
+
s.authors = [ "Aaron Huntsman", "Tanna McClure", "Michael Lang" ]
|
14
14
|
s.date = Time.now.strftime('%Y-%m-%d')
|
15
|
-
s.licenses = ['
|
15
|
+
s.licenses = ['Apache-2.0']
|
16
16
|
s.description = <<-EOS
|
17
17
|
New Relic is a performance management system, developed by New Relic,
|
18
18
|
Inc (http://www.newrelic.com). New Relic provides you with deep
|
19
19
|
information about the performance of your web application as it runs
|
20
|
-
in production. The New Relic Ruby
|
20
|
+
in production. The New Relic Ruby agent is dual-purposed as a either a
|
21
21
|
Gem or plugin, hosted on
|
22
|
-
https://github.com/newrelic/
|
22
|
+
https://github.com/newrelic/newrelic-ruby-agent/
|
23
23
|
EOS
|
24
24
|
s.email = "support@newrelic.com"
|
25
25
|
s.executables = [ "mongrel_rpm", "newrelic_cmd", "newrelic", "nrdebug" ]
|
@@ -31,7 +31,15 @@ EOS
|
|
31
31
|
"newrelic.yml"
|
32
32
|
]
|
33
33
|
|
34
|
-
|
34
|
+
s.metadata = {
|
35
|
+
'bug_tracker_uri' => 'https://github.com/newrelic/newrelic-ruby-agent/issues',
|
36
|
+
'changelog_uri' => 'https://github.com/newrelic/newrelic-ruby-agent/blob/main/CHANGELOG.md',
|
37
|
+
'documentation_uri' => 'https://docs.newrelic.com/docs/agents/ruby-agent',
|
38
|
+
'source_code_uri' => 'https://github.com/newrelic/newrelic-ruby-agent',
|
39
|
+
"homepage_uri" => "https://newrelic.com/ruby",
|
40
|
+
}
|
41
|
+
|
42
|
+
file_list = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|infinite_tracing|\.github)/(?!agent_helper.rb)}) }
|
35
43
|
build_file_path = 'lib/new_relic/build.rb'
|
36
44
|
file_list << build_file_path if File.exist?(build_file_path)
|
37
45
|
s.files = file_list
|
@@ -41,19 +49,16 @@ EOS
|
|
41
49
|
s.rubygems_version = Gem::VERSION
|
42
50
|
s.summary = "New Relic Ruby Agent"
|
43
51
|
|
44
|
-
s.add_development_dependency 'rake', '
|
45
|
-
s.add_development_dependency '
|
46
|
-
s.add_development_dependency '
|
52
|
+
s.add_development_dependency 'rake', '12.3.3'
|
53
|
+
s.add_development_dependency 'rb-inotify', '0.9.10' # locked to support < Ruby 2.3 (and listen 3.0.8)
|
54
|
+
s.add_development_dependency 'listen', '3.0.8' # locked to support < Ruby 2.3
|
55
|
+
s.add_development_dependency 'minitest', '4.7.5'
|
56
|
+
s.add_development_dependency 'mocha', '~> 1.9.0'
|
47
57
|
s.add_development_dependency 'yard'
|
48
|
-
s.add_development_dependency '
|
49
|
-
s.add_development_dependency 'json', '>= 2.0.2' if RUBY_VERSION >= '2.4.0' # possible bundler issue?
|
50
|
-
s.add_development_dependency 'pry-nav', '~> 0.2.4'
|
58
|
+
s.add_development_dependency 'pry-nav', '~> 0.3.0'
|
51
59
|
s.add_development_dependency 'pry-stack_explorer', '~> 0.4.9'
|
60
|
+
s.add_development_dependency 'guard', '~> 2.16.0'
|
61
|
+
s.add_development_dependency 'guard-minitest', '~> 2.4.0'
|
52
62
|
s.add_development_dependency 'hometown', '~> 0.2.5'
|
53
|
-
|
54
|
-
if RUBY_PLATFORM == 'java'
|
55
|
-
s.add_development_dependency 'activerecord-jdbcsqlite3-adapter'
|
56
|
-
else
|
57
|
-
s.add_development_dependency 'sqlite3'
|
58
|
-
end
|
63
|
+
s.add_development_dependency 'bundler'
|
59
64
|
end
|