Skip to content

Commit 7253347

Browse files
committed
fix: custom_labels on SidekiqStatsCollector
1 parent 4bd3817 commit 7253347

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed

lib/prometheus_exporter/server/sidekiq_stats_collector.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,12 @@ def metrics
3030
SIDEKIQ_STATS_GAUGES.each_key { |name| gauges[name]&.reset! }
3131

3232
sidekiq_metrics.map do |metric|
33+
labels = metric.fetch("custom_labels", {})
3334
SIDEKIQ_STATS_GAUGES.map do |name, help|
3435
if (value = metric["stats"][name])
3536
gauge =
3637
gauges[name] ||= PrometheusExporter::Metric::Gauge.new("sidekiq_stats_#{name}", help)
37-
gauge.observe(value)
38+
gauge.observe(value, labels)
3839
end
3940
end
4041
end

test/server/sidekiq_stats_collector_test.rb

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,38 @@ def test_collecting_metrics
3939
assert_equal expected, metrics.map(&:metric_text)
4040
end
4141

42+
def test_collecting_metrics_with_custom_labels
43+
collector.collect(
44+
"stats" => {
45+
"dead_size" => 1,
46+
"enqueued" => 2,
47+
"failed" => 3,
48+
"processed" => 4,
49+
"processes_size" => 5,
50+
"retry_size" => 6,
51+
"scheduled_size" => 7,
52+
"workers_size" => 8,
53+
},
54+
"custom_labels" => {
55+
"service" => "test",
56+
"foo" => "bar",
57+
},
58+
)
59+
60+
metrics = collector.metrics
61+
expected = [
62+
"sidekiq_stats_dead_size{service=\"test\",foo=\"bar\"} 1",
63+
"sidekiq_stats_enqueued{service=\"test\",foo=\"bar\"} 2",
64+
"sidekiq_stats_failed{service=\"test\",foo=\"bar\"} 3",
65+
"sidekiq_stats_processed{service=\"test\",foo=\"bar\"} 4",
66+
"sidekiq_stats_processes_size{service=\"test\",foo=\"bar\"} 5",
67+
"sidekiq_stats_retry_size{service=\"test\",foo=\"bar\"} 6",
68+
"sidekiq_stats_scheduled_size{service=\"test\",foo=\"bar\"} 7",
69+
"sidekiq_stats_workers_size{service=\"test\",foo=\"bar\"} 8",
70+
]
71+
assert_equal expected, metrics.map(&:metric_text)
72+
end
73+
4274
def test_only_fresh_metrics_are_collected
4375
stub_monotonic_clock(1.0) do
4476
collector.collect(

0 commit comments

Comments
 (0)