sidekiq_autoscale 0.7.1 → 1.0.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 +4 -4
- data/README.md +2 -8
- data/lib/generators/sidekiq_autoscale/install/templates/sidekiq_autoscale_initializer_template.template +5 -7
- data/lib/sidekiq_autoscale/config/shared_configs.rb +0 -1
- data/lib/sidekiq_autoscale/version.rb +1 -1
- data/lib/sidekiq_autoscale.rb +0 -1
- metadata +6 -18
- data/lib/sidekiq_autoscale/adapters/heroku_adapter.rb +0 -31
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e3c5304f9d7086b26673e661842319fa5e61de1ea329948e0287a51bd50b0fb5
|
|
4
|
+
data.tar.gz: 30f9257eb21e5397a8ffcfda45ac265c840ab2b464507790c2811f5715cbc10c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6381af328516316689183bff701f923ca7f4199f07566421c4f44c2d383239fab447cf2a8c307e1bdf79041badac938b58126222baae1cde0df28b4b9b7756ba
|
|
7
|
+
data.tar.gz: 3228342fe0d8b54e20ad0677f7a122830c99f7c102b33f5f13a7097ceee7c67f81b03663f11df0d4fb7abd65b8857504f01614964aab66edb532dd0c104afb8e
|
data/README.md
CHANGED
|
@@ -75,17 +75,11 @@ SidekiqAutoscale.configure do |config|
|
|
|
75
75
|
|
|
76
76
|
# Current adapters are:
|
|
77
77
|
# :nil - scaling events do nothing
|
|
78
|
-
# :
|
|
78
|
+
# :kubernetes - scale a Kubernetes deployment
|
|
79
79
|
|
|
80
|
-
config.adapter = :
|
|
80
|
+
config.adapter = :kubernetes
|
|
81
81
|
|
|
82
82
|
# Any configuration required for the selected adapter
|
|
83
|
-
# Heroku requires the following:
|
|
84
|
-
config.adapter_config = {
|
|
85
|
-
api_key: "HEROKU_API_KEY",
|
|
86
|
-
worker_dyno_name: "DYNO_WORKER_NAME",
|
|
87
|
-
app_name: "HEROKU_APP_NAME"
|
|
88
|
-
}
|
|
89
83
|
# Kubernetes requires the following:
|
|
90
84
|
config.adapter_config = {
|
|
91
85
|
deployment_name: "myapp-sidekiq",
|
|
@@ -24,17 +24,15 @@ SidekiqAutoscale.configure do |config|
|
|
|
24
24
|
|
|
25
25
|
# Current adapters are:
|
|
26
26
|
# :nil - scaling events do nothing
|
|
27
|
-
# :
|
|
27
|
+
# :kubernetes - scale a Kubernetes deployment
|
|
28
28
|
|
|
29
|
-
config.adapter = :
|
|
29
|
+
config.adapter = :kubernetes
|
|
30
30
|
|
|
31
31
|
# Any configuration required for the selected adapter
|
|
32
|
-
#
|
|
32
|
+
# Kubernetes requires the following config: deployment_name
|
|
33
33
|
config.adapter_config = {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
app_name: "HEROKU_APP_NAME"
|
|
37
|
-
}
|
|
34
|
+
deployment_name: "SIDEKIQ_DEPLOYMENT_NAME"
|
|
35
|
+
}
|
|
38
36
|
|
|
39
37
|
# The minimum amount of time to wait between scaling events
|
|
40
38
|
# Useful to tweak based on how long it takes for a new worker
|
|
@@ -43,7 +43,6 @@ module SidekiqAutoscale
|
|
|
43
43
|
def adapter_klass
|
|
44
44
|
@adapter_klass ||= begin
|
|
45
45
|
known_adapters = [::SidekiqAutoscale::NilAdapter,
|
|
46
|
-
::SidekiqAutoscale::HerokuAdapter,
|
|
47
46
|
::SidekiqAutoscale::KubernetesAdapter].freeze
|
|
48
47
|
adapter_klass_name = known_adapters.map(&:to_s).find {|i| i.end_with?("#{adapter.to_s.camelize}Adapter") }
|
|
49
48
|
if adapter_klass_name.nil?
|
data/lib/sidekiq_autoscale.rb
CHANGED
|
@@ -13,7 +13,6 @@ require "sidekiq_autoscale/strategies/linear_scaling"
|
|
|
13
13
|
require "sidekiq_autoscale/strategies/oldest_job_scaling"
|
|
14
14
|
require "sidekiq_autoscale/strategies/dynamic_latency_scaling"
|
|
15
15
|
require "sidekiq_autoscale/adapters/nil_adapter"
|
|
16
|
-
require "sidekiq_autoscale/adapters/heroku_adapter"
|
|
17
16
|
require "sidekiq_autoscale/adapters/kubernetes_adapter"
|
|
18
17
|
require "sidekiq_autoscale/middleware"
|
|
19
18
|
require "sidekiq_autoscale/config/callbacks"
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sidekiq_autoscale
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 1.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Steven Allen
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-04-
|
|
11
|
+
date: 2026-04-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: addressable
|
|
@@ -38,20 +38,6 @@ dependencies:
|
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: 0.17.2
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: platform-api
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - "~>"
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '2.2'
|
|
48
|
-
type: :runtime
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - "~>"
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '2.2'
|
|
55
41
|
- !ruby/object:Gem::Dependency
|
|
56
42
|
name: railties
|
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -329,7 +315,6 @@ files:
|
|
|
329
315
|
- lib/generators/sidekiq_autoscale/install/install_generator.rb
|
|
330
316
|
- lib/generators/sidekiq_autoscale/install/templates/sidekiq_autoscale_initializer_template.template
|
|
331
317
|
- lib/sidekiq_autoscale.rb
|
|
332
|
-
- lib/sidekiq_autoscale/adapters/heroku_adapter.rb
|
|
333
318
|
- lib/sidekiq_autoscale/adapters/kubernetes_adapter.rb
|
|
334
319
|
- lib/sidekiq_autoscale/adapters/nil_adapter.rb
|
|
335
320
|
- lib/sidekiq_autoscale/config/callbacks.rb
|
|
@@ -348,7 +333,10 @@ files:
|
|
|
348
333
|
homepage: https://github.com/tractionguest/sidekiq_autoscaling
|
|
349
334
|
licenses:
|
|
350
335
|
- MIT
|
|
351
|
-
metadata:
|
|
336
|
+
metadata:
|
|
337
|
+
changelog_uri: https://github.com/tractionguest/sidekiq_autoscaling/blob/master/CHANGELOG.md
|
|
338
|
+
source_code_uri: https://github.com/tractionguest/sidekiq_autoscaling
|
|
339
|
+
bug_tracker_uri: https://github.com/tractionguest/sidekiq_autoscaling/issues
|
|
352
340
|
post_install_message:
|
|
353
341
|
rdoc_options: []
|
|
354
342
|
require_paths:
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module SidekiqAutoscale
|
|
4
|
-
class HerokuAdapter
|
|
5
|
-
def initialize
|
|
6
|
-
require "platform-api"
|
|
7
|
-
@app_name = SidekiqAutoscale.adapter_config[:app_name]
|
|
8
|
-
@dyno_name = SidekiqAutoscale.adapter_config[:worker_dyno_name]
|
|
9
|
-
@client = PlatformAPI.connect_oauth(SidekiqAutoscale.adapter_config[:api_key])
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def worker_count
|
|
13
|
-
@client.formation.list(@app_name)
|
|
14
|
-
.select {|i| i["type"] == @dyno_name }
|
|
15
|
-
.map {|i| i["quantity"] }
|
|
16
|
-
.reduce(0, &:+)
|
|
17
|
-
rescue Excon::Errors::Error => e
|
|
18
|
-
SidekiqAutoscale.on_scaling_error(e)
|
|
19
|
-
0
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def worker_count=(val)
|
|
23
|
-
return if val == worker_count
|
|
24
|
-
|
|
25
|
-
@client.formation.update(@app_name, @dyno_name, quantity: val)
|
|
26
|
-
SidekiqAutoscale.logger.info("[SIDEKIQ_SCALE][HEROKU_ACTION] Set new worker count to #{val} (previously #{worker_count})")
|
|
27
|
-
rescue Excon::Errors::Error, Heroku::API::Errors::Error => e
|
|
28
|
-
SidekiqAutoscale.on_scaling_error(e)
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|