Sha256: 1ad05a75e3401eb60413efef9d816731f0d5e632b58e69b05c8460f5eb7f68b0
Contents?: true
Size: 1.15 KB
Versions: 1
Compression:
Stored size: 1.15 KB
Contents
# frozen_string_literal: true module SpartanAPM module Middleware module Sidekiq # Middleware that should be added to the start of the start of the middleware chain. class StartMiddleware def call(worker, msg, queue, &block) if SpartanAPM.ignore_request?("sidekiq", worker.class.name) yield else start_time = Time.now.to_f # This value is used in EndMiddleware to capture how long all the middleware # between the two middlewares took to execute. msg["spartan_apm.middleware_start_time"] = start_time SpartanAPM.measure("sidekiq", worker.class.name) do begin yield ensure # Capture how long the message was enqueued in Redis before a worker got the job. enqueued_time = msg["enqueued_at"].to_f if msg.is_a?(Hash) if enqueued_time && enqueued_time > 0 && start_time > enqueued_time SpartanAPM.capture_time(:queue, start_time - enqueued_time) end end end end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
spartan_apm-0.0.0.rc1 | lib/spartan_apm/middleware/sidekiq/start_middleware.rb |