Sha256: cb9c7d4c1678a5b1b7e49ea84a3178405fb04db2e950679a53a35565141683eb
Contents?: true
Size: 1.45 KB
Versions: 6
Compression:
Stored size: 1.45 KB
Contents
# frozen_string_literal: true require 'redis' require 'redis-client' module Sidekiq module Instrument # Stores worker count with a key sidekiq_instrument_trace_workers:#{namespace}:in_queue # Values are hash having keys as worker names. class WorkerMetrics class_attribute :enabled, :namespace class << self def trace_workers_increment_counter(klass_name) return unless enabled? Sidekiq.redis do |redis| redis.hincrby(worker_metric_name, klass_name, 1) end end def trace_workers_decrement_counter(klass_name) return unless enabled? Sidekiq.redis do |redis| redis.hincrby(worker_metric_name, klass_name, -1) end end def reset_counters return unless enabled? Sidekiq.redis do |redis| all_keys = redis.hgetall(worker_metric_name) redis.hdel(worker_metric_name, all_keys.keys) end end def reset_counter(key) return unless enabled? Sidekiq.redis do |redis| redis.hdel(worker_metric_name, key) end end def workers_in_queue return unless enabled? Sidekiq.redis do |redis| redis.hgetall(worker_metric_name) end end def worker_metric_name "sidekiq_instrument_trace_workers:#{namespace}:in_queue" end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems