newrelic_rpm 6.15.0 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +96 -22
- data/README.md +2 -2
- data/lib/new_relic/agent.rb +0 -6
- data/lib/new_relic/agent/autostart.rb +1 -2
- data/lib/new_relic/agent/configuration/default_source.rb +270 -104
- data/lib/new_relic/agent/configuration/manager.rb +2 -2
- data/lib/new_relic/agent/datastores/redis.rb +0 -4
- data/lib/new_relic/agent/distributed_tracing.rb +0 -66
- data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +0 -16
- data/lib/new_relic/agent/instrumentation/bunny.rb +10 -152
- 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/curb.rb +9 -241
- 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/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 +8 -50
- data/lib/new_relic/agent/instrumentation/excon.rb +2 -1
- data/lib/new_relic/agent/instrumentation/grape.rb +13 -113
- 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 +8 -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/memcache.rb +54 -69
- data/lib/new_relic/agent/instrumentation/memcache/chain.rb +16 -0
- data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +38 -121
- 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/middleware_proxy.rb +2 -0
- data/lib/new_relic/agent/instrumentation/mongo.rb +7 -0
- data/lib/new_relic/agent/instrumentation/net_http.rb +39 -0
- data/lib/new_relic/agent/instrumentation/net_http/chain.rb +25 -0
- data/lib/new_relic/agent/instrumentation/{net_prepend.rb → net_http/instrumentation.rb} +3 -3
- data/lib/new_relic/agent/instrumentation/net_http/prepend.rb +21 -0
- data/lib/new_relic/agent/instrumentation/padrino.rb +18 -53
- 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/rack.rb +29 -139
- data/lib/new_relic/agent/instrumentation/rack/chain.rb +57 -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 +36 -0
- data/lib/new_relic/agent/instrumentation/rake.rb +13 -154
- 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 +10 -109
- 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 +8 -28
- data/lib/new_relic/agent/instrumentation/resque/chain.rb +22 -0
- data/lib/new_relic/agent/instrumentation/resque/instrumentation.rb +33 -0
- data/lib/new_relic/agent/instrumentation/resque/prepend.rb +16 -0
- data/lib/new_relic/agent/instrumentation/sinatra.rb +20 -158
- data/lib/new_relic/agent/instrumentation/sinatra/chain.rb +55 -0
- data/lib/new_relic/agent/instrumentation/sinatra/ignorer.rb +29 -34
- data/lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb +118 -0
- data/lib/new_relic/agent/instrumentation/sinatra/prepend.rb +33 -0
- data/lib/new_relic/agent/instrumentation/typhoeus.rb +10 -89
- 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/new_relic_service.rb +3 -12
- data/lib/new_relic/agent/sql_sampler.rb +1 -1
- data/lib/new_relic/agent/transaction.rb +1 -4
- data/lib/new_relic/control/frameworks/rails.rb +11 -9
- data/lib/new_relic/control/instance_methods.rb +1 -0
- data/lib/new_relic/dependency_detection.rb +116 -10
- data/lib/new_relic/noticed_error.rb +1 -5
- data/lib/new_relic/supportability_helper.rb +1 -2
- data/lib/new_relic/version.rb +2 -2
- data/newrelic_rpm.gemspec +1 -1
- metadata +53 -8
- data/cert/cacert.pem +0 -1177
- data/lib/new_relic/agent/instrumentation/http.rb +0 -49
- data/lib/new_relic/agent/instrumentation/net.rb +0 -70
@@ -1,49 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
# This file is distributed under New Relic's license terms.
|
3
|
-
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
4
|
-
|
5
|
-
DependencyDetection.defer do
|
6
|
-
named :httprb
|
7
|
-
|
8
|
-
depends_on do
|
9
|
-
defined?(HTTP) && defined?(HTTP::Client)
|
10
|
-
end
|
11
|
-
|
12
|
-
executes do
|
13
|
-
::NewRelic::Agent.logger.info 'Installing http.rb instrumentation'
|
14
|
-
require 'new_relic/agent/distributed_tracing/cross_app_tracing'
|
15
|
-
require 'new_relic/agent/http_clients/http_rb_wrappers'
|
16
|
-
end
|
17
|
-
|
18
|
-
executes do
|
19
|
-
class HTTP::Client
|
20
|
-
def perform_with_newrelic_trace(request, options)
|
21
|
-
wrapped_request = ::NewRelic::Agent::HTTPClients::HTTPRequest.new(request)
|
22
|
-
|
23
|
-
begin
|
24
|
-
segment = NewRelic::Agent::Tracer.start_external_request_segment(
|
25
|
-
library: wrapped_request.type,
|
26
|
-
uri: wrapped_request.uri,
|
27
|
-
procedure: wrapped_request.method
|
28
|
-
)
|
29
|
-
|
30
|
-
segment.add_request_headers wrapped_request
|
31
|
-
|
32
|
-
response = NewRelic::Agent::Tracer.capture_segment_error segment do
|
33
|
-
perform_without_newrelic_trace(request, options)
|
34
|
-
end
|
35
|
-
|
36
|
-
wrapped_response = ::NewRelic::Agent::HTTPClients::HTTPResponse.new response
|
37
|
-
segment.process_response_headers wrapped_response
|
38
|
-
|
39
|
-
response
|
40
|
-
ensure
|
41
|
-
segment.finish if segment
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
alias perform_without_newrelic_trace perform
|
46
|
-
alias perform perform_with_newrelic_trace
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
@@ -1,70 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
# This file is distributed under New Relic's license terms.
|
3
|
-
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
4
|
-
|
5
|
-
DependencyDetection.defer do
|
6
|
-
named :net_http
|
7
|
-
|
8
|
-
depends_on do
|
9
|
-
defined?(Net) && defined?(Net::HTTP)
|
10
|
-
end
|
11
|
-
|
12
|
-
executes do
|
13
|
-
::NewRelic::Agent.logger.info 'Installing Net instrumentation'
|
14
|
-
require 'new_relic/agent/distributed_tracing/cross_app_tracing'
|
15
|
-
require 'new_relic/agent/http_clients/net_http_wrappers'
|
16
|
-
end
|
17
|
-
|
18
|
-
def monkey_patched
|
19
|
-
defined?(::Airbrake) ||
|
20
|
-
defined?(::Rack::MiniProfiler) ||
|
21
|
-
source_location_for(Net::HTTP, "request") =~ /airbrake|profiler/i
|
22
|
-
end
|
23
|
-
|
24
|
-
executes do
|
25
|
-
if ::NewRelic::Agent.config[:prepend_net_instrumentation] && !monkey_patched
|
26
|
-
if RUBY_VERSION < "2.1.0"
|
27
|
-
::Net::HTTP.send(:prepend, ::NewRelic::Agent::Instrumentation::NetPrepend)
|
28
|
-
else
|
29
|
-
::Net::HTTP.prepend ::NewRelic::Agent::Instrumentation::NetPrepend
|
30
|
-
end
|
31
|
-
else
|
32
|
-
NewRelic::Agent.record_metric("Supportability/Instrumentation/NetHTTP/MethodChaining", 0.0)
|
33
|
-
|
34
|
-
class Net::HTTP
|
35
|
-
def request_with_newrelic_trace(request, *args, &block)
|
36
|
-
wrapped_request = NewRelic::Agent::HTTPClients::NetHTTPRequest.new(self, request)
|
37
|
-
|
38
|
-
segment = NewRelic::Agent::Tracer.start_external_request_segment(
|
39
|
-
library: wrapped_request.type,
|
40
|
-
uri: wrapped_request.uri,
|
41
|
-
procedure: wrapped_request.method
|
42
|
-
)
|
43
|
-
|
44
|
-
begin
|
45
|
-
response = nil
|
46
|
-
segment.add_request_headers wrapped_request
|
47
|
-
|
48
|
-
# RUBY-1244 Disable further tracing in request to avoid double
|
49
|
-
# counting if connection wasn't started (which calls request again).
|
50
|
-
NewRelic::Agent.disable_all_tracing do
|
51
|
-
response = NewRelic::Agent::Tracer.capture_segment_error segment do
|
52
|
-
request_without_newrelic_trace(request, *args, &block)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
wrapped_response = NewRelic::Agent::HTTPClients::NetHTTPResponse.new response
|
57
|
-
segment.process_response_headers wrapped_response
|
58
|
-
response
|
59
|
-
ensure
|
60
|
-
segment.finish
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
alias request_without_newrelic_trace request
|
65
|
-
alias request request_with_newrelic_trace
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
end
|
70
|
-
end
|