/
metrics_reporter.rb
41 lines (32 loc) · 1.04 KB
/
metrics_reporter.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# frozen_string_literal: true
require "active_support/subscriber"
require "active_support/core_ext/object/try"
module SidekiqPublisher
module MetricsReporter
class Subscriber < ActiveSupport::Subscriber
private
def count(metric, value)
SidekiqPublisher.metrics_reporter&.try(:count, metric, value) unless value.nil?
end
end
class PublisherSubscriber < Subscriber
def enqueue_batch(event)
count("sidekiq_publisher.published", event.payload[:published_count])
end
attach_to "publisher.sidekiq_publisher"
end
class JobSubscriber < Subscriber
def purge(event)
count("sidekiq_publisher.purged", event.payload[:purged_count])
end
attach_to "job.sidekiq_publisher"
end
class UnpublishedSubscriber < Subscriber
def unpublished(event)
SidekiqPublisher.metrics_reporter&.
try(:gauge, "sidekiq_publisher.unpublished_count", event.payload[:unpublished_count])
end
attach_to "reporter.sidekiq_publisher"
end
end
end