sidekiq-datadog-monitor 0.0.0.4 → 0.1.3

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: 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