Search code examples
ruby-on-railsrubysidekiqsentry

How to find an event in sentry by job arguments?


I have a rails app, sidekiq and sentry.

I want to find event in sentry by job arguments. Sample: I have SomeJob which executed with arguments [{some_arg: 'Arg1'}]

Job failed with error and send event to sentry.

How I can find event by job arguments?

I try full-text search, but it doesn't work


Solution

  • Search in sentry is limited by what they allow you to search by.

    From reading their Search docs briefly you can either use:

    • sentry tags
    • messages

    Either way, you would want to enrich your sentry events.

    For example, let's assume you will rescue from the error raised in your job

    class SomeJob
    
      include Sidekiq::Worker
      
      def perform(args)
    
         # do stuff with args
    
      rescue StandardError
        SentryError.new(args: args)
      end
    end
    

    SentryJobError is really just a PORO that would be called by your job classes.

    class SentryJobError
    
      def initialize(args:)
        return if Rails.env.development?
        
        Sentry.configure_scope do |scope|
          scope.set_context('job_args', { args: args })
          scope.set_context('message', 'job ${args[:some_arg]} failed')
        end
      end
    
    end