hirefire-resource 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/hirefire-resource.gemspec +1 -1
- data/lib/hirefire/middleware.rb +3 -2
- data/lib/hirefire/resource.rb +19 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e583f65c0c003cc4543482e3730952319ddc0069d97332f4f40b85701f61eebd
|
4
|
+
data.tar.gz: efdc10ea1bf9f75333e4605a4ffbc7dd63e40d3e198a552badfb1a79bad21697
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03fe9362bc04329ad02fccb8cc2836176bfbd1d06cef683a24dffa12f399386b592efcc1e8271b854c766a3c495a7d9abeda9e0736d59c86cda38723379c5690
|
7
|
+
data.tar.gz: b80ca0e325253750e54771f9dcf03e60e88c99b999b2dff0f7b596186c23356095dad90fd5ddc0bde1c2ec57fd6cf2475f3d8452c260467f9ef9f7730aaffeef
|
data/hirefire-resource.gemspec
CHANGED
data/lib/hirefire/middleware.rb
CHANGED
@@ -108,7 +108,7 @@ module HireFire
|
|
108
108
|
# @param [String] the timestamp from HTTP_X_REQUEST_START.
|
109
109
|
#
|
110
110
|
def handle_queue(value)
|
111
|
-
log_queue(value)
|
111
|
+
HireFire::Resource.log_queue_metrics && value && log_queue(value)
|
112
112
|
end
|
113
113
|
|
114
114
|
# Writes the Heroku Router queue time to STDOUT.
|
@@ -126,7 +126,8 @@ module HireFire
|
|
126
126
|
# @return [Integer] the queue time in milliseconds.
|
127
127
|
#
|
128
128
|
def get_queue(value)
|
129
|
-
(Time.now.to_f * 1000).to_i - value.to_i
|
129
|
+
ms = (Time.now.to_f * 1000).to_i - value.to_i
|
130
|
+
ms < 0 ? 0 : ms
|
130
131
|
end
|
131
132
|
end
|
132
133
|
end
|
data/lib/hirefire/resource.rb
CHANGED
@@ -4,14 +4,30 @@ module HireFire
|
|
4
4
|
module Resource
|
5
5
|
extend self
|
6
6
|
|
7
|
+
# This option, when enabled, will write queue metrics to STDOUT,
|
8
|
+
# and is only required when using the Web.Logplex.QueueTime strategy.
|
9
|
+
#
|
10
|
+
# @param [Boolean] Whether or not the queue metrics should be logged.
|
11
|
+
#
|
12
|
+
attr_writer :log_queue_metrics
|
13
|
+
|
14
|
+
# @return [Boolean] True if the queue metrics option is enabled.
|
15
|
+
#
|
16
|
+
def log_queue_metrics
|
17
|
+
@log_queue_metrics ||= false
|
18
|
+
end
|
19
|
+
|
7
20
|
# @return [Array] The configured dynos.
|
8
21
|
#
|
9
|
-
|
22
|
+
def dynos
|
23
|
+
@dynos ||= []
|
24
|
+
end
|
10
25
|
|
11
|
-
#
|
26
|
+
# Configures HireFire::Resource.
|
12
27
|
#
|
13
28
|
# @example Resource Configuration
|
14
29
|
# HireFire::Resource.configure do |config|
|
30
|
+
# config.log_queue_metrics = true # disabled by default
|
15
31
|
# config.dyno(:worker) do
|
16
32
|
# # Macro or Custom logic for the :worker dyno here..
|
17
33
|
# end
|
@@ -20,7 +36,6 @@ module HireFire
|
|
20
36
|
# @yield [HireFire::Resource] to allow for block-style configuration.
|
21
37
|
#
|
22
38
|
def configure
|
23
|
-
@dynos ||= []
|
24
39
|
yield self
|
25
40
|
end
|
26
41
|
|
@@ -30,8 +45,7 @@ module HireFire
|
|
30
45
|
# @param [Proc] block an Integer containing the quantity calculation logic.
|
31
46
|
#
|
32
47
|
def dyno(name, &block)
|
33
|
-
|
48
|
+
dynos << { :name => name, :quantity => block }
|
34
49
|
end
|
35
50
|
end
|
36
51
|
end
|
37
|
-
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hirefire-resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael van Rooijen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Load- and schedule-based scaling for web- and worker dynos
|
14
14
|
email: michael@hirefire.io
|