diff --git a/lib/sidekiq_prometheus.rb b/lib/sidekiq_prometheus.rb index 986c85c..36decdf 100644 --- a/lib/sidekiq_prometheus.rb +++ b/lib/sidekiq_prometheus.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require "benchmark" require "rack" require "rackup" require "prometheus/client" diff --git a/lib/sidekiq_prometheus/job_metrics.rb b/lib/sidekiq_prometheus/job_metrics.rb index 2e2de56..ccbc452 100644 --- a/lib/sidekiq_prometheus/job_metrics.rb +++ b/lib/sidekiq_prometheus/job_metrics.rb @@ -15,7 +15,7 @@ def call(worker, job, queue) labels.merge!(custom_labels(worker)) result = nil - duration = Benchmark.realtime { result = yield } + duration = measuring_duration { result = yield } # In case the labels have changed after the worker perform method has been called labels.merge!(custom_labels(worker)) @@ -52,4 +52,10 @@ def registry def custom_labels(worker) worker.respond_to?(:prometheus_labels) ? worker.prometheus_labels : {} end + + def measuring_duration + start_time = Process.clock_gettime(Process::CLOCK_MONOTONIC) + yield + Process.clock_gettime(Process::CLOCK_MONOTONIC) - start_time + end end