sidekiq-datadog-monitor 1.0.5 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 39eecbfdc5c7bb09b4b328637a5875f7036a840271930dbd63adfadd7648521f
4
- data.tar.gz: da573bd3f5cf7547fae79a3eae670c70be017e96360f670abb796771289b5a69
3
+ metadata.gz: 709613ebbfff56801af234ef64b3250ef6203a01e4f04a799fa63da34f808694
4
+ data.tar.gz: 3abe47720b64d535b0e194b7711deb33edf1050d293707a3fe73ed524e5e4ccc
5
5
  SHA512:
6
- metadata.gz: 0fae015feff2028c2ebba9f681d70a5583dfed841650fbe0655987bc60322b7f707b7f0190cef1b7ab2391c1c752b8a532c4f644ae93f11626e1cf0c141c4032
7
- data.tar.gz: b4250d36f93d1dd43b84df0e182a8d9ed34bdec094a85ecce29fdb821a94a3beb933693b2068aea62f900ee91fd30e9028a4d934b8f25f0b3f014da51af40dbf
6
+ metadata.gz: 5ddff6ed74a41711c72276727628313f9fe524ebc5de6672a13410edb3d683eccbfe84958c25b873cc27c250c540e0421e8fd692a7ee487dd7e37522ccba63fd
7
+ data.tar.gz: ba1963c7642218ccc7ba32f53899e8cf786f41a76f4caf716346439d3a65cebda6db0a70582fba2254f7bdfd73f82fb228429eadeea1180db831a7545183b61c
data/bin/console CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "sidekiq/datadog/monitor"
3
+ require 'bundler/setup'
4
+ require 'sidekiq/datadog/monitor'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +10,5 @@ require "sidekiq/datadog/monitor"
10
10
  # require "pry"
11
11
  # Pry.start
12
12
 
13
- require "irb"
13
+ require 'irb'
14
14
  IRB.start(__FILE__)
@@ -34,4 +34,4 @@ module Sidekiq
34
34
  end
35
35
  end
36
36
  end
37
- end
37
+ end
@@ -11,22 +11,22 @@ module Sidekiq
11
11
  end
12
12
 
13
13
  def send_metrics
14
- Sidekiq::Stats.new.queues.each_pair do |queue_name, size|
15
- post_queue_stats(statsd, queue_name, size)
14
+ Sidekiq::Queue.all.each do |queue|
15
+ post_queue_stats(queue)
16
16
  end
17
17
  Sidekiq::ProcessSet.new.each do |process|
18
18
  post_process_stats(process)
19
19
  end
20
+ post_scheduled_stats
20
21
  end
21
22
 
22
23
  protected
23
24
 
24
- def post_queue_stats(statsd, queue_name, size)
25
- latency = Sidekiq::Queue.new(queue_name).latency
26
- tags = tags_builder.build(queue_name: queue_name)
25
+ def post_queue_stats(queue)
26
+ tags = tags_builder.build(queue_name: queue.name)
27
27
 
28
- statsd.gauge('sidekiq.queue.size', size, tags: tags)
29
- statsd.gauge('sidekiq.queue.latency', latency, tags: tags)
28
+ statsd.gauge('sidekiq.queue.size', queue.size, tags: tags)
29
+ statsd.gauge('sidekiq.queue.latency', queue.latency, tags: tags)
30
30
  end
31
31
 
32
32
  def post_process_stats(process)
@@ -35,6 +35,11 @@ module Sidekiq
35
35
 
36
36
  statsd.gauge('sidekiq.process.utilization', utilization, tags: tags)
37
37
  end
38
+
39
+ def post_scheduled_stats
40
+ scheduled_size = Sidekiq::Stats.new.scheduled_size
41
+ statsd.gauge('sidekiq.scheduled.size', scheduled_size, tags: tags_builder.build({}))
42
+ end
38
43
  end
39
44
  end
40
45
  end
@@ -2,7 +2,7 @@ module Sidekiq
2
2
  module Datadog
3
3
  module Monitor
4
4
  class TagBuilder
5
- SPECIAL_SYMBOLS = /[\/\.:]/i.freeze
5
+ SPECIAL_SYMBOLS = %r{[/.:]}i.freeze
6
6
  def initialize(common_tags)
7
7
  @common_tags = common_tags
8
8
  end
@@ -1,7 +1,7 @@
1
1
  module Sidekiq
2
2
  module Datadog
3
3
  module Monitor
4
- VERSION = '1.0.5'.freeze
4
+ VERSION = '1.1.1'.freeze
5
5
  end
6
6
  end
7
7
  end
@@ -34,6 +34,11 @@ module Sidekiq
34
34
 
35
35
  def send_metrics
36
36
  sender&.send_metrics
37
+ rescue ArgumentError => e
38
+ # Ignore this error. Sometimes sender hasn't yet started when we send metrics for the first time on boot
39
+ return if sender && e.message == 'Start sender first'
40
+
41
+ raise
37
42
  end
38
43
 
39
44
  def shutdown!
@@ -54,15 +59,9 @@ module Sidekiq
54
59
  Sidekiq.configure_server do |config|
55
60
  patch_sidekiq_heartbeat(config)
56
61
 
57
- config.on(:startup) do
58
- Sidekiq::Datadog::Monitor.initialize!
59
- end
60
- config.on(:beat) do
61
- Sidekiq::Datadog::Monitor.send_metrics
62
- end
63
- config.on(:shutdown) do
64
- Sidekiq::Datadog::Monitor.shutdown!
65
- end
62
+ config.on(:startup) { Sidekiq::Datadog::Monitor.initialize! }
63
+ config.on(:beat) { Sidekiq::Datadog::Monitor.send_metrics }
64
+ config.on(:shutdown) { Sidekiq::Datadog::Monitor.shutdown! }
66
65
  end
67
66
  end
68
67
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-datadog-monitor
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - aleksa_castle
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-17 00:00:00.000000000 Z
11
+ date: 2023-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -95,33 +95,33 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: 1.38.1
97
97
  - !ruby/object:Gem::Dependency
98
- name: sidekiq
98
+ name: dogstatsd-ruby
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '5'
103
+ version: '5.0'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '5'
110
+ version: '5.0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: dogstatsd-ruby
112
+ name: sidekiq
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - "~>"
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: '5.0'
117
+ version: '5'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - "~>"
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: '5.0'
124
+ version: '5'
125
125
  description:
126
126
  email:
127
127
  - oleksandra.k@matic.com