Sha256: 000de8649f00f2184ea6c84226df1340c4e157927b7270892f826bccf1d242be

Contents?: true

Size: 1 KB

Versions: 26

Compression:

Stored size: 1 KB

Contents

module Sapience
  module Extensions
    module ActiveJob
      class Notifications < ::Sapience::Extensions::Notifications

        # Options:
        #
        # *<tt>:metric_name</tt> - the metric name, defaults to "activejob.perform"
        # *<tt>:tags</tt>        - additional tags
        def initialize(opts = {})
          super
          @metric_name = opts[:metric_name] || "activejob.perform"

          Sapience::Extensions::Notifications.subscribe "perform.active_job" do |event|
            record event
          end
        end

        private

        def record(event) # rubocop:disable AbcSize
          return unless record?

          job  = event.payload[:job]
          name = job.class.name.sub(/Job$/, "").underscore
          tags = self.tags + %W(name:#{name} queue:#{job.queue_name})
          metrics.batch do
            metrics.increment metric_name, tags: tags
            metrics.timing "#{metric_name}.time", event.duration, tags: tags
          end
        end
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
sapience-2.4.0 lib/sapience/extensions/active_job/notifications.rb
sapience-2.3.5 lib/sapience/extensions/active_job/notifications.rb
sapience-2.3.4 lib/sapience/extensions/active_job/notifications.rb
sapience-2.3.3 lib/sapience/extensions/active_job/notifications.rb
sapience-2.2.3 lib/sapience/extensions/active_job/notifications.rb
sapience-2.2.1 lib/sapience/extensions/active_job/notifications.rb
sapience-2.2.0 lib/sapience/extensions/active_job/notifications.rb
sapience-2.1.0 lib/sapience/extensions/active_job/notifications.rb
sapience-2.0.5 lib/sapience/extensions/active_job/notifications.rb
sapience-2.0.4 lib/sapience/extensions/active_job/notifications.rb
sapience-2.0.3 lib/sapience/extensions/active_job/notifications.rb
sapience-2.0.2 lib/sapience/extensions/active_job/notifications.rb
sapience-2.0.1 lib/sapience/extensions/active_job/notifications.rb
sapience-2.0.0 lib/sapience/extensions/active_job/notifications.rb
sapience-1.0.15 lib/sapience/extensions/active_job/notifications.rb
sapience-1.0.14 lib/sapience/extensions/active_job/notifications.rb
sapience-1.0.13 lib/sapience/extensions/active_job/notifications.rb
sapience-1.0.12 lib/sapience/extensions/active_job/notifications.rb
sapience-1.0.11 lib/sapience/extensions/active_job/notifications.rb
sapience-1.0.10 lib/sapience/extensions/active_job/notifications.rb