hirefire-resource 0.6.0 → 0.7.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
  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