sidekiq-datadog-monitor 0.0.0.4 → 0.1.3

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: 2de3d4b4ef9561d5c50b0c22712371f7e8f4e0907fa6da57295835bb1d735567
4
- data.tar.gz: f3f0f3fa3989a278da0c289b1d10844a296e52d4dd46ddfe7e75550e2f67c350
3
+ metadata.gz: 6f39776d67b0d9e04bcba82941af3b959286238613a9caf3a5a4441bafab2be7
4
+ data.tar.gz: 7c09d4302aa6ba33fcb47594b0fd07258e8ac223d4f8b7ecc305e98f537b8d16
5
5
  SHA512:
6
- metadata.gz: '09d3cd2512b3909196003dcbd948c462ca9f432d363be46b73693a4c77123ba0ade379574c6bd412522b62ecf1102c86cb39a22a88b18ba24561ffa174534eba'
7
- data.tar.gz: b15eec55951ce0d0ad84a2644f3f9672a3553a353372cd5ab88bdf918095121149ebefd8b72ded98166ad135cbb0e0e1f344e59d645e65b90b0eabdb7402fb67
6
+ metadata.gz: 8ed5f31a56a46e1bb3296cc99025ea68c098c41528cba06c92e4892762ec86a4decfc9989cd30ea7a38d50a0666d53459b9cd25aad1109af676e4e1c9598c31b
7
+ data.tar.gz: ae0dfb2ded81b2b23a476b8269366d164d9aea9b3a8d1f021e6e449503b5346ebdec18901c276684e816197771c9db33b2cc11bef009685ae5c6dca57a1ff5c1
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,13 +1,11 @@
1
- require 'sidekiq/datadog/monitor/metrics_worker'
2
- require "sidekiq/datadog/monitor/version"
3
- require 'sidekiq-scheduler'
4
- require 'datadog/statsd'
5
1
  require 'sidekiq/api'
6
- require 'sidekiq'
2
+ require 'sidekiq-scheduler'
3
+ require 'sidekiq/datadog/monitor/data'
4
+ require 'sidekiq/datadog/monitor/metrics_worker'
7
5
 
8
6
  module Sidekiq
9
7
  module Datadog
10
- module Monitor
8
+ module Monitor
11
9
  class Error < StandardError; end
12
10
  end
13
11
  end
@@ -1,34 +1,33 @@
1
- require "sidekiq/datadog/monitor"
2
-
3
1
  module Sidekiq
4
2
  module Datadog
5
3
  module Monitor
6
4
  class Data
7
5
  class << self
8
- attr_reader :agent_port, :agent_host, :tag, :env, :queue, :cron
6
+ attr_reader :agent_port, :agent_host, :tags, :env, :queue, :cron
9
7
 
10
8
  def initialize!(options)
11
- @agent_port, @agent_host = options.fetch_values(:agent_port, :agent_host)
12
- @tag = options[:tag] || ''
13
- @env = options[:env] || ''
14
- @queue = options[:queue] || ''
15
- @cron = options[:cron] || "*/1 * * * *"
16
-
17
- start
9
+ @agent_port, @agent_host, @queue = options.fetch_values(:agent_port, :agent_host, :queue)
10
+ @tags = options[:tags] || []
11
+ @cron = options[:cron] || '*/1 * * * *'
18
12
 
19
- SidekiqScheduler::Scheduler.instance.reload_schedule!
13
+ Sidekiq.configure_server do |config|
14
+ SidekiqScheduler::Scheduler.dynamic = true
20
15
 
16
+ config.on(:startup) do
17
+ start
18
+ end
19
+ end
21
20
  rescue StandardError => e
22
- raise Sidekiq::Datadog::Monitor::Error.new(e.message)
21
+ raise Sidekiq::Datadog::Monitor::Error, e.message
23
22
  end
24
23
 
25
24
  private
26
25
 
27
26
  def start
28
- Sidekiq.set_schedule('send_metrics',
29
- { "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 })
30
29
  end
31
- end
30
+ end
32
31
  end
33
32
  end
34
33
  end
@@ -1,11 +1,14 @@
1
- require "sidekiq/datadog/monitor"
1
+ require 'sidekiq/datadog/monitor/data'
2
+ require 'datadog/statsd'
2
3
 
3
4
  module Sidekiq
4
5
  module Datadog
5
6
  module Monitor
6
7
  class MetricsWorker
7
8
  include Sidekiq::Worker
8
-
9
+
10
+ sidekiq_options retry: false
11
+
9
12
  def perform
10
13
  Sidekiq::Stats.new.queues.each_pair do |queue_name, size|
11
14
  post_queue_size(queue_name, size)
@@ -22,13 +25,13 @@ module Sidekiq
22
25
 
23
26
  def post_queue_size(queue_name, size)
24
27
  statsd.gauge('sidekiq.queue.size', size,
25
- tags: ["queue_name:#{queue_name}", "env:#{Data.env}", Data.tag])
28
+ tags: ["queue_name:#{queue_name}"].concat(Data.tags))
26
29
  end
27
30
 
28
31
  def post_queue_latency(queue_name)
29
32
  latency = Sidekiq::Queue.new(queue_name).latency
30
33
  statsd.gauge('sidekiq.queue.latency', latency,
31
- tags: ["queue_name:#{queue_name}", "env:#{Data.env}", Data.tag])
34
+ tags: ["queue_name:#{queue_name}"].concat(Data.tags))
32
35
  end
33
36
  end
34
37
  end
@@ -1,7 +1,7 @@
1
1
  module Sidekiq
2
2
  module Datadog
3
3
  module Monitor
4
- VERSION = "0.0.0.4"
4
+ VERSION = '0.1.3'.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.4
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - aleksa_castle
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-20 00:00:00.000000000 Z
11
+ date: 2020-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,34 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
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
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: sidekiq
71
99
  requirement: !ruby/object:Gem::Requirement