module Sidekiq::CloudWatchMetrics

Public Class Methods

enable!(**kwargs) click to toggle source
# File lib/sidekiq/cloudwatchmetrics.rb, line 10
def self.enable!(**kwargs)
  Sidekiq.configure_server do |config|
    publisher = Publisher.new(**kwargs)

    if Sidekiq.options[:lifecycle_events].has_key?(:leader)
      # Only publish metrics on the leader if we have a leader (sidekiq-ent)
      config.on(:leader) do
        publisher.start
      end
    else
      # Otherwise pubishing from every node doesn't hurt, it's just wasteful
      config.on(:startup) do
        publisher.start
      end
    end

    config.on(:quiet) do
      publisher.quiet if publisher.running?
    end

    config.on(:shutdown) do
      publisher.stop if publisher.running?
    end
  end
end