Sha256: bf87ab1807fd40668339f9c8cd7d533807e32afbe81fd516ea51c555863dc83e

Contents?: true

Size: 764 Bytes

Versions: 34

Compression:

Stored size: 764 Bytes

Contents

# frozen_string_literal: true

module PlainApm
  module Extensions
    module TraceId
      module ActiveJob
        attr_accessor :trace_id

        def initialize(*arguments)
          super(*arguments)

          # Either from request headers / a previous job, or a new trace.
          @trace_id = PlainApm::Extensions::TraceId.current || SecureRandom.uuid
        end

        def serialize
          super.update("trace_id" => trace_id)
        end

        def deserialize(job)
          PlainApm::Extensions::TraceId.current = job["trace_id"]

          super(job)
        end
      end

      ##
      # Allow tracing request ID through jobs
      ActiveSupport.on_load(:active_job) do |klass|
        klass.prepend(ActiveJob)
      end
    end
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
plain_apm-0.9.2 lib/plain_apm/extensions/exceptions/active_job.rb
plain_apm-0.9.1 lib/plain_apm/extensions/exceptions/active_job.rb
plain_apm-0.9.0 lib/plain_apm/extensions/exceptions/active_job.rb
plain_apm-0.8.8 lib/plain_apm/extensions/exceptions/active_job.rb
plain_apm-0.8.7 lib/plain_apm/extensions/exceptions/active_job.rb
plain_apm-0.8.6 lib/plain_apm/extensions/exceptions/active_job.rb
plain_apm-0.8.5 lib/plain_apm/extensions/exceptions/active_job.rb
plain_apm-0.8.4 lib/plain_apm/extensions/exceptions/active_job.rb
plain_apm-0.8.3 lib/plain_apm/extensions/exceptions/active_job.rb
plain_apm-0.8.2 lib/plain_apm/extensions/exceptions/active_job.rb
plain_apm-0.8.1 lib/plain_apm/extensions/exceptions/active_job.rb
plain_apm-0.8.0 lib/plain_apm/extensions/exceptions/active_job.rb
plain_apm-0.7.1 lib/plain_apm/extensions/exceptions/active_job.rb
plain_apm-0.7.0 lib/plain_apm/extensions/exceptions/active_job.rb
plain_apm-0.6.7 lib/plain_apm/extensions/exceptions/active_job.rb
plain_apm-0.6.6 lib/plain_apm/extensions/exceptions/active_job.rb
plain_apm-0.6.5 lib/plain_apm/extensions/exceptions/active_job.rb
plain_apm-0.6.4 lib/plain_apm/extensions/exceptions/active_job.rb
plain_apm-0.6.3 lib/plain_apm/extensions/exceptions/active_job.rb
plain_apm-0.6.2 lib/plain_apm/extensions/exceptions/active_job.rb