newrelic_rpm 3.5.8.72 → 3.6.0.74.beta
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +1 -0
- data/CHANGELOG +16 -0
- data/LICENSE +70 -6
- data/init.rb +4 -0
- data/install.rb +4 -0
- data/lib/conditional_vendored_dependency_detection.rb +4 -0
- data/lib/conditional_vendored_metric_parser.rb +4 -0
- data/lib/new_relic/agent/agent.rb +10 -7
- data/lib/new_relic/agent/agent_logger.rb +4 -0
- data/lib/new_relic/agent/audit_logger.rb +4 -0
- data/lib/new_relic/agent/beacon_configuration.rb +4 -0
- data/lib/new_relic/agent/browser_monitoring.rb +4 -0
- data/lib/new_relic/agent/busy_calculator.rb +7 -6
- data/lib/new_relic/agent/chained_call.rb +4 -0
- data/lib/new_relic/agent/configuration/defaults.rb +4 -0
- data/lib/new_relic/agent/configuration/environment_source.rb +4 -0
- data/lib/new_relic/agent/configuration/manager.rb +4 -0
- data/lib/new_relic/agent/configuration/mask_defaults.rb +4 -0
- data/lib/new_relic/agent/configuration/server_source.rb +4 -0
- data/lib/new_relic/agent/configuration/yaml_source.rb +5 -1
- data/lib/new_relic/agent/configuration.rb +4 -0
- data/lib/new_relic/agent/cross_app_monitor.rb +9 -10
- data/lib/new_relic/agent/cross_app_tracing.rb +6 -18
- data/lib/new_relic/agent/database.rb +4 -0
- data/lib/new_relic/agent/error_collector.rb +23 -10
- data/lib/new_relic/agent/event_listener.rb +4 -0
- data/lib/new_relic/agent/instrumentation/active_merchant.rb +4 -0
- data/lib/new_relic/agent/instrumentation/active_record.rb +4 -0
- data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +4 -0
- data/lib/new_relic/agent/instrumentation/authlogic.rb +4 -0
- data/lib/new_relic/agent/instrumentation/browser_monitoring_timings.rb +4 -0
- data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +5 -8
- data/lib/new_relic/agent/instrumentation/data_mapper.rb +5 -1
- data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +4 -0
- data/lib/new_relic/agent/instrumentation/memcache.rb +4 -0
- data/lib/new_relic/agent/instrumentation/merb/controller.rb +4 -0
- data/lib/new_relic/agent/instrumentation/merb/errors.rb +4 -0
- data/lib/new_relic/agent/instrumentation/metric_frame/pop.rb +5 -1
- data/lib/new_relic/agent/instrumentation/metric_frame.rb +15 -18
- data/lib/new_relic/agent/instrumentation/net.rb +4 -2
- data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +4 -0
- data/lib/new_relic/agent/instrumentation/queue_time.rb +6 -2
- data/lib/new_relic/agent/instrumentation/rack.rb +4 -0
- data/lib/new_relic/agent/instrumentation/rails/action_controller.rb +4 -0
- data/lib/new_relic/agent/instrumentation/rails/action_web_service.rb +4 -0
- data/lib/new_relic/agent/instrumentation/rails/errors.rb +4 -0
- data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +4 -0
- data/lib/new_relic/agent/instrumentation/rails3/errors.rb +4 -0
- data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +26 -0
- data/lib/new_relic/agent/instrumentation/resque.rb +4 -0
- data/lib/new_relic/agent/instrumentation/sidekiq.rb +36 -0
- data/lib/new_relic/agent/instrumentation/sinatra.rb +4 -0
- data/lib/new_relic/agent/instrumentation/sunspot.rb +4 -0
- data/lib/new_relic/agent/instrumentation/unicorn_instrumentation.rb +4 -0
- data/lib/new_relic/agent/instrumentation.rb +4 -0
- data/lib/new_relic/agent/method_tracer.rb +26 -31
- data/lib/new_relic/agent/new_relic_service.rb +7 -6
- data/lib/new_relic/agent/pipe_channel_manager.rb +58 -15
- data/lib/new_relic/agent/pipe_service.rb +13 -6
- data/lib/new_relic/agent/rules_engine.rb +4 -0
- data/lib/new_relic/agent/sampler.rb +4 -0
- data/lib/new_relic/agent/samplers/cpu_sampler.rb +20 -12
- data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +15 -12
- data/lib/new_relic/agent/samplers/memory_sampler.rb +9 -5
- data/lib/new_relic/agent/samplers/object_sampler.rb +6 -6
- data/lib/new_relic/agent/shim_agent.rb +4 -0
- data/lib/new_relic/agent/sql_sampler.rb +4 -0
- data/lib/new_relic/agent/stats.rb +3 -0
- data/lib/new_relic/agent/stats_engine/gc_profiler.rb +8 -4
- data/lib/new_relic/agent/stats_engine/metric_stats.rb +13 -13
- data/lib/new_relic/agent/stats_engine/samplers.rb +6 -3
- data/lib/new_relic/agent/stats_engine/stats_hash.rb +4 -0
- data/lib/new_relic/agent/stats_engine/transactions.rb +4 -0
- data/lib/new_relic/agent/stats_engine.rb +4 -0
- data/lib/new_relic/agent/thread.rb +4 -0
- data/lib/new_relic/agent/thread_profiler.rb +4 -0
- data/lib/new_relic/agent/transaction_info.rb +4 -0
- data/lib/new_relic/agent/transaction_sample_builder.rb +4 -0
- data/lib/new_relic/agent/transaction_sampler.rb +4 -0
- data/lib/new_relic/agent/worker_loop.rb +4 -0
- data/lib/new_relic/agent.rb +7 -3
- data/lib/new_relic/build.rb +2 -2
- data/lib/new_relic/coerce.rb +4 -0
- data/lib/new_relic/collection_helper.rb +4 -0
- data/lib/new_relic/command.rb +4 -0
- data/lib/new_relic/commands/deployments.rb +4 -0
- data/lib/new_relic/commands/install.rb +4 -0
- data/lib/new_relic/control/class_methods.rb +4 -0
- data/lib/new_relic/control/frameworks/external.rb +4 -0
- data/lib/new_relic/control/frameworks/merb.rb +4 -0
- data/lib/new_relic/control/frameworks/rails.rb +4 -0
- data/lib/new_relic/control/frameworks/rails3.rb +4 -0
- data/lib/new_relic/control/frameworks/rails4.rb +4 -0
- data/lib/new_relic/control/frameworks/ruby.rb +4 -0
- data/lib/new_relic/control/frameworks/sinatra.rb +4 -0
- data/lib/new_relic/control/frameworks.rb +4 -0
- data/lib/new_relic/control/instance_methods.rb +4 -0
- data/lib/new_relic/control/instrumentation.rb +4 -0
- data/lib/new_relic/control/profiling.rb +4 -0
- data/lib/new_relic/control/server_methods.rb +4 -0
- data/lib/new_relic/control.rb +4 -0
- data/lib/new_relic/delayed_job_injection.rb +4 -0
- data/lib/new_relic/helper.rb +4 -1
- data/lib/new_relic/language_support.rb +4 -0
- data/lib/new_relic/latest_changes.rb +5 -1
- data/lib/new_relic/local_environment.rb +18 -1
- data/lib/new_relic/merbtasks.rb +4 -0
- data/lib/new_relic/metric_data.rb +4 -0
- data/lib/new_relic/metric_spec.rb +4 -0
- data/lib/new_relic/metrics.rb +4 -0
- data/lib/new_relic/noticed_error.rb +4 -0
- data/lib/new_relic/okjson.rb +4 -1
- data/lib/new_relic/rack/agent_hooks.rb +4 -0
- data/lib/new_relic/rack/browser_monitoring.rb +4 -0
- data/lib/new_relic/rack/developer_mode.rb +4 -0
- data/lib/new_relic/rack/error_collector.rb +4 -0
- data/lib/new_relic/rack.rb +4 -0
- data/lib/new_relic/recipes.rb +4 -0
- data/lib/new_relic/timer_lib.rb +4 -0
- data/lib/new_relic/transaction_analysis/segment_summary.rb +4 -0
- data/lib/new_relic/transaction_analysis.rb +4 -0
- data/lib/new_relic/transaction_sample/composite_segment.rb +4 -0
- data/lib/new_relic/transaction_sample/fake_segment.rb +4 -0
- data/lib/new_relic/transaction_sample/segment.rb +4 -0
- data/lib/new_relic/transaction_sample/summary_segment.rb +4 -0
- data/lib/new_relic/transaction_sample.rb +4 -0
- data/lib/new_relic/url_rule.rb +4 -0
- data/lib/new_relic/version.rb +6 -2
- data/lib/newrelic_rpm.rb +4 -0
- data/lib/tasks/all.rb +4 -0
- data/recipes/newrelic.rb +4 -0
- data/test/active_record_fixtures.rb +4 -0
- data/test/config/test_control.rb +4 -0
- data/test/intentional_fail.rb +4 -0
- data/test/multiverse/lib/multiverse/color.rb +4 -0
- data/test/multiverse/lib/multiverse/envfile.rb +4 -0
- data/test/multiverse/lib/multiverse/environment.rb +4 -0
- data/test/multiverse/lib/multiverse/output_collector.rb +4 -0
- data/test/multiverse/lib/multiverse/runner.rb +4 -0
- data/test/multiverse/lib/multiverse/suite.rb +4 -0
- data/test/multiverse/suites/active_record/ar_method_aliasing.rb +4 -0
- data/test/multiverse/suites/active_record/encoding_test.rb +4 -0
- data/test/multiverse/suites/agent_only/audit_log_test.rb +4 -0
- data/test/multiverse/suites/agent_only/cross_application_tracing_test.rb +4 -0
- data/test/multiverse/suites/agent_only/http_response_code_test.rb +4 -0
- data/test/multiverse/suites/agent_only/key_transactions_test.rb +4 -0
- data/test/multiverse/suites/agent_only/logging_test.rb +4 -0
- data/test/multiverse/suites/agent_only/marshaling_test.rb +4 -0
- data/test/multiverse/suites/agent_only/method_visibility_test.rb +4 -0
- data/test/multiverse/suites/agent_only/no_dns_resolv.rb +4 -0
- data/test/multiverse/suites/agent_only/pipe_manager_test.rb +4 -0
- data/test/multiverse/suites/agent_only/rename_rule_test.rb +4 -0
- data/test/multiverse/suites/agent_only/rum_instrumentation_test.rb +4 -0
- data/test/multiverse/suites/agent_only/service_timeout_test.rb +4 -0
- data/test/multiverse/suites/agent_only/ssl_test.rb +4 -0
- data/test/multiverse/suites/agent_only/start_up_test.rb +4 -0
- data/test/multiverse/suites/agent_only/test_trace_method_with_punctuation.rb +4 -0
- data/test/multiverse/suites/agent_only/test_trace_transaction_with_punctuation.rb +4 -0
- data/test/multiverse/suites/agent_only/testing_app.rb +4 -0
- data/test/multiverse/suites/agent_only/thread_profiling_test.rb +4 -0
- data/test/multiverse/suites/config_file_loading/config_file_loading_test.rb +4 -0
- data/test/multiverse/suites/datamapper/encoding_test.rb +4 -0
- data/test/multiverse/suites/rails/app.rb +4 -0
- data/test/multiverse/suites/rails/error_tracing_test.rb +4 -0
- data/test/multiverse/suites/rails/gc_instrumentation_test.rb +4 -0
- data/test/multiverse/suites/rails/queue_time_test.rb +4 -0
- data/test/multiverse/suites/rails/view_instrumentation_test.rb +4 -0
- data/test/multiverse/suites/resque/instrumentation_test.rb +5 -1
- data/test/multiverse/suites/resque/resque_setup.rb +4 -0
- data/test/multiverse/suites/sidekiq/Envfile +21 -0
- data/test/multiverse/suites/sidekiq/app.rb +25 -0
- data/test/multiverse/suites/sidekiq/config/newrelic.yml +22 -0
- data/test/multiverse/suites/sidekiq/log/.gitkeep +0 -0
- data/test/multiverse/suites/sidekiq/sidekiq_instrumentation_test.rb +137 -0
- data/test/multiverse/suites/sinatra/sinatra_error_tracing_test.rb +4 -0
- data/test/multiverse/suites/sinatra/sinatra_metric_explosion_test.rb +4 -0
- data/test/multiverse/suites/sinatra/sinatra_routes_test.rb +4 -0
- data/test/multiverse/suites/sinatra/sinatra_test.rb +4 -0
- data/test/multiverse/test/multiverse_test.rb +4 -0
- data/test/multiverse/test/suite_examples/one/a/a_test.rb +4 -0
- data/test/multiverse/test/suite_examples/one/b/b_test.rb +4 -0
- data/test/multiverse/test/suite_examples/three/a/fail_test.rb +4 -0
- data/test/multiverse/test/suite_examples/three/b/win_test.rb +4 -0
- data/test/multiverse/test/suite_examples/two/a/fail_test.rb +4 -0
- data/test/new_relic/agent/agent/connect_test.rb +4 -0
- data/test/new_relic/agent/agent/start_test.rb +4 -0
- data/test/new_relic/agent/agent/start_worker_thread_test.rb +4 -0
- data/test/new_relic/agent/agent_logger_test.rb +4 -0
- data/test/new_relic/agent/agent_test.rb +6 -1
- data/test/new_relic/agent/agent_test_controller.rb +4 -0
- data/test/new_relic/agent/agent_test_controller_test.rb +4 -0
- data/test/new_relic/agent/apdex_from_server_test.rb +4 -0
- data/test/new_relic/agent/audit_logger_test.rb +4 -0
- data/test/new_relic/agent/beacon_configuration_test.rb +4 -0
- data/test/new_relic/agent/browser_monitoring_test.rb +4 -0
- data/test/new_relic/agent/busy_calculator_test.rb +6 -2
- data/test/new_relic/agent/configuration/environment_source_test.rb +4 -0
- data/test/new_relic/agent/configuration/manager_test.rb +4 -0
- data/test/new_relic/agent/configuration/server_source_test.rb +4 -0
- data/test/new_relic/agent/configuration/yaml_source_test.rb +4 -0
- data/test/new_relic/agent/cross_app_monitor_test.rb +12 -8
- data/test/new_relic/agent/database_test.rb +4 -0
- data/test/new_relic/agent/error_collector/notice_error_test.rb +4 -0
- data/test/new_relic/agent/error_collector_test.rb +4 -0
- data/test/new_relic/agent/event_listener_test.rb +4 -0
- data/test/new_relic/agent/instrumentation/active_record_instrumentation_test.rb +4 -0
- data/test/new_relic/agent/instrumentation/browser_monitoring_timings_test.rb +4 -0
- data/test/new_relic/agent/instrumentation/controller_instrumentation_test.rb +4 -0
- data/test/new_relic/agent/instrumentation/instrumentation_test.rb +4 -0
- data/test/new_relic/agent/instrumentation/metric_frame/pop_test.rb +4 -0
- data/test/new_relic/agent/instrumentation/metric_frame_test.rb +4 -0
- data/test/new_relic/agent/instrumentation/net_instrumentation_test.rb +3 -0
- data/test/new_relic/agent/instrumentation/queue_time_test.rb +4 -0
- data/test/new_relic/agent/instrumentation/rack_test.rb +4 -0
- data/test/new_relic/agent/instrumentation/sinatra_test.rb +4 -0
- data/test/new_relic/agent/instrumentation/task_instrumentation_test.rb +4 -0
- data/test/new_relic/agent/memcache_instrumentation_test.rb +4 -0
- data/test/new_relic/agent/method_tracer/class_methods/add_method_tracer_test.rb +4 -0
- data/test/new_relic/agent/method_tracer/instance_methods/trace_execution_scoped_test.rb +48 -26
- data/test/new_relic/agent/method_tracer_test.rb +4 -0
- data/test/new_relic/agent/mock_scope_listener.rb +4 -0
- data/test/new_relic/agent/new_relic_service_test.rb +4 -0
- data/test/new_relic/agent/pipe_channel_manager_test.rb +24 -6
- data/test/new_relic/agent/pipe_service_test.rb +6 -10
- data/test/new_relic/agent/rpm_agent_test.rb +4 -0
- data/test/new_relic/agent/rules_engine_test.rb +4 -0
- data/test/new_relic/agent/sampler_test.rb +4 -0
- data/test/new_relic/agent/shim_agent_test.rb +4 -0
- data/test/new_relic/agent/sql_sampler_test.rb +4 -0
- data/test/new_relic/agent/stats_engine/gc_profiler_test.rb +4 -0
- data/test/new_relic/agent/stats_engine/metric_stats_test.rb +21 -17
- data/test/new_relic/agent/stats_engine/samplers_test.rb +20 -10
- data/test/new_relic/agent/stats_engine_test.rb +4 -0
- data/test/new_relic/agent/stats_hash_test.rb +4 -0
- data/test/new_relic/agent/stats_test.rb +4 -0
- data/test/new_relic/agent/thread_profiler_test.rb +4 -0
- data/test/new_relic/agent/thread_test.rb +4 -0
- data/test/new_relic/agent/threaded_test.rb +4 -0
- data/test/new_relic/agent/transaction_info_test.rb +4 -0
- data/test/new_relic/agent/transaction_sample_builder_test.rb +4 -0
- data/test/new_relic/agent/transaction_sampler_test.rb +5 -1
- data/test/new_relic/agent/worker_loop_test.rb +4 -0
- data/test/new_relic/agent_test.rb +7 -3
- data/test/new_relic/coerce_test.rb +4 -0
- data/test/new_relic/collection_helper_test.rb +4 -0
- data/test/new_relic/command/deployments_test.rb +4 -0
- data/test/new_relic/control/class_methods_test.rb +4 -0
- data/test/new_relic/control/frameworks/rails_test.rb +4 -0
- data/test/new_relic/control_test.rb +4 -0
- data/test/new_relic/delayed_job_injection_test.rb +4 -0
- data/test/new_relic/dispatcher_test.rb +4 -0
- data/test/new_relic/fake_collector.rb +16 -4
- data/test/new_relic/framework_test.rb +4 -0
- data/test/new_relic/helper_test.rb +4 -1
- data/test/new_relic/license_test.rb +127 -0
- data/test/new_relic/load_test.rb +4 -0
- data/test/new_relic/local_environment_test.rb +4 -0
- data/test/new_relic/metric_data_test.rb +4 -0
- data/test/new_relic/metric_parser/metric_parser_test.rb +4 -0
- data/test/new_relic/metric_spec_test.rb +4 -0
- data/test/new_relic/noticed_error_test.rb +4 -0
- data/test/new_relic/rack/agent_hooks_test.rb +4 -0
- data/test/new_relic/rack/all_test.rb +4 -0
- data/test/new_relic/rack/browser_monitoring_test.rb +4 -0
- data/test/new_relic/rack/developer_mode_helper_test.rb +4 -0
- data/test/new_relic/rack/developer_mode_test.rb +4 -0
- data/test/new_relic/rack/error_collector_test.rb +4 -0
- data/test/new_relic/transaction_analysis/segment_summary_test.rb +4 -0
- data/test/new_relic/transaction_analysis_test.rb +4 -0
- data/test/new_relic/transaction_sample/composite_segment_test.rb +4 -0
- data/test/new_relic/transaction_sample/fake_segment_test.rb +4 -0
- data/test/new_relic/transaction_sample/segment_test.rb +4 -0
- data/test/new_relic/transaction_sample/summary_segment_test.rb +4 -0
- data/test/new_relic/transaction_sample_subtest_test.rb +4 -0
- data/test/new_relic/transaction_sample_test.rb +4 -0
- data/test/new_relic/version_number_test.rb +4 -0
- data/test/test_contexts.rb +4 -0
- data/test/test_helper.rb +4 -0
- data/ui/helpers/developer_mode_helper.rb +4 -0
- data/ui/helpers/google_pie_chart.rb +4 -0
- data/ui/views/newrelic/file/javascript/jquery-1.4.2.js +3 -0
- data/ui/views/newrelic/file/javascript/transaction_sample.js +3 -0
- data/ui/views/newrelic/index.rhtml +2 -2
- data/vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection/version.rb +4 -0
- data/vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/metric_parser.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/action_mailer.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/active_merchant.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/active_record.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/apdex.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/background_transaction.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/client.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller_cpu.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller_ext.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/database.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/database_pool.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/dot_net.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/dot_net_parser.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/errors.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/external.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/frontend.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/gc.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/hibernate_session.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/java.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/java_parser.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/jsp.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/jsp_tag.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/mem_cache.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/metric_parser.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/orm.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/other_transaction.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_context_listener.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_filter.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_init.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/solr.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/solr_request_handler.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring_controller.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring_view.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/struts_action.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/struts_result.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/version.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/view.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_frontend.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_service.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_transaction.rb +4 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser.rb +4 -0
- data.tar.gz.sig +0 -0
- metadata +47 -19
- metadata.gz.sig +0 -0
- data/vendor/gems/dependency_detection-0.0.1.build/LICENSE +0 -5
@@ -1,3 +1,7 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# This file is distributed under New Relic's license terms.
|
3
|
+
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
|
4
|
+
|
1
5
|
module NewRelic
|
2
6
|
module Agent
|
3
7
|
# This class collects errors from the parent application, storing
|
@@ -16,12 +20,15 @@ module NewRelic
|
|
16
20
|
# memory and data retention
|
17
21
|
MAX_ERROR_QUEUE_LENGTH = 20 unless defined? MAX_ERROR_QUEUE_LENGTH
|
18
22
|
|
23
|
+
# This ivar is used to tag exceptions that we've alreday seen, so that we
|
24
|
+
# don't double-count them.
|
25
|
+
EXCEPTION_TAG_IVAR = :@__new_relic_exception_tag
|
26
|
+
|
19
27
|
attr_accessor :errors
|
20
28
|
|
21
29
|
# Returns a new error collector
|
22
30
|
def initialize
|
23
31
|
@errors = []
|
24
|
-
@seen_error_ids = []
|
25
32
|
|
26
33
|
# lookup of exception class names to ignore. Hash for fast access
|
27
34
|
@ignore = {}
|
@@ -93,17 +100,26 @@ module NewRelic
|
|
93
100
|
error && filtered_error?(error)
|
94
101
|
end
|
95
102
|
|
103
|
+
def seen?(exception)
|
104
|
+
exception.instance_variable_get(EXCEPTION_TAG_IVAR)
|
105
|
+
end
|
106
|
+
|
107
|
+
def tag_as_seen(exception)
|
108
|
+
exception.instance_variable_set(EXCEPTION_TAG_IVAR, true)
|
109
|
+
end
|
110
|
+
|
96
111
|
# Increments a statistic that tracks total error rate
|
97
112
|
# Be sure not to double-count same exception. This clears per harvest.
|
98
113
|
def increment_error_count!(exception)
|
99
|
-
return if
|
100
|
-
|
101
|
-
|
102
|
-
NewRelic::Agent.get_stats("Errors/all").increment_count
|
114
|
+
return if seen?(exception)
|
115
|
+
tag_as_seen(exception)
|
103
116
|
|
104
117
|
txn_info = NewRelic::Agent::TransactionInfo.get
|
105
|
-
|
106
|
-
|
118
|
+
metric_names = ["Errors/all"]
|
119
|
+
metric_names << "Errors/#{txn_info.transaction_name}" if txn_info.transaction_name_set?
|
120
|
+
stats_engine = NewRelic::Agent.agent.stats_engine
|
121
|
+
stats_engine.record_metrics(metric_names) do |stats|
|
122
|
+
stats.increment_count
|
107
123
|
end
|
108
124
|
end
|
109
125
|
|
@@ -251,9 +267,6 @@ module NewRelic
|
|
251
267
|
errors = @errors
|
252
268
|
@errors = []
|
253
269
|
|
254
|
-
# Only expect to re-see errors on same request, so clear on harvest
|
255
|
-
@seen_error_ids = []
|
256
|
-
|
257
270
|
if unsent_errors && !unsent_errors.empty?
|
258
271
|
errors = unsent_errors + errors
|
259
272
|
end
|
@@ -1,3 +1,7 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# This file is distributed under New Relic's license terms.
|
3
|
+
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
|
4
|
+
|
1
5
|
module NewRelic::Agent
|
2
6
|
# Basic mechanism for the agent instance to provide agent-wide eventing.
|
3
7
|
# It is intended to keep different pieces of the app decoupled from each other.
|
@@ -1,3 +1,7 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# This file is distributed under New Relic's license terms.
|
3
|
+
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
|
4
|
+
|
1
5
|
require 'new_relic/agent/instrumentation/metric_frame'
|
2
6
|
require 'new_relic/agent/instrumentation/queue_time'
|
3
7
|
module NewRelic
|
@@ -455,7 +459,7 @@ module NewRelic
|
|
455
459
|
# Always subtrace 1 for the active mongrel
|
456
460
|
queue_depth = [mongrel.workers.list.length.to_i - 1, 0].max rescue nil
|
457
461
|
end
|
458
|
-
NewRelic::Agent.
|
462
|
+
NewRelic::Agent.record_metric('Mongrel/Queue Length', queue_depth) if queue_depth
|
459
463
|
end
|
460
464
|
end
|
461
465
|
|
@@ -472,13 +476,6 @@ module NewRelic
|
|
472
476
|
::NewRelic::Agent.logger.error("Error detecting upstream wait time:", e)
|
473
477
|
now
|
474
478
|
end
|
475
|
-
|
476
|
-
# returns the NewRelic::Agent::Stats object associated
|
477
|
-
# with the dispatcher time measurement
|
478
|
-
def _dispatch_stat
|
479
|
-
NewRelic::Agent.agent.stats_engine.get_stats_no_scope 'HttpDispatcher'
|
480
|
-
end
|
481
|
-
|
482
479
|
end
|
483
480
|
end
|
484
481
|
end
|
@@ -1,3 +1,7 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# This file is distributed under New Relic's license terms.
|
3
|
+
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
|
4
|
+
|
1
5
|
## NewRelic instrumentation for DataMapper
|
2
6
|
#
|
3
7
|
# Instrumenting DM has different key challenges versus AR:
|
@@ -205,7 +209,7 @@ module NewRelic
|
|
205
209
|
# Record query duration associated with each of the desired metrics.
|
206
210
|
metrics = [ "ActiveRecord/#{operation}", 'ActiveRecord/all' ]
|
207
211
|
metrics.each do |metric|
|
208
|
-
NewRelic::Agent.
|
212
|
+
NewRelic::Agent.record_metric(metric, duration)
|
209
213
|
end
|
210
214
|
ensure
|
211
215
|
super
|
@@ -1,3 +1,7 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# This file is distributed under New Relic's license terms.
|
3
|
+
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
|
4
|
+
|
1
5
|
# NOTE there are multiple implementations of the MemCache client in Ruby,
|
2
6
|
# each with slightly different API's and semantics.
|
3
7
|
# See:
|
@@ -1,3 +1,7 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# This file is distributed under New Relic's license terms.
|
3
|
+
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
|
4
|
+
|
1
5
|
require 'new_relic/agent/instrumentation'
|
2
6
|
module NewRelic
|
3
7
|
module Agent
|
@@ -43,7 +47,7 @@ module NewRelic
|
|
43
47
|
# process doesn't work on JRuby. See the cpu_sampler.rb file
|
44
48
|
# to understand where cpu is recorded for non-jruby processes
|
45
49
|
def record_jruby_cpu_burn(burn)
|
46
|
-
NewRelic::Agent.
|
50
|
+
NewRelic::Agent.record_metric(NewRelic::Metrics::USER_TIME, burn)
|
47
51
|
end
|
48
52
|
|
49
53
|
def cpu_burn
|
@@ -1,3 +1,7 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# This file is distributed under New Relic's license terms.
|
3
|
+
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
|
4
|
+
|
1
5
|
require 'new_relic/agent/instrumentation/metric_frame/pop'
|
2
6
|
|
3
7
|
# A struct holding the information required to measure a controller
|
@@ -300,30 +304,19 @@ module NewRelic
|
|
300
304
|
end
|
301
305
|
|
302
306
|
def self.record_apdex(current_metric, action_duration, total_duration, is_error)
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
update_apdex(controller_stat, action_duration, is_error)
|
310
|
-
end
|
311
|
-
|
312
|
-
# Apdex min and max values should be initialized to the
|
313
|
-
# current apdex_t
|
314
|
-
def self.initialize_apdex(metric_name)
|
315
|
-
stats = agent.stats_engine.get_stats_no_scope(metric_name)
|
316
|
-
apdex_t = TransactionInfo.get.apdex_t
|
317
|
-
stats.min_call_time = apdex_t
|
318
|
-
stats.max_call_time = apdex_t
|
319
|
-
return stats
|
307
|
+
agent.stats_engine.record_metrics('Apdex') do |stat|
|
308
|
+
update_apdex(stat, total_duration, is_error)
|
309
|
+
end
|
310
|
+
agent.stats_engine.record_metrics(current_metric.apdex_metric_path) do |stat|
|
311
|
+
update_apdex(stat, action_duration, is_error)
|
312
|
+
end
|
320
313
|
end
|
321
314
|
|
322
315
|
# Record an apdex value for the given stat. when `failed`
|
323
316
|
# the apdex should be recorded as a failure regardless of duration.
|
324
317
|
def self.update_apdex(stat, duration, failed)
|
325
|
-
duration = duration.to_f
|
326
318
|
apdex_t = TransactionInfo.get.apdex_t
|
319
|
+
duration = duration.to_f
|
327
320
|
case
|
328
321
|
when failed
|
329
322
|
stat.record_apdex_f
|
@@ -334,6 +327,10 @@ module NewRelic
|
|
334
327
|
else
|
335
328
|
stat.record_apdex_f
|
336
329
|
end
|
330
|
+
# Apdex min and max values should be initialized to the
|
331
|
+
# current apdex_t
|
332
|
+
stat.min_call_time = apdex_t
|
333
|
+
stat.max_call_time = apdex_t
|
337
334
|
end
|
338
335
|
|
339
336
|
private
|
@@ -1,4 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
+
# This file is distributed under New Relic's license terms.
|
3
|
+
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
|
4
|
+
|
2
5
|
|
3
6
|
DependencyDetection.defer do
|
4
7
|
@name = :net
|
@@ -6,7 +9,7 @@ DependencyDetection.defer do
|
|
6
9
|
depends_on do
|
7
10
|
defined?(Net) && defined?(Net::HTTP)
|
8
11
|
end
|
9
|
-
|
12
|
+
|
10
13
|
executes do
|
11
14
|
::NewRelic::Agent.logger.info 'Installing Net instrumentation'
|
12
15
|
require 'new_relic/agent/cross_app_tracing'
|
@@ -25,7 +28,6 @@ DependencyDetection.defer do
|
|
25
28
|
|
26
29
|
alias request_without_newrelic_trace request
|
27
30
|
alias request request_with_newrelic_trace
|
28
|
-
|
29
31
|
end
|
30
32
|
end
|
31
33
|
end
|
@@ -1,3 +1,7 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# This file is distributed under New Relic's license terms.
|
3
|
+
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
|
4
|
+
|
1
5
|
module NewRelic
|
2
6
|
module Agent
|
3
7
|
module Instrumentation
|
@@ -36,8 +40,8 @@ module NewRelic
|
|
36
40
|
end
|
37
41
|
|
38
42
|
def record_frontend_metrics(start_time, now=Time.now)
|
39
|
-
NewRelic::Agent.instance.stats_engine.
|
40
|
-
|
43
|
+
NewRelic::Agent.instance.stats_engine.record_metrics(
|
44
|
+
ALL_QUEUE_METRIC, (now - start_time).to_f, :scoped => true)
|
41
45
|
end
|
42
46
|
|
43
47
|
def timestamp_string_from_header_value(value)
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# This file is distributed under New Relic's license terms.
|
3
|
+
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
|
4
|
+
|
5
|
+
DependencyDetection.defer do
|
6
|
+
@name = :rainbows
|
7
|
+
|
8
|
+
depends_on do
|
9
|
+
defined?(::Rainbows) && defined?(::Rainbows::HttpServer)
|
10
|
+
end
|
11
|
+
|
12
|
+
executes do
|
13
|
+
::NewRelic::Agent.logger.info 'Installing Rainbows instrumentation'
|
14
|
+
::NewRelic::Agent.logger.info 'Detected Rainbows, please see additional documentation: https://newrelic.com/docs/troubleshooting/im-using-unicorn-and-i-dont-see-any-data'
|
15
|
+
end
|
16
|
+
|
17
|
+
executes do
|
18
|
+
Rainbows::HttpServer.class_eval do
|
19
|
+
old_worker_loop = instance_method(:worker_loop)
|
20
|
+
define_method(:worker_loop) do |worker|
|
21
|
+
NewRelic::Agent.after_fork(:force_reconnect => true)
|
22
|
+
old_worker_loop.bind(self).call(worker)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# This file is distributed under New Relic's license terms.
|
3
|
+
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
|
4
|
+
|
5
|
+
DependencyDetection.defer do
|
6
|
+
@name = :sidekiq
|
7
|
+
|
8
|
+
depends_on do
|
9
|
+
defined?(::Sidekiq) && !NewRelic::Agent.config[:disable_sidekiq]
|
10
|
+
end
|
11
|
+
|
12
|
+
executes do
|
13
|
+
::NewRelic::Agent.logger.info 'Installing Sidekiq instrumentation'
|
14
|
+
end
|
15
|
+
|
16
|
+
executes do
|
17
|
+
class NewRelic::SidekiqInstrumentation
|
18
|
+
include NewRelic::Agent::Instrumentation::ControllerInstrumentation
|
19
|
+
|
20
|
+
def call(worker, msg, queue)
|
21
|
+
perform_action_with_newrelic_trace(
|
22
|
+
:name => 'perform',
|
23
|
+
:class_name => msg['class'],
|
24
|
+
:category => 'OtherTransaction/SidekiqJob') do
|
25
|
+
yield
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
Sidekiq.configure_server do |config|
|
31
|
+
config.server_middleware do |chain|
|
32
|
+
chain.add NewRelic::SidekiqInstrumentation
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|