scout_apm 4.0.1 → 4.0.2
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.markdown +4 -0
- data/lib/scout_apm.rb +1 -0
- data/lib/scout_apm/instrument_manager.rb +1 -0
- data/lib/scout_apm/instruments/typhoeus.rb +87 -0
- data/lib/scout_apm/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 984d05544e5a2ce1b325c8a27f619f9b7ee54e8d98f614bebd41049c2c162105
|
4
|
+
data.tar.gz: f10c260c2cab2d1f00d6f6267eb643b860f872352edc9fa8ba8bedd0ac392023
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec9bc8174b44664990ffd3ab52fa0b3232f8c000dd69b50cab3d69b467acd74138aaec8d7494ecb1ae4cd50c3a70709db11abe232a9636cb76bb497bbc70341a
|
7
|
+
data.tar.gz: 114715176bcfb080ad8db4cce5fc38d6e3de345e19899352e754dee042bbf6267c983fd8e0dba8a87cb9d6efd4e29af9a047d123c429cac7a86854125e961dc5
|
data/CHANGELOG.markdown
CHANGED
data/lib/scout_apm.rb
CHANGED
@@ -78,6 +78,7 @@ require 'scout_apm/histogram'
|
|
78
78
|
|
79
79
|
require 'scout_apm/instruments/net_http'
|
80
80
|
require 'scout_apm/instruments/http_client'
|
81
|
+
require 'scout_apm/instruments/typhoeus'
|
81
82
|
require 'scout_apm/instruments/moped'
|
82
83
|
require 'scout_apm/instruments/mongoid'
|
83
84
|
require 'scout_apm/instruments/memcached'
|
@@ -30,6 +30,7 @@ module ScoutApm
|
|
30
30
|
install_instrument(ScoutApm::Instruments::Moped)
|
31
31
|
install_instrument(ScoutApm::Instruments::Mongoid)
|
32
32
|
install_instrument(ScoutApm::Instruments::NetHttp)
|
33
|
+
install_instrument(ScoutApm::Instruments::Typhoeus)
|
33
34
|
install_instrument(ScoutApm::Instruments::HttpClient)
|
34
35
|
install_instrument(ScoutApm::Instruments::Memcached)
|
35
36
|
install_instrument(ScoutApm::Instruments::Redis)
|
@@ -0,0 +1,87 @@
|
|
1
|
+
module ScoutApm
|
2
|
+
module Instruments
|
3
|
+
class Typhoeus
|
4
|
+
attr_reader :context
|
5
|
+
|
6
|
+
def initialize(context)
|
7
|
+
@context = context
|
8
|
+
@installed = false
|
9
|
+
end
|
10
|
+
|
11
|
+
def logger
|
12
|
+
context.logger
|
13
|
+
end
|
14
|
+
|
15
|
+
def installed?
|
16
|
+
@installed
|
17
|
+
end
|
18
|
+
|
19
|
+
def install
|
20
|
+
if defined?(::Typhoeus)
|
21
|
+
@installed = true
|
22
|
+
|
23
|
+
logger.info "Instrumenting Typhoeus"
|
24
|
+
|
25
|
+
::Typhoeus::Request.send(:prepend, TyphoeusInstrumentation)
|
26
|
+
::Typhoeus::Hydra.send(:prepend, TyphoeusHydraInstrumentation)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
module TyphoeusHydraInstrumentation
|
31
|
+
def run(*args, &block)
|
32
|
+
req = ScoutApm::RequestManager.lookup
|
33
|
+
req.start_layer(ScoutApm::Layer.new("HTTP", "Hydra"))
|
34
|
+
req.current_layer.desc = scout_desc
|
35
|
+
|
36
|
+
begin
|
37
|
+
super(*args, &block)
|
38
|
+
ensure
|
39
|
+
req.stop_layer
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def scout_desc
|
44
|
+
"#{self.queued_requests.count} requests"
|
45
|
+
rescue
|
46
|
+
""
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
module TyphoeusInstrumentation
|
51
|
+
def run(*args, &block)
|
52
|
+
req = ScoutApm::RequestManager.lookup
|
53
|
+
req.start_layer(ScoutApm::Layer.new("HTTP", scout_request_verb))
|
54
|
+
req.current_layer.desc = scout_desc(scout_request_verb, scout_request_url)
|
55
|
+
|
56
|
+
|
57
|
+
begin
|
58
|
+
super(*args, &block)
|
59
|
+
ensure
|
60
|
+
req.stop_layer
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def scout_desc(verb, uri)
|
65
|
+
max_length = ScoutApm::Agent.instance.context.config.value('instrument_http_url_length')
|
66
|
+
(String(uri).split('?').first)[0..(max_length - 1)]
|
67
|
+
rescue
|
68
|
+
""
|
69
|
+
end
|
70
|
+
|
71
|
+
def scout_request_url
|
72
|
+
self.url
|
73
|
+
rescue
|
74
|
+
""
|
75
|
+
end
|
76
|
+
|
77
|
+
def scout_request_verb
|
78
|
+
self.options[:method].to_s
|
79
|
+
rescue
|
80
|
+
""
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
data/lib/scout_apm/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scout_apm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Derek Haynes
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2021-01-
|
12
|
+
date: 2021-01-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: minitest
|
@@ -316,6 +316,7 @@ files:
|
|
316
316
|
- lib/scout_apm/instruments/resque.rb
|
317
317
|
- lib/scout_apm/instruments/samplers.rb
|
318
318
|
- lib/scout_apm/instruments/sinatra.rb
|
319
|
+
- lib/scout_apm/instruments/typhoeus.rb
|
319
320
|
- lib/scout_apm/job_record.rb
|
320
321
|
- lib/scout_apm/layaway.rb
|
321
322
|
- lib/scout_apm/layaway_file.rb
|
@@ -478,7 +479,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
478
479
|
- !ruby/object:Gem::Version
|
479
480
|
version: '0'
|
480
481
|
requirements: []
|
481
|
-
rubygems_version: 3.
|
482
|
+
rubygems_version: 3.0.8
|
482
483
|
signing_key:
|
483
484
|
specification_version: 4
|
484
485
|
summary: Ruby application performance monitoring
|