sidekiq-datadog-monitor 0.0.0.5 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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