Sha256: 07594916c6f39053711ba20154c7d26656fb6f50da70c54646c16d6cedc67adc

Contents?: true

Size: 1.87 KB

Versions: 6

Compression:

Stored size: 1.87 KB

Contents

module Rails
  module Instrumentation
    module ActionMailerSubscriber
      include Subscriber

      EVENT_NAMESPACE = 'action_mailer'.freeze

      EVENTS = %w[
        receive
        deliver
        process
      ].freeze

      # rubocop:disable Style/MutableConstant
      BASE_TAGS = { 'component' => 'ActionMailer' }
      # rubocop:enable Style/MutableConstant.

      class << self
        def receive(event)
          tags = span_tags(
            'mailer' => event.payload[:mailer],
            'message.id' => event.payload[:message_id],
            'message.subject' => event.payload[:subject],
            'message.to' => event.payload[:to],
            'message.from' => event.payload[:from],
            'message.bcc' => event.payload[:bcc],
            'message.cc' => event.payload[:cc],
            'message.date' => event.payload[:date],
            'message.body' => event.payload[:mail]
          )

          Utils.trace_notification(event: event, tags: tags)
        end

        def deliver(event)
          tags = span_tags(
            'mailer' => event.payload[:mailer],
            'message.id' => event.payload[:message_id],
            'message.subject' => event.payload[:subject],
            'message.to' => event.payload[:to],
            'message.from' => event.payload[:from],
            'message.bcc' => event.payload[:bcc],
            'message.cc' => event.payload[:cc],
            'message.date' => event.payload[:date],
            'message.body' => event.payload[:mail]
          )

          Utils.trace_notification(event: event, tags: tags)
        end

        def process(event)
          tags = span_tags(
            'mailer' => event.payload[:mailer],
            'action' => event.payload[:action],
            'args' => event.payload[:args]
          )

          Utils.trace_notification(event: event, tags: tags)
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
signalfx-rails-instrumentation-0.2.1 lib/rails/instrumentation/subscribers/action_mailer_subscriber.rb
signalfx-rails-instrumentation-0.2.0 lib/rails/instrumentation/subscribers/action_mailer_subscriber.rb
rails-instrumentation-0.1.5 lib/rails/instrumentation/subscribers/action_mailer_subscriber.rb
rails-instrumentation-0.1.4 lib/rails/instrumentation/subscribers/action_mailer_subscriber.rb
rails-instrumentation-0.1.3 lib/rails/instrumentation/subscribers/action_mailer_subscriber.rb
rails-instrumentation-0.1.2 lib/rails/instrumentation/subscribers/action_mailer_subscriber.rb