diff --git a/sentry-sidekiq/lib/sentry/sidekiq/sentry_context_middleware.rb b/sentry-sidekiq/lib/sentry/sidekiq/sentry_context_middleware.rb index b6cde1ea5..748ca0155 100644 --- a/sentry-sidekiq/lib/sentry/sidekiq/sentry_context_middleware.rb +++ b/sentry-sidekiq/lib/sentry/sidekiq/sentry_context_middleware.rb @@ -1,9 +1,12 @@ +# frozen_string_literal: true + require 'sentry/sidekiq/context_filter' module Sentry module Sidekiq class SentryContextServerMiddleware - OP_NAME = "queue.sidekiq".freeze + OP_NAME = "queue.sidekiq" + SPAN_ORIGIN = "auto.queue.sidekiq" def call(_worker, job, queue) return yield unless Sentry.initialized? @@ -40,7 +43,13 @@ def build_tags(tags) end def start_transaction(scope, env) - options = { name: scope.transaction_name, source: scope.transaction_source, op: OP_NAME } + options = { + name: scope.transaction_name, + source: scope.transaction_source, + op: OP_NAME, + origin: SPAN_ORIGIN + } + transaction = Sentry.continue_trace(env, **options) Sentry.start_transaction(transaction: transaction, **options) end diff --git a/sentry-sidekiq/spec/sentry/sidekiq/sentry_context_middleware_spec.rb b/sentry-sidekiq/spec/sentry/sidekiq/sentry_context_middleware_spec.rb index f7c1a21a3..8d28577e7 100644 --- a/sentry-sidekiq/spec/sentry/sidekiq/sentry_context_middleware_spec.rb +++ b/sentry-sidekiq/spec/sentry/sidekiq/sentry_context_middleware_spec.rb @@ -57,6 +57,12 @@ expect(event.tags.keys).to include(:"sidekiq.marvel", :"sidekiq.dc") end + it "has the correct origin" do + execute_worker(processor, TagsWorker) + transaction = transport.events.last + expect(transaction.contexts.dig(:trace, :origin)).to eq('auto.queue.sidekiq') + end + context "with trace_propagation_headers" do let(:parent_transaction) { Sentry.start_transaction(op: "sidekiq") }