overall_request_times 0.4.1 → 0.5.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6cfb784b756679539fbcc5f3b86bad33a3fde701
|
4
|
+
data.tar.gz: af6e82fa47bc035370942cad03a944693742518a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6b409c978b34f335ddd57eea9a0c33eb91a1f259d765b4511d707e80d15b6b1a5e37c2d843aaaf9946619fb12be05f8c462ded50bce0b292736a12469af775dc
|
7
|
+
data.tar.gz: 7bf0ab514ed14e6231418b8fc337695986b9648aa849b3db717d030b2533cdc7116946ba188ce27b265634acc41c5697b323fc69d93687b19629daa91915a2c8
|
data/README.md
CHANGED
@@ -10,9 +10,9 @@ time.
|
|
10
10
|
Includes a [Faraday](https://github.com/lostisland/faraday) middleware and
|
11
11
|
generic implimentation.
|
12
12
|
|
13
|
-
##
|
13
|
+
## Threadsafety
|
14
14
|
|
15
|
-
|
15
|
+
It's got mutexes, so it might be threadsafe. No guarantees.
|
16
16
|
|
17
17
|
## Installation
|
18
18
|
|
@@ -0,0 +1,71 @@
|
|
1
|
+
require "thread"
|
2
|
+
module OverallRequestTimes
|
3
|
+
class Registry
|
4
|
+
def initialize
|
5
|
+
@registry = {}
|
6
|
+
@mutex = Mutex.new
|
7
|
+
end
|
8
|
+
|
9
|
+
def size
|
10
|
+
@mutex.synchronize do
|
11
|
+
@registry.size
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def reset!
|
16
|
+
@mutex.synchronize do
|
17
|
+
@registry.each { |_, timer| timer.reset! }
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def register(timer)
|
22
|
+
@mutex.synchronize do
|
23
|
+
@registry[timer.remote_app_name] ||= timer
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def total_for(remote_app_name)
|
28
|
+
@mutex.synchronize do
|
29
|
+
timer = @registry[remote_app_name]
|
30
|
+
timer ? timer.total : 0
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def totals
|
35
|
+
@mutex.synchronize do
|
36
|
+
@registry.each_with_object({}) do |(remote_app_name, timer), acc|
|
37
|
+
acc[remote_app_name] = timer.total
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def bm(remote_app_name, &block)
|
43
|
+
start(remote_app_name)
|
44
|
+
begin
|
45
|
+
block.call
|
46
|
+
ensure
|
47
|
+
stop(remote_app_name)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def start(remote_app_name)
|
52
|
+
@mutex.synchronize do
|
53
|
+
@registry[remote_app_name] ||= GenericTimer.new(remote_app_name, true)
|
54
|
+
@registry[remote_app_name].start
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def stop(remote_app_name)
|
59
|
+
@mutex.synchronize do
|
60
|
+
@registry[remote_app_name] && @registry[remote_app_name].stop
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def add_duration(remote_app_name, duration_in_seconds)
|
65
|
+
@mutex.synchronize do
|
66
|
+
@registry[remote_app_name] ||= GenericTimer.new(remote_app_name, true)
|
67
|
+
@registry[remote_app_name].add(duration_in_seconds)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -1,23 +1,31 @@
|
|
1
|
+
require "thread"
|
1
2
|
module OverallRequestTimes
|
2
3
|
module Timer
|
3
4
|
attr_reader :remote_app_name
|
4
5
|
|
5
|
-
def timer_setup(remote_app_name)
|
6
|
+
def timer_setup(remote_app_name, in_mutex = false)
|
6
7
|
@remote_app_name = remote_app_name
|
8
|
+
@timer_mutex = Mutex.new
|
7
9
|
reset!
|
8
|
-
OverallRequestTimes.register(self)
|
10
|
+
OverallRequestTimes.register(self) unless in_mutex
|
9
11
|
end
|
10
12
|
|
11
13
|
def total
|
12
|
-
@
|
14
|
+
@timer_mutex.synchronize do
|
15
|
+
@total
|
16
|
+
end
|
13
17
|
end
|
14
18
|
|
15
19
|
def reset!
|
16
|
-
@
|
20
|
+
@timer_mutex.synchronize do
|
21
|
+
@total = 0
|
22
|
+
end
|
17
23
|
end
|
18
24
|
|
19
25
|
def add(some_time)
|
20
|
-
@
|
26
|
+
@timer_mutex.synchronize do
|
27
|
+
@total += some_time
|
28
|
+
end
|
21
29
|
end
|
22
30
|
|
23
31
|
def start
|
@@ -27,7 +35,7 @@ module OverallRequestTimes
|
|
27
35
|
def stop
|
28
36
|
return unless @started_at
|
29
37
|
ended_at = Time.now
|
30
|
-
add(ended_at - @started_at)
|
38
|
+
add(ended_at.to_f - @started_at.to_f)
|
31
39
|
end
|
32
40
|
end
|
33
41
|
end
|
@@ -6,54 +6,47 @@ module OverallRequestTimes
|
|
6
6
|
autoload :FaradayMiddleware, "overall_request_times/faraday_middleware"
|
7
7
|
autoload :GenericTimer, "overall_request_times/generic_timer"
|
8
8
|
autoload :RailsMiddleware, "overall_request_times/rails_middleware"
|
9
|
+
autoload :Registry, "overall_request_times/registry"
|
9
10
|
|
10
|
-
def self.
|
11
|
-
@registry
|
11
|
+
def self.registry
|
12
|
+
@registry
|
12
13
|
end
|
13
14
|
|
14
|
-
def self.
|
15
|
-
@registry
|
15
|
+
def self.wipeout_registry
|
16
|
+
@registry = Registry.new
|
16
17
|
end
|
17
18
|
|
18
19
|
def self.reset!
|
19
|
-
registry.
|
20
|
+
registry.reset!
|
20
21
|
end
|
21
22
|
|
22
23
|
def self.register(timer)
|
23
|
-
registry
|
24
|
+
registry.register(timer)
|
24
25
|
end
|
25
26
|
|
26
27
|
def self.total_for(remote_app_name)
|
27
|
-
|
28
|
-
timer ? timer.total : 0
|
28
|
+
registry.total_for(remote_app_name)
|
29
29
|
end
|
30
30
|
|
31
31
|
def self.totals
|
32
|
-
registry.
|
33
|
-
acc[remote_app_name] = timer.total
|
34
|
-
end
|
32
|
+
registry.totals
|
35
33
|
end
|
36
34
|
|
37
35
|
def self.bm(remote_app_name, &block)
|
38
|
-
|
39
|
-
begin
|
40
|
-
block.call
|
41
|
-
ensure
|
42
|
-
stop(remote_app_name)
|
43
|
-
end
|
36
|
+
registry.bm(remote_app_name, &block)
|
44
37
|
end
|
45
38
|
|
46
39
|
def self.start(remote_app_name)
|
47
|
-
registry
|
48
|
-
registry[remote_app_name].start
|
40
|
+
registry.start(remote_app_name)
|
49
41
|
end
|
50
42
|
|
51
43
|
def self.stop(remote_app_name)
|
52
|
-
registry
|
44
|
+
registry.stop(remote_app_name)
|
53
45
|
end
|
54
46
|
|
55
47
|
def self.add_duration(remote_app_name, duration_in_seconds)
|
56
|
-
registry
|
57
|
-
registry[remote_app_name].add(duration_in_seconds)
|
48
|
+
registry.add_duration(remote_app_name, duration_in_seconds)
|
58
49
|
end
|
59
50
|
end
|
51
|
+
|
52
|
+
OverallRequestTimes.wipeout_registry
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: overall_request_times
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Donald Plummer
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -115,6 +115,7 @@ files:
|
|
115
115
|
- lib/overall_request_times/generic_timer.rb
|
116
116
|
- lib/overall_request_times/rails_middleware.rb
|
117
117
|
- lib/overall_request_times/railtie.rb
|
118
|
+
- lib/overall_request_times/registry.rb
|
118
119
|
- lib/overall_request_times/timer.rb
|
119
120
|
- lib/overall_request_times/version.rb
|
120
121
|
- overall_request_times.gemspec
|