sidekiq-datadog-monitor 0.0.0.5 → 0.2.0

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: 7465b128d6d438118a8d64e3ce288f35c128e7442f1e0fc7e58f20960c6dc6a1
4
- data.tar.gz: 79b460c74b8e795eb66dceefeb43ab1f7a902599ba089bd09438f2e1cba780bd
3
+ metadata.gz: 8e57d12d076f185cf465a993f9c74239247bb01740670ad9726b8ff62b5feaa2
4
+ data.tar.gz: 88c0ecaac6266b2d7008e8ffa656cfa67f4819c627a0192d2c44dae93d9d1879
5
5
  SHA512:
6
- metadata.gz: 1ab63b86d1abba345dd6ebc265d833e439ab3b8920982a8309c5a6f358088d21c57ccdffceda70f1443b61f03d9783b8412064f548e9d4df56ee11fbd62d46a0
7
- data.tar.gz: 3fde4c5e786a6732691ab65a192098b4db5327fd803be0716e5e9aa8c1afa7915a8bdd7695827d5d1b3708eb83c8eef106eb90747cabbe26d727b0f8c91027e8
6
+ metadata.gz: 2acfe7817aab4ff8d841cf0b0a2b7608f9a3ba2fc1910a6678892de0e0938c83584f1a480df4678f0d9f80c47a436e1d72866a30b09edd8a8f804166eeb3593c
7
+ data.tar.gz: 6ed78e731a72dca0a96e63995e0de25327af1a4a21dd9105873f64140d13161c23764d4591c46b39f03da9485125307e3553b1273616d2a814e9671b6a0cf67b
data/README.md CHANGED
@@ -31,9 +31,8 @@ require 'sidekiq/datadog/monitor/data'
31
31
  Sidekiq::Datadog::Monitor::Data.initialize!(
32
32
  {agent_host: 'localhost',
33
33
  agent_port: 8125,
34
- env: 'production', # optional
35
- tag: 'tag', # optional
36
- queue: 'queue name', # optional
34
+ queue: 'queue name',
35
+ tags: ['env:production', 'product:product_name'], # optional
37
36
  cron: "*/30 * * * *" # default: "*/1 * * * *"
38
37
  }
39
38
  )
@@ -41,7 +40,9 @@ Sidekiq::Datadog::Monitor::Data.initialize!(
41
40
  ```
42
41
  `agent_host` and `agent_port` instantiate DogStatsD client
43
42
 
44
- `env`, `tag`, `queue` settings for background job that will gather and send Sidekiq metrics
43
+ `queue` setting for background job that will gather and send Sidekiq metrics
44
+
45
+ `tags` tags for datadog metrics
45
46
 
46
47
  `cron` - schedule settings for background job that will gather and send Sidekiq metrics
47
48
 
@@ -1,8 +1,11 @@
1
- require "sidekiq/datadog/monitor/version"
1
+ require 'sidekiq/api'
2
+ require 'sidekiq-scheduler'
3
+ require 'sidekiq/datadog/monitor/data'
4
+ require 'sidekiq/datadog/monitor/metrics_worker'
2
5
 
3
6
  module Sidekiq
4
7
  module Datadog
5
- module Monitor
8
+ module Monitor
6
9
  class Error < StandardError; end
7
10
  end
8
11
  end
@@ -1,38 +1,33 @@
1
- require "sidekiq/datadog/monitor"
2
- require "sidekiq/datadog/config"
3
- require 'sidekiq/datadog/monitor/metrics_worker'
4
- require 'sidekiq-scheduler'
5
- require 'sidekiq/api'
6
-
7
1
  module Sidekiq
8
2
  module Datadog
9
3
  module Monitor
10
4
  class Data
11
5
  class << self
12
- attr_reader :agent_port, :agent_host, :tag, :env, :queue, :cron
6
+ attr_reader :agent_port, :agent_host, :tags, :env, :queue, :cron
13
7
 
14
8
  def initialize!(options)
15
- @agent_port, @agent_host = options.fetch_values(:agent_port, :agent_host)
16
- @tag = options[:tag] || ''
17
- @env = options[:env] || ''
18
- @queue = options[:queue] || ''
19
- @cron = options[:cron] || "*/1 * * * *"
20
-
21
- Sidekiq::Datadog::Config.reload_schedule
9
+ @agent_port, @agent_host, @queue = options.fetch_values(:agent_port, :agent_host, :queue)
10
+ @tags = options[:tags] || []
11
+ @cron = options[:cron] || '*/1 * * * *'
22
12
 
23
- start
13
+ Sidekiq.configure_server do |config|
14
+ SidekiqScheduler::Scheduler.dynamic = true
24
15
 
16
+ config.on(:startup) do
17
+ start
18
+ end
19
+ end
25
20
  rescue StandardError => e
26
- raise Sidekiq::Datadog::Monitor::Error.new(e.message)
21
+ raise Sidekiq::Datadog::Monitor::Error, e.message
27
22
  end
28
23
 
29
24
  private
30
25
 
31
26
  def start
32
- Sidekiq.set_schedule('send_metrics',
33
- { "cron"=> cron, 'class' => 'Sidekiq::Datadog::Monitor::MetricsWorker', 'queue' => queue })
27
+ Sidekiq.set_schedule('send_metrics',
28
+ { 'cron' => cron, 'class' => 'Sidekiq::Datadog::Monitor::MetricsWorker', 'queue' => queue })
34
29
  end
35
- end
30
+ end
36
31
  end
37
32
  end
38
33
  end
@@ -1,4 +1,4 @@
1
- require "sidekiq/datadog/monitor/data"
1
+ require 'sidekiq/datadog/monitor/data'
2
2
  require 'datadog/statsd'
3
3
 
4
4
  module Sidekiq
@@ -6,7 +6,9 @@ module Sidekiq
6
6
  module Monitor
7
7
  class MetricsWorker
8
8
  include Sidekiq::Worker
9
-
9
+
10
+ sidekiq_options retry: false
11
+
10
12
  def perform
11
13
  Sidekiq::Stats.new.queues.each_pair do |queue_name, size|
12
14
  post_queue_size(queue_name, size)
@@ -23,13 +25,13 @@ module Sidekiq
23
25
 
24
26
  def post_queue_size(queue_name, size)
25
27
  statsd.gauge('sidekiq.queue.size', size,
26
- tags: ["queue_name:#{queue_name}", "env:#{Data.env}", Data.tag])
28
+ tags: ["queue_name:#{queue_name}"].concat(Data.tags))
27
29
  end
28
30
 
29
31
  def post_queue_latency(queue_name)
30
32
  latency = Sidekiq::Queue.new(queue_name).latency
31
33
  statsd.gauge('sidekiq.queue.latency', latency,
32
- tags: ["queue_name:#{queue_name}", "env:#{Data.env}", Data.tag])
34
+ tags: ["queue_name:#{queue_name}"].concat(Data.tags))
33
35
  end
34
36
  end
35
37
  end
@@ -1,7 +1,7 @@
1
1
  module Sidekiq
2
2
  module Datadog
3
3
  module Monitor
4
- VERSION = "0.0.0.5"
4
+ VERSION = '0.2.0'.freeze
5
5
  end
6
6
  end
7
7
  end
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: 0.0.0.5
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - aleksa_castle
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-20 00:00:00.000000000 Z
11
+ date: 2021-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,48 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubocop
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.85.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.85.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop-performance
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop-rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 1.38.1
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 1.38.1
55
97
  - !ruby/object:Gem::Dependency
56
98
  name: sidekiq
57
99
  requirement: !ruby/object:Gem::Requirement
@@ -94,7 +136,7 @@ dependencies:
94
136
  - - ">="
95
137
  - !ruby/object:Gem::Version
96
138
  version: 4.8.1
97
- description:
139
+ description:
98
140
  email:
99
141
  - oleksandra.k@matic.com
100
142
  executables: []
@@ -105,7 +147,6 @@ files:
105
147
  - README.md
106
148
  - bin/console
107
149
  - bin/setup
108
- - lib/sidekiq/datadog/config.rb
109
150
  - lib/sidekiq/datadog/monitor.rb
110
151
  - lib/sidekiq/datadog/monitor/data.rb
111
152
  - lib/sidekiq/datadog/monitor/metrics_worker.rb
@@ -115,7 +156,7 @@ licenses:
115
156
  - MIT
116
157
  metadata:
117
158
  allowed_push_host: https://rubygems.org
118
- post_install_message:
159
+ post_install_message:
119
160
  rdoc_options: []
120
161
  require_paths:
121
162
  - lib
@@ -130,8 +171,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
171
  - !ruby/object:Gem::Version
131
172
  version: '0'
132
173
  requirements: []
133
- rubygems_version: 3.0.8
134
- signing_key:
174
+ rubygems_version: 3.0.3
175
+ signing_key:
135
176
  specification_version: 4
136
177
  summary: A gem to gather and send sidekiq jobs metrics to datadog
137
178
  test_files: []
@@ -1,13 +0,0 @@
1
- module Sidekiq
2
- module Datadog
3
- class Config
4
- class << self
5
- def reload_schedule
6
- Sidekiq.configure_server do |config|
7
- Sidekiq::Scheduler.dynamic = true
8
- end
9
- end
10
- end
11
- end
12
- end
13
- end