Class: GvlMetricsMiddleware::Sidekiq
- Inherits:
-
Object
- Object
- GvlMetricsMiddleware::Sidekiq
- Includes:
- Sidekiq::ServerMiddleware
- Defined in:
- lib/gvl_metrics_middleware/sidekiq.rb
Constant Summary collapse
- @@reporter =
nil
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.reporter ⇒ Object
14 |
# File 'lib/gvl_metrics_middleware/sidekiq.rb', line 14 def reporter = @@reporter |
.reporter=(reporter) ⇒ Object
16 17 18 |
# File 'lib/gvl_metrics_middleware/sidekiq.rb', line 16 def reporter=(reporter) @@reporter = reporter end |
Instance Method Details
#call(job_instance, _job_payload, queue) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/gvl_metrics_middleware/sidekiq.rb', line 25 def call(job_instance, _job_payload, queue) reporter = self.class.reporter return yield if reporter.nil? || !GvlMetricsMiddleware.should_sample? gvl_times = GVLTiming.measure { yield } begin reporter.call(gvl_times.duration_ns, gvl_times.running_duration_ns, gvl_times.idle_duration_ns, gvl_times.stalled_duration_ns, job_class: job_instance.class.to_s, queue: queue) rescue => exception GvlMetricsMiddleware.on_report_failure&.call("Sidekiq", exception) raise(exception) unless GvlMetricsMiddleware.safe_guard? end end |