newrelic_rpm 3.17.2.327 → 3.18.0.329
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +32 -10
- data/CHANGELOG.md +43 -3
- data/Rakefile +0 -21
- data/lib/new_relic/agent/cross_app_tracing.rb +34 -269
- data/lib/new_relic/agent/http_clients/curb_wrappers.rb +10 -2
- data/lib/new_relic/agent/http_clients/excon_wrappers.rb +18 -9
- data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +12 -6
- data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +13 -6
- data/lib/new_relic/agent/http_clients/net_http_wrappers.rb +13 -6
- data/lib/new_relic/agent/http_clients/typhoeus_wrappers.rb +14 -3
- data/lib/new_relic/agent/instrumentation/action_cable_subscriber.rb +10 -15
- data/lib/new_relic/agent/instrumentation/action_controller_subscriber.rb +4 -7
- data/lib/new_relic/agent/instrumentation/action_view_subscriber.rb +4 -19
- data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +0 -1
- data/lib/new_relic/agent/instrumentation/curb.rb +9 -7
- data/lib/new_relic/agent/instrumentation/evented_subscriber.rb +4 -0
- data/lib/new_relic/agent/instrumentation/excon/connection.rb +15 -5
- data/lib/new_relic/agent/instrumentation/excon/middleware.rb +17 -12
- data/lib/new_relic/agent/instrumentation/http.rb +12 -5
- data/lib/new_relic/agent/instrumentation/httpclient.rb +13 -4
- data/lib/new_relic/agent/instrumentation/net.rb +13 -2
- data/lib/new_relic/agent/instrumentation/rails5/action_controller.rb +2 -10
- data/lib/new_relic/agent/instrumentation/typhoeus.rb +8 -3
- data/lib/new_relic/agent/method_tracer_helpers.rb +3 -1
- data/lib/new_relic/agent/parameter_filtering.rb +1 -1
- data/lib/new_relic/agent/stats_engine/metric_stats.rb +0 -18
- data/lib/new_relic/agent/supported_versions.rb +1 -0
- data/lib/new_relic/agent/transaction/abstract_segment.rb +7 -9
- data/lib/new_relic/agent/transaction/external_request_segment.rb +139 -0
- data/lib/new_relic/agent/transaction/segment.rb +1 -1
- data/lib/new_relic/agent/transaction/tracing.rb +10 -1
- data/lib/new_relic/recipes/capistrano3.rb +3 -1
- data/lib/new_relic/version.rb +2 -2
- data/lib/tasks/multiverse.rb +27 -7
- data/test/environments/rails42/Gemfile +1 -0
- data/test/multiverse/lib/multiverse.rb +32 -0
- data/test/multiverse/lib/multiverse/runner.rb +2 -2
- data/test/multiverse/lib/multiverse/suite.rb +43 -22
- data/test/multiverse/suites/active_record/Envfile +3 -1
- data/test/multiverse/suites/activemerchant/Envfile +5 -1
- data/test/multiverse/suites/agent_only/Envfile +1 -0
- data/test/multiverse/suites/capistrano/deployment_test.rb +6 -9
- data/test/multiverse/suites/capistrano2/deployment_test.rb +6 -6
- data/test/multiverse/suites/curb/curb_test.rb +2 -3
- data/test/multiverse/suites/datamapper/Envfile +4 -0
- data/test/multiverse/suites/datamapper/datamapper_test.rb +106 -36
- data/test/multiverse/suites/delayed_job/Envfile +3 -3
- data/test/multiverse/suites/excon/excon_test.rb +1 -1
- data/test/multiverse/suites/grape/grape_test.rb +1 -1
- data/test/multiverse/suites/grape/grape_test_api.rb +1 -1
- data/test/multiverse/suites/grape/grape_versioning_test.rb +1 -1
- data/test/multiverse/suites/grape/grape_versioning_test_api.rb +1 -1
- data/test/multiverse/suites/grape/unsupported_version_test.rb +1 -1
- data/test/multiverse/suites/httpclient/Envfile +2 -0
- data/test/multiverse/suites/httpclient/httpclient_test.rb +1 -1
- data/test/multiverse/suites/httprb/Envfile +2 -0
- data/test/multiverse/suites/httprb/httprb_test.rb +1 -1
- data/test/multiverse/suites/json/Envfile +7 -2
- data/test/multiverse/suites/memcached/Envfile +2 -0
- data/test/multiverse/suites/mongo/Envfile +2 -0
- data/test/multiverse/suites/mongo/helpers/mongo_operation_tests.rb +95 -33
- data/test/multiverse/suites/mongo/mongo2_instrumentation_test.rb +62 -23
- data/test/multiverse/suites/net_http/Envfile +2 -0
- data/test/multiverse/suites/net_http/net_http_test.rb +7 -3
- data/test/multiverse/suites/padrino/Envfile +2 -0
- data/test/multiverse/suites/rack/Envfile +2 -0
- data/test/multiverse/suites/rack/url_map_test.rb +4 -0
- data/test/multiverse/suites/rails/Envfile +34 -29
- data/test/multiverse/suites/rake/Envfile +11 -6
- data/test/multiverse/suites/redis/Envfile +2 -0
- data/test/multiverse/suites/redis/redis_instrumentation_test.rb +31 -12
- data/test/multiverse/suites/sidekiq/Envfile +6 -2
- data/test/multiverse/suites/sinatra/Envfile +2 -0
- data/test/multiverse/suites/typhoeus/Envfile +31 -27
- data/test/multiverse/suites/typhoeus/typhoeus_test.rb +4 -3
- data/test/multiverse/suites/yajl/Envfile +4 -2
- data/test/new_relic/agent/datastores_test.rb +0 -10
- data/test/new_relic/agent/instrumentation/action_cable_subscriber_test.rb +2 -2
- data/test/new_relic/agent/instrumentation/action_view_subscriber_test.rb +64 -65
- data/test/new_relic/agent/instrumentation/active_record_subscriber_test.rb +11 -9
- data/test/new_relic/agent/instrumentation/instance_identification_test.rb +9 -8
- data/test/new_relic/agent/instrumentation/mongodb_command_subscriber_test.rb +7 -11
- data/test/new_relic/agent/instrumentation/net_instrumentation_test.rb +4 -0
- data/test/new_relic/agent/method_tracer/instance_methods/trace_execution_scoped_test.rb +0 -9
- data/test/new_relic/agent/method_tracer_test.rb +24 -8
- data/test/new_relic/agent/parameter_filtering_test.rb +2 -2
- data/test/new_relic/agent/stats_engine/metric_stats_test.rb +1 -0
- data/test/new_relic/agent/transaction/abstract_segment_test.rb +25 -16
- data/test/new_relic/agent/transaction/datastore_segment_test.rb +55 -38
- data/test/new_relic/agent/transaction/external_request_segment_test.rb +330 -0
- data/test/new_relic/agent/transaction/segment_test.rb +28 -4
- data/test/new_relic/agent/transaction/tracing_test.rb +60 -22
- data/test/new_relic/agent_test.rb +2 -1
- data/test/new_relic/collection_helper_test.rb +1 -0
- data/test/new_relic/dispatcher_test.rb +1 -0
- data/test/new_relic/fake_external_server.rb +1 -1
- data/test/new_relic/filtering_test_app.rb +1 -1
- data/test/new_relic/http_client_test_cases.rb +38 -20
- data/test/new_relic/rack/error_collector_test.rb +1 -0
- data/test/performance/suites/external_segment.rb +82 -0
- data/test/script/before_install/update_bundler.sh +12 -0
- data/test/script/external_server.rb +31 -0
- metadata +8 -5
- data/test/multiverse/lib/multiverse/environment.rb +0 -19
- data/test/new_relic/agent/cross_app_tracing_test.rb +0 -71
- data/test/script/before_install/jruby_bundler.sh +0 -22
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
#
|
3
|
+
# ruby-1.9.3 travis has bundler 1.7.6 installed, which pulls in dm-types-1.2.0
|
4
|
+
# during the datamapper multiverse suite. this causes a dep conflict on json
|
5
|
+
# gem. updating bundler to latest on that version pulls in dm-types-1.2.2
|
6
|
+
# and does not cause a conflict.
|
7
|
+
|
8
|
+
set -ev
|
9
|
+
|
10
|
+
if [[ `ruby --version` =~ ^ruby\ 1\.9\.3 ]]; then
|
11
|
+
gem install bundler
|
12
|
+
fi
|
@@ -0,0 +1,31 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
# This file is distributed under New Relic's license terms.
|
4
|
+
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
|
5
|
+
|
6
|
+
$:.unshift File.expand_path('../../../lib', __FILE__)
|
7
|
+
$:.unshift File.expand_path('../..', __FILE__)
|
8
|
+
|
9
|
+
require 'newrelic_rpm'
|
10
|
+
require 'agent_helper'
|
11
|
+
require 'new_relic/fake_external_server'
|
12
|
+
require 'net/http'
|
13
|
+
require 'json'
|
14
|
+
|
15
|
+
STDOUT.sync = true
|
16
|
+
|
17
|
+
server = NewRelic::FakeExternalServer.new(3035)
|
18
|
+
server.reset
|
19
|
+
server.run
|
20
|
+
|
21
|
+
puts JSON.dump({:message => "started"})
|
22
|
+
|
23
|
+
while message = JSON.parse(gets) do
|
24
|
+
case message["command"]
|
25
|
+
when "shutdown"
|
26
|
+
server.stop
|
27
|
+
exit(0)
|
28
|
+
when "add_headers"
|
29
|
+
server.override_response_headers message["payload"]
|
30
|
+
end
|
31
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: newrelic_rpm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.18.0.329
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Krajcar
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2017-01-10 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rake
|
@@ -357,6 +357,7 @@ files:
|
|
357
357
|
- lib/new_relic/agent/transaction/attributes.rb
|
358
358
|
- lib/new_relic/agent/transaction/datastore_segment.rb
|
359
359
|
- lib/new_relic/agent/transaction/developer_mode_sample_buffer.rb
|
360
|
+
- lib/new_relic/agent/transaction/external_request_segment.rb
|
360
361
|
- lib/new_relic/agent/transaction/request_attributes.rb
|
361
362
|
- lib/new_relic/agent/transaction/segment.rb
|
362
363
|
- lib/new_relic/agent/transaction/slowest_sample_buffer.rb
|
@@ -722,9 +723,9 @@ files:
|
|
722
723
|
- test/intentional_fail.rb
|
723
724
|
- test/multiverse/.gitignore
|
724
725
|
- test/multiverse/README.md
|
726
|
+
- test/multiverse/lib/multiverse.rb
|
725
727
|
- test/multiverse/lib/multiverse/color.rb
|
726
728
|
- test/multiverse/lib/multiverse/envfile.rb
|
727
|
-
- test/multiverse/lib/multiverse/environment.rb
|
728
729
|
- test/multiverse/lib/multiverse/output_collector.rb
|
729
730
|
- test/multiverse/lib/multiverse/runner.rb
|
730
731
|
- test/multiverse/lib/multiverse/shell_utils.rb
|
@@ -1005,7 +1006,6 @@ files:
|
|
1005
1006
|
- test/new_relic/agent/configuration/server_source_test.rb
|
1006
1007
|
- test/new_relic/agent/configuration/yaml_source_test.rb
|
1007
1008
|
- test/new_relic/agent/cross_app_monitor_test.rb
|
1008
|
-
- test/new_relic/agent/cross_app_tracing_test.rb
|
1009
1009
|
- test/new_relic/agent/custom_event_aggregator_test.rb
|
1010
1010
|
- test/new_relic/agent/database/postgres_explain_obfuscator_test.rb
|
1011
1011
|
- test/new_relic/agent/database/sql_obfuscation_test.rb
|
@@ -1097,6 +1097,7 @@ files:
|
|
1097
1097
|
- test/new_relic/agent/transaction/attributes_test.rb
|
1098
1098
|
- test/new_relic/agent/transaction/datastore_segment_test.rb
|
1099
1099
|
- test/new_relic/agent/transaction/developer_mode_sample_buffer_test.rb
|
1100
|
+
- test/new_relic/agent/transaction/external_request_segment_test.rb
|
1100
1101
|
- test/new_relic/agent/transaction/request_attributes_test.rb
|
1101
1102
|
- test/new_relic/agent/transaction/segment_test.rb
|
1102
1103
|
- test/new_relic/agent/transaction/slowest_sample_buffer_test.rb
|
@@ -1201,6 +1202,7 @@ files:
|
|
1201
1202
|
- test/performance/suites/config.rb
|
1202
1203
|
- test/performance/suites/datastores.rb
|
1203
1204
|
- test/performance/suites/error_collector.rb
|
1205
|
+
- test/performance/suites/external_segment.rb
|
1204
1206
|
- test/performance/suites/marshalling.rb
|
1205
1207
|
- test/performance/suites/queue_time.rb
|
1206
1208
|
- test/performance/suites/rack_middleware.rb
|
@@ -1215,10 +1217,11 @@ files:
|
|
1215
1217
|
- test/performance/suites/trace_execution_scoped.rb
|
1216
1218
|
- test/performance/suites/transaction_tracing.rb
|
1217
1219
|
- test/script/before_install/gemstash_mirror.sh
|
1218
|
-
- test/script/before_install/jruby_bundler.sh
|
1219
1220
|
- test/script/before_install/revert_rubygems.sh
|
1221
|
+
- test/script/before_install/update_bundler.sh
|
1220
1222
|
- test/script/before_script/install_mongodb.sh
|
1221
1223
|
- test/script/ci.sh
|
1224
|
+
- test/script/external_server.rb
|
1222
1225
|
- test/script/path_hash.rb
|
1223
1226
|
- test/test_helper.rb
|
1224
1227
|
- ui/helpers/developer_mode_helper.rb
|
@@ -1,19 +0,0 @@
|
|
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
|
-
require 'fileutils'
|
6
|
-
module Multiverse
|
7
|
-
ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))
|
8
|
-
$: << File.expand_path(File.join(ROOT, 'lib'))
|
9
|
-
|
10
|
-
# Include from our unit testing path to share fake_collector
|
11
|
-
$: << File.expand_path(File.join(ROOT, '..', 'new_relic'))
|
12
|
-
|
13
|
-
SUITES_DIRECTORY = ENV['SUITES_DIRECTORY'] || File.join(ROOT, '/suites')
|
14
|
-
require 'multiverse/color'
|
15
|
-
require 'multiverse/output_collector'
|
16
|
-
require 'multiverse/runner'
|
17
|
-
require 'multiverse/envfile'
|
18
|
-
require 'multiverse/suite'
|
19
|
-
end
|
@@ -1,71 +0,0 @@
|
|
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
|
-
require File.expand_path(File.join(File.dirname(__FILE__),'..','..','test_helper'))
|
6
|
-
require 'new_relic/agent/cross_app_tracing'
|
7
|
-
|
8
|
-
module NewRelic
|
9
|
-
module Agent
|
10
|
-
class CrossAppTracingTest < Minitest::Test
|
11
|
-
|
12
|
-
attr_reader :node, :request, :response
|
13
|
-
|
14
|
-
def setup
|
15
|
-
@node = stub_everything
|
16
|
-
@request = stub_everything(:uri => URI.parse("http://newrelic.com"),
|
17
|
-
:type => "Fake",
|
18
|
-
:method => "GET")
|
19
|
-
@response = stub_everything
|
20
|
-
@state = NewRelic::Agent::TransactionState.tl_get
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_start_trace
|
24
|
-
t0 = Time.now
|
25
|
-
node = CrossAppTracing.start_trace(@state, t0, request)
|
26
|
-
refute_nil node
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_start_trace_has_nil_node_on_agent_failure
|
30
|
-
@state.traced_method_stack.stubs(:push_frame).raises("Boom!")
|
31
|
-
t0 = Time.now
|
32
|
-
node = CrossAppTracing.start_trace(@state, t0, request)
|
33
|
-
assert_nil node
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_finish_trace_treats_nil_start_time_as_agent_error
|
37
|
-
expects_logging(:error, any_parameters)
|
38
|
-
expects_no_pop_frame
|
39
|
-
CrossAppTracing.finish_trace(@state, nil, node, request, response)
|
40
|
-
end
|
41
|
-
|
42
|
-
# Since we log and swallow errors, assert on the logging to ensure these
|
43
|
-
# paths are cleanly accepting nils, not just smothering the exceptions.
|
44
|
-
|
45
|
-
def test_finish_trace_allows_nil_node
|
46
|
-
expects_no_logging(:error)
|
47
|
-
CrossAppTracing.finish_trace(@state, Time.now, nil, request, response)
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_finish_trace_allows_nil_request
|
51
|
-
expects_no_logging(:error)
|
52
|
-
expects_pop_frame
|
53
|
-
CrossAppTracing.finish_trace(@state, Time.now, node, nil, response)
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_finish_trace_allows_nil_response
|
57
|
-
expects_no_logging(:error)
|
58
|
-
expects_pop_frame
|
59
|
-
CrossAppTracing.finish_trace(@state, Time.now, node, request, nil)
|
60
|
-
end
|
61
|
-
|
62
|
-
def expects_pop_frame
|
63
|
-
@state.traced_method_stack.stubs(:pop_frame).once
|
64
|
-
end
|
65
|
-
|
66
|
-
def expects_no_pop_frame
|
67
|
-
@state.traced_method_stack.stubs(:pop_frame).never
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
#
|
3
|
-
# currently there's an incompatibility between Bundler 1.13 with JRuby 1.7, see Bundler issue #4975
|
4
|
-
# so we revert bundler versions to 1.12.5 on that version
|
5
|
-
#
|
6
|
-
# further digging suggests the bundler/jruby problem was actually a jruby bug,
|
7
|
-
# apparently fixed in 1.7.26. if we upgrade our older jruby testing, which seems
|
8
|
-
# unlikely at this point, be sure to change this uninstall line to point to the
|
9
|
-
# correct location.
|
10
|
-
#
|
11
|
-
# TODO: remove when older rubies are deprecated, RUBY-1668
|
12
|
-
|
13
|
-
set -ev
|
14
|
-
|
15
|
-
if [[ `ruby --version` =~ ^jruby\ 1\. ]]; then
|
16
|
-
gem uninstall -x -i $HOME/.rvm/gems/jruby-1.7.23@global bundler
|
17
|
-
if [ -n "$GEMSTASH_MIRROR" ]; then
|
18
|
-
gem install --clear-sources --source $GEMSTASH_MIRROR bundler -v 1.12.5
|
19
|
-
else
|
20
|
-
gem install bundler -v 1.12.5
|
21
|
-
fi
|
22
|
-
fi
|