rack-latency 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -0
- data/lib/rack/latency.rb +20 -0
- data/lib/rack/latency/reporter.rb +10 -3
- data/lib/rack/latency/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 77b6970d3154b88eb2d5327cec4a3cc7dc881874
|
4
|
+
data.tar.gz: 2384ec9870c8c68c41b01d128bf75f996da07441
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ba905ab3dc7147051f1c4f4fb5b7e523591d2619faf9868acc9cfda3dce74fc4ecf100aaf3b21b4cf9f48342927d131ada1f38aebd6f9db44f5baaefbb50c19
|
7
|
+
data.tar.gz: 144c607ee9cdf4e1ad460152b3ecc979d3c3b63e0c1b62d14265ad01e90412dc36057ac6830e692035e26204d666bbeefd486439a442dfe9d4065d078e48c445
|
data/README.md
CHANGED
@@ -28,6 +28,12 @@ Rack::Latency.configure do |measure|
|
|
28
28
|
|
29
29
|
# set the delay time between measurement loops.
|
30
30
|
measure.wait ENV["RACK-LATENCY-WAIT"] || 4
|
31
|
+
|
32
|
+
# set the environment(s) in which to run, as defined by Rails.env or RACK_ENV.
|
33
|
+
# By default, it will only run in production.
|
34
|
+
measure.environment :production
|
35
|
+
# or
|
36
|
+
measure.environments :production, :staging
|
31
37
|
end
|
32
38
|
|
33
39
|
```
|
data/lib/rack/latency.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
+
require "net/ping"
|
1
2
|
require "rack/latency/version"
|
2
3
|
require "rack/latency/reporter"
|
3
4
|
require "rack/latency/rack_latency_railtie"
|
4
5
|
|
6
|
+
|
5
7
|
module Rack
|
6
8
|
module Latency
|
7
9
|
|
@@ -29,6 +31,24 @@ module Rack
|
|
29
31
|
add_measurement(url, :get, opts)
|
30
32
|
end
|
31
33
|
|
34
|
+
def self.environment(env)
|
35
|
+
@environments = [env]
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.environments(*envs)
|
39
|
+
@environments = envs
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.get_environments
|
43
|
+
if @environments.nil? or @environments == []
|
44
|
+
[:production]
|
45
|
+
else
|
46
|
+
@environments
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
|
32
52
|
def self.add_measurement(url, method, opts = {})
|
33
53
|
url = URI.parse(url)
|
34
54
|
url.path = "/" if url.path == ""
|
@@ -9,9 +9,11 @@ module Rack
|
|
9
9
|
@logger = logger || ::Logger.new($stdout)
|
10
10
|
|
11
11
|
interval = (Rack::Latency.get_wait).to_i
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
if defined?(Rails)
|
13
|
+
start(interval) if Rack::Latency.get_environments.include?(Rails.env.to_sym)
|
14
|
+
else
|
15
|
+
start(interval) if Rack::Latency.get_environments.include(ENV["RACK_ENV"].to_sym)
|
16
|
+
end
|
15
17
|
end
|
16
18
|
|
17
19
|
def call(env)
|
@@ -21,6 +23,11 @@ module Rack
|
|
21
23
|
|
22
24
|
private
|
23
25
|
|
26
|
+
def start(interval)
|
27
|
+
@logger.info "-> rack-latency starting in interval mode (#{interval}s)"
|
28
|
+
Thread.new { report(interval) }
|
29
|
+
end
|
30
|
+
|
24
31
|
def report(interval)
|
25
32
|
loop do
|
26
33
|
Rack::Latency.measurements.each do |uri, opts|
|
data/lib/rack/latency/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-latency
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chad Bailey
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
11
|
+
date: 2014-04-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|