Sha256: 12ee0935a0baad5333c23b993c69b921f4a83705afc3d3697a59dd03fef5914b

Contents?: true

Size: 759 Bytes

Versions: 2

Compression:

Stored size: 759 Bytes

Contents

require 'active_support/concern'

module Roqua
  module Probes
    module BaseProbe
      extend ActiveSupport::Concern

      class_methods do
        def enable
          new.tap do |probe|
            probe_sym = probe.class.to_s.to_sym
            Appsignal::Minutely.probes.register(probe_sym, probe) unless Appsignal::Minutely.probes[probe_sym]
          end
        end
      end

      # do not override me, implement probes by implementing the #run method
      def call
        run
        Appsignal.increment_counter("probe.call.completed", 1, probe_name: self.class.name.demodulize.underscore)
      rescue => e
        Appsignal.send_error(e) { _1.set_namespace(Appsignal::Transaction::BACKGROUND_JOB) }
        raise
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
roqua-support-0.4.6 lib/roqua/probes/base_probe.rb
roqua-support-0.4.5 lib/roqua/probes/base_probe.rb