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.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +32 -10
  3. data/CHANGELOG.md +43 -3
  4. data/Rakefile +0 -21
  5. data/lib/new_relic/agent/cross_app_tracing.rb +34 -269
  6. data/lib/new_relic/agent/http_clients/curb_wrappers.rb +10 -2
  7. data/lib/new_relic/agent/http_clients/excon_wrappers.rb +18 -9
  8. data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +12 -6
  9. data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +13 -6
  10. data/lib/new_relic/agent/http_clients/net_http_wrappers.rb +13 -6
  11. data/lib/new_relic/agent/http_clients/typhoeus_wrappers.rb +14 -3
  12. data/lib/new_relic/agent/instrumentation/action_cable_subscriber.rb +10 -15
  13. data/lib/new_relic/agent/instrumentation/action_controller_subscriber.rb +4 -7
  14. data/lib/new_relic/agent/instrumentation/action_view_subscriber.rb +4 -19
  15. data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +0 -1
  16. data/lib/new_relic/agent/instrumentation/curb.rb +9 -7
  17. data/lib/new_relic/agent/instrumentation/evented_subscriber.rb +4 -0
  18. data/lib/new_relic/agent/instrumentation/excon/connection.rb +15 -5
  19. data/lib/new_relic/agent/instrumentation/excon/middleware.rb +17 -12
  20. data/lib/new_relic/agent/instrumentation/http.rb +12 -5
  21. data/lib/new_relic/agent/instrumentation/httpclient.rb +13 -4
  22. data/lib/new_relic/agent/instrumentation/net.rb +13 -2
  23. data/lib/new_relic/agent/instrumentation/rails5/action_controller.rb +2 -10
  24. data/lib/new_relic/agent/instrumentation/typhoeus.rb +8 -3
  25. data/lib/new_relic/agent/method_tracer_helpers.rb +3 -1
  26. data/lib/new_relic/agent/parameter_filtering.rb +1 -1
  27. data/lib/new_relic/agent/stats_engine/metric_stats.rb +0 -18
  28. data/lib/new_relic/agent/supported_versions.rb +1 -0
  29. data/lib/new_relic/agent/transaction/abstract_segment.rb +7 -9
  30. data/lib/new_relic/agent/transaction/external_request_segment.rb +139 -0
  31. data/lib/new_relic/agent/transaction/segment.rb +1 -1
  32. data/lib/new_relic/agent/transaction/tracing.rb +10 -1
  33. data/lib/new_relic/recipes/capistrano3.rb +3 -1
  34. data/lib/new_relic/version.rb +2 -2
  35. data/lib/tasks/multiverse.rb +27 -7
  36. data/test/environments/rails42/Gemfile +1 -0
  37. data/test/multiverse/lib/multiverse.rb +32 -0
  38. data/test/multiverse/lib/multiverse/runner.rb +2 -2
  39. data/test/multiverse/lib/multiverse/suite.rb +43 -22
  40. data/test/multiverse/suites/active_record/Envfile +3 -1
  41. data/test/multiverse/suites/activemerchant/Envfile +5 -1
  42. data/test/multiverse/suites/agent_only/Envfile +1 -0
  43. data/test/multiverse/suites/capistrano/deployment_test.rb +6 -9
  44. data/test/multiverse/suites/capistrano2/deployment_test.rb +6 -6
  45. data/test/multiverse/suites/curb/curb_test.rb +2 -3
  46. data/test/multiverse/suites/datamapper/Envfile +4 -0
  47. data/test/multiverse/suites/datamapper/datamapper_test.rb +106 -36
  48. data/test/multiverse/suites/delayed_job/Envfile +3 -3
  49. data/test/multiverse/suites/excon/excon_test.rb +1 -1
  50. data/test/multiverse/suites/grape/grape_test.rb +1 -1
  51. data/test/multiverse/suites/grape/grape_test_api.rb +1 -1
  52. data/test/multiverse/suites/grape/grape_versioning_test.rb +1 -1
  53. data/test/multiverse/suites/grape/grape_versioning_test_api.rb +1 -1
  54. data/test/multiverse/suites/grape/unsupported_version_test.rb +1 -1
  55. data/test/multiverse/suites/httpclient/Envfile +2 -0
  56. data/test/multiverse/suites/httpclient/httpclient_test.rb +1 -1
  57. data/test/multiverse/suites/httprb/Envfile +2 -0
  58. data/test/multiverse/suites/httprb/httprb_test.rb +1 -1
  59. data/test/multiverse/suites/json/Envfile +7 -2
  60. data/test/multiverse/suites/memcached/Envfile +2 -0
  61. data/test/multiverse/suites/mongo/Envfile +2 -0
  62. data/test/multiverse/suites/mongo/helpers/mongo_operation_tests.rb +95 -33
  63. data/test/multiverse/suites/mongo/mongo2_instrumentation_test.rb +62 -23
  64. data/test/multiverse/suites/net_http/Envfile +2 -0
  65. data/test/multiverse/suites/net_http/net_http_test.rb +7 -3
  66. data/test/multiverse/suites/padrino/Envfile +2 -0
  67. data/test/multiverse/suites/rack/Envfile +2 -0
  68. data/test/multiverse/suites/rack/url_map_test.rb +4 -0
  69. data/test/multiverse/suites/rails/Envfile +34 -29
  70. data/test/multiverse/suites/rake/Envfile +11 -6
  71. data/test/multiverse/suites/redis/Envfile +2 -0
  72. data/test/multiverse/suites/redis/redis_instrumentation_test.rb +31 -12
  73. data/test/multiverse/suites/sidekiq/Envfile +6 -2
  74. data/test/multiverse/suites/sinatra/Envfile +2 -0
  75. data/test/multiverse/suites/typhoeus/Envfile +31 -27
  76. data/test/multiverse/suites/typhoeus/typhoeus_test.rb +4 -3
  77. data/test/multiverse/suites/yajl/Envfile +4 -2
  78. data/test/new_relic/agent/datastores_test.rb +0 -10
  79. data/test/new_relic/agent/instrumentation/action_cable_subscriber_test.rb +2 -2
  80. data/test/new_relic/agent/instrumentation/action_view_subscriber_test.rb +64 -65
  81. data/test/new_relic/agent/instrumentation/active_record_subscriber_test.rb +11 -9
  82. data/test/new_relic/agent/instrumentation/instance_identification_test.rb +9 -8
  83. data/test/new_relic/agent/instrumentation/mongodb_command_subscriber_test.rb +7 -11
  84. data/test/new_relic/agent/instrumentation/net_instrumentation_test.rb +4 -0
  85. data/test/new_relic/agent/method_tracer/instance_methods/trace_execution_scoped_test.rb +0 -9
  86. data/test/new_relic/agent/method_tracer_test.rb +24 -8
  87. data/test/new_relic/agent/parameter_filtering_test.rb +2 -2
  88. data/test/new_relic/agent/stats_engine/metric_stats_test.rb +1 -0
  89. data/test/new_relic/agent/transaction/abstract_segment_test.rb +25 -16
  90. data/test/new_relic/agent/transaction/datastore_segment_test.rb +55 -38
  91. data/test/new_relic/agent/transaction/external_request_segment_test.rb +330 -0
  92. data/test/new_relic/agent/transaction/segment_test.rb +28 -4
  93. data/test/new_relic/agent/transaction/tracing_test.rb +60 -22
  94. data/test/new_relic/agent_test.rb +2 -1
  95. data/test/new_relic/collection_helper_test.rb +1 -0
  96. data/test/new_relic/dispatcher_test.rb +1 -0
  97. data/test/new_relic/fake_external_server.rb +1 -1
  98. data/test/new_relic/filtering_test_app.rb +1 -1
  99. data/test/new_relic/http_client_test_cases.rb +38 -20
  100. data/test/new_relic/rack/error_collector_test.rb +1 -0
  101. data/test/performance/suites/external_segment.rb +82 -0
  102. data/test/script/before_install/update_bundler.sh +12 -0
  103. data/test/script/external_server.rb +31 -0
  104. metadata +8 -5
  105. data/test/multiverse/lib/multiverse/environment.rb +0 -19
  106. data/test/new_relic/agent/cross_app_tracing_test.rb +0 -71
  107. 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.17.2.327
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: 2016-12-06 00:00:00.000000000 Z
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