Class: Sidekiq::Middleware::Server::Logging

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_semantic_logger/extensions/sidekiq/sidekiq.rb

Instance Method Summary collapse

Instance Method Details

#call(worker, item, queue) ⇒ Object

rubocop:disable Style/ExplicitBlockArgument



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/rails_semantic_logger/extensions/sidekiq/sidekiq.rb', line 45

def call(worker, item, queue)
  SemanticLogger.tagged(queue: queue) do
    worker.logger.info(
      "Start #perform",
      metric:        "sidekiq.queue.latency",
      metric_amount: job_latency_ms(item)
    )
    worker.logger.measure_info(
      "Completed #perform",
      on_exception_level: :error,
      log_exception:      :full,
      metric:             "sidekiq.job.perform"
    ) { yield }
  end
end

#job_latency_ms(job) ⇒ Object



61
62
63
64
65
# File 'lib/rails_semantic_logger/extensions/sidekiq/sidekiq.rb', line 61

def job_latency_ms(job)
  return unless job && job["enqueued_at"]

  (Time.now.to_f - job["enqueued_at"].to_f) * 1000
end