Skip to content

Commit 42489fc

Browse files
Merge pull request #12 from Teamtailor/handle-paused-sidekiq-queues
Avoid scaling up Sidekiq due to paused queues
2 parents 5dc371e + e32057f commit 42489fc

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

lib/services/auto_scaling_metrics/sidekiq_reporter.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def self.collect_metrics
1515
Sidekiq::Queue.all.each do |queue|
1616
AutoScalingMetrics::Reporter.add_metric(
1717
metric_name: "sidekiq_queue_latency",
18-
value: queue.latency,
18+
value: queue.paused? ? 0 : queue.latency,
1919
unit: "Seconds",
2020
dimensions: [{name: "queue_name", value: queue.name}]
2121
)

spec/services/sidekiq_reporter_spec.rb

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,10 @@
1616

1717
describe ".collect_metrics" do
1818
it "adds a metric for each Sidekiq queue" do
19-
queue1 = double(name: "queue1", latency: 10)
20-
queue2 = double(name: "queue2", latency: 20)
21-
allow(Sidekiq::Queue).to receive(:all).and_return([queue1, queue2])
19+
queue1 = double(name: "queue1", latency: 10, paused?: false)
20+
queue2 = double(name: "queue2", latency: 15, paused?: true)
21+
queue3 = double(name: "queue3", latency: 20, paused?: false)
22+
allow(Sidekiq::Queue).to receive(:all).and_return([queue1, queue2, queue3])
2223

2324
expect(RequestQueueTime::AutoScalingMetrics::Reporter).to receive(:add_metric).with(
2425
metric_name: "sidekiq_queue_latency",
@@ -28,10 +29,16 @@
2829
)
2930
expect(RequestQueueTime::AutoScalingMetrics::Reporter).to receive(:add_metric).with(
3031
metric_name: "sidekiq_queue_latency",
31-
value: 20,
32+
value: 0,
3233
unit: "Seconds",
3334
dimensions: [{name: "queue_name", value: "queue2"}]
3435
)
36+
expect(RequestQueueTime::AutoScalingMetrics::Reporter).to receive(:add_metric).with(
37+
metric_name: "sidekiq_queue_latency",
38+
value: 20,
39+
unit: "Seconds",
40+
dimensions: [{name: "queue_name", value: "queue3"}]
41+
)
3542

3643
described_class.collect_metrics
3744
end

0 commit comments

Comments
 (0)