module Sentry::Resque
Constants
- VERSION
Public Instance Methods
finish_transaction(transaction, status)
click to toggle source
# File lib/sentry/resque.rb, line 60 def finish_transaction(transaction, status) return unless transaction transaction.set_http_status(status) transaction.finish end
generate_contexts()
click to toggle source
# File lib/sentry/resque.rb, line 31 def generate_contexts context = {} if payload["class"] == "ActiveJob::QueueAdapters::ResqueAdapter::JobWrapper" active_job_payload = payload["args"].first context[:"Active-Job"] = { job_class: active_job_payload["job_class"], job_id: active_job_payload["job_id"], arguments: active_job_payload["arguments"], executions: active_job_payload["executions"], exception_executions: active_job_payload["exception_executions"], locale: active_job_payload["locale"], enqueued_at: active_job_payload["enqueued_at"], queue: queue, worker: worker.to_s } else context[:"Resque"] = { job_class: payload["class"], arguments: payload["args"], queue: queue, worker: worker.to_s } end context end
perform()
click to toggle source
Calls superclass method
# File lib/sentry/resque.rb, line 7 def perform return super unless Sentry.initialized? Sentry.with_scope do |scope| begin contexts = generate_contexts scope.set_contexts(**contexts) scope.set_tags("resque.queue" => queue) scope.set_transaction_name(contexts.dig(:"Active-Job", :job_class) || contexts.dig(:"Resque", :job_class)) transaction = Sentry.start_transaction(name: scope.transaction_name, op: "resque") scope.set_span(transaction) if transaction super finish_transaction(transaction, 200) rescue Exception => exception ::Sentry::Resque.capture_exception(exception, hint: { background: false }) finish_transaction(transaction, 500) raise end end end