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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3707ebd2fc7528f274027a9089e6c9a68f8371f23ddcf83bb367ebe594972667
4
- data.tar.gz: ec772d13937e655834c9863380c8c651a9d2847a0598841c6763b61b21cc2568
3
+ metadata.gz: e583f65c0c003cc4543482e3730952319ddc0069d97332f4f40b85701f61eebd
4
+ data.tar.gz: efdc10ea1bf9f75333e4605a4ffbc7dd63e40d3e198a552badfb1a79bad21697
5
5
  SHA512:
6
- metadata.gz: 59e4930d3819da8e2c3f6e5903e12683a2eba0c4514f07ab0eb9ed65f80d0a71ebf6f2949e1445ca5b6165c477a4e0aa87e2c994f21afe37bddfbe69e1cde76f
7
- data.tar.gz: f7f1395eb1d880ec10a5344c409216017156d2ae977157968fe99de800ba594ae2621ed44173becf809b4872efbc256e175761d3c7147369d05630a2fd90dddf
6
+ metadata.gz: 03fe9362bc04329ad02fccb8cc2836176bfbd1d06cef683a24dffa12f399386b592efcc1e8271b854c766a3c495a7d9abeda9e0736d59c86cda38723379c5690
7
+ data.tar.gz: b80ca0e325253750e54771f9dcf03e60e88c99b999b2dff0f7b596186c23356095dad90fd5ddc0bde1c2ec57fd6cf2475f3d8452c260467f9ef9f7730aaffeef
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |gem|
4
4
  gem.name = "hirefire-resource"
5
- gem.version = "0.6.0"
5
+ gem.version = "0.7.0"
6
6
  gem.platform = Gem::Platform::RUBY
7
7
  gem.authors = "Michael van Rooijen"
8
8
  gem.email = "michael@hirefire.io"
@@ -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) if 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
@@ -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
- attr_accessor :dynos
22
+ def dynos
23
+ @dynos ||= []
24
+ end
10
25
 
11
- # Sets the `@dynos` instance variable to an empty Array to hold all the dyno configuration.
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
- @dynos << { :name => name, :quantity => block }
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.6.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-09-06 00:00:00.000000000 Z
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