class InfluxReporter::Integration::Sidekiq

Constants

KIND
PART_KIND
PERFORM_KIND
PERFORM_TRACE

Public Instance Methods

call(worker, item, queue) { || ... } click to toggle source
# File lib/influx_reporter/integration/sidekiq.rb, line 34
def call(worker, item, queue)
  performance_trace(worker, item, queue) do
    yield
  end
end

Private Instance Methods

get_worker_name(worker, item) click to toggle source
# File lib/influx_reporter/integration/sidekiq.rb, line 63
def get_worker_name(worker, item)
  item['wrapped'.freeze] || worker.class.to_s
end
performance_trace(worker, item, queue) { || ... } click to toggle source
# File lib/influx_reporter/integration/sidekiq.rb, line 42
def performance_trace(worker, item, queue)
  return yield unless worker.class.performance_trace?

  transaction = InfluxReporter.transaction get_worker_name(worker, item), KIND
  transaction.extra_tags do |extra|
    extra[:sidekiq_queue] = queue
  end
  response_code = 500
  trace = transaction&.trace PERFORM_TRACE, PERFORM_KIND

  begin
    yield
    response_code = 200
  ensure
    InfluxReporter::Client.inst.current_transaction = nil
    trace&.done
    transaction&.submit(response_code)
  end
  InfluxReporter.flush_transactions_if_needed
end