lib/sidekiq/prometheus/exporter/metrics.rb in sidekiq-prometheus-exporter-0.1.6 vs lib/sidekiq/prometheus/exporter/metrics.rb in sidekiq-prometheus-exporter-0.1.7
- old
+ new
@@ -8,10 +8,11 @@
QueueStats = Struct.new(:name, :size, :latency)
def initialize
@overview_stats = Sidekiq::Stats.new
@queues_stats = queues_stats
+ @max_processing_times = max_processing_times
end
def __binding__
binding
end
@@ -20,9 +21,20 @@
def queues_stats
Sidekiq::Queue.all.map do |queue|
QueueStats.new(queue.name, queue.size, queue.latency)
end
+ end
+
+ def max_processing_times
+ now = Time.now.to_i
+ Sidekiq::Workers.new
+ .map { |_, _, execution| execution }
+ .group_by { |execution| execution['queue'] }
+ .each_with_object({}) do |(queue, executions), memo|
+ oldest_execution = executions.min_by { |execution| execution['run_at'] }
+ memo[queue] = now - oldest_execution['run_at']
+ end
end
end
end
end