class Sidekiq::Datadog::Monitor::MetricsWorker

Public Instance Methods

perform() click to toggle source
# File lib/sidekiq/datadog/monitor/metrics_worker.rb, line 12
def perform
  statsd = ::Datadog::Statsd.new(Data.agent_host, Data.agent_port)

  return send_metrics(statsd) unless Data.batch

  statsd.batch { |batch_statsd| send_metrics(batch_statsd) }
end

Private Instance Methods

post_queue_latency(statsd, queue_name) click to toggle source
# File lib/sidekiq/datadog/monitor/metrics_worker.rb, line 35
def post_queue_latency(statsd, queue_name)
  latency = Sidekiq::Queue.new(queue_name).latency
  statsd.gauge('sidekiq.queue.latency', latency,
               tags: ["queue_name:#{queue_name}"].concat(Data.tags))
end
post_queue_size(statsd, queue_name, size) click to toggle source
# File lib/sidekiq/datadog/monitor/metrics_worker.rb, line 30
def post_queue_size(statsd, queue_name, size)
  statsd.gauge('sidekiq.queue.size', size,
               tags: ["queue_name:#{queue_name}"].concat(Data.tags))
end
send_metrics(statsd) click to toggle source
# File lib/sidekiq/datadog/monitor/metrics_worker.rb, line 22
def send_metrics(statsd)
  Sidekiq::Stats.new.queues.each_pair do |queue_name, size|
    post_queue_size(statsd, queue_name, size)

    post_queue_latency(statsd, queue_name)
  end
end