sidekiq-datadog-monitor 0.0.0.3 → 0.1.2

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: 4ad07131c20c68eea8a2f30fa6c7c165a1395535d5e0251ac23fedabafc80261
4
- data.tar.gz: dc9e39d022ef43c916e8e4ff35e5120b77005eddb33b8e91363ec030267e635a
3
+ metadata.gz: 1f6bec39a4e4ddfc477963bee5031de0a8e6c6de13e82c5cae36709dfce87344
4
+ data.tar.gz: 4d6f070966034c281bc1f9648b2353bc191232f441a628598c963211f9da5c28
5
5
  SHA512:
6
- metadata.gz: 3272403e475c28f6e4e4a3a66962fb0f8adb5c19d7e19abdceb74eaaff066276aefb3e3e03ead0d2ca28a5e80a72157f1cd2cfb84cef9ec08113cbb967463afa
7
- data.tar.gz: 3441e0f635d4aec998527b5106a6e91aa491e22df5e4cb7f62da5a79ef8e80cf86cfcae06fbdd9af6fcfc3042ccb1fc06da9cd8968756f10e0a6d856d8bc7cf8
6
+ metadata.gz: 7f48b3562c5f452945f2c9921ccc869b4ff61dcae8cb15e1af5a396011e1419d4f280f99ed52e2ba23514552b966782f17d5996f049621c8eb1b3b9ae89978cc
7
+ data.tar.gz: 06161001ba6b2424f33402efd61d5c6fbeccd81d693da6a0fb6ba0e04de894a7413dcc1eb0f5cf7c3bb3d3e6ea1a79640867f9af0a068aebaa64495faa731a23
data/README.md CHANGED
@@ -27,7 +27,7 @@ To start sending metrics
27
27
  # Import the library
28
28
  require 'sidekiq/datadog/monitor/data'
29
29
 
30
- # Initiate a DogStatsD client instance.
30
+ # Initiate a Sidekiq::Datadog::Monitor client instance.
31
31
  Sidekiq::Datadog::Monitor::Data.initialize!(
32
32
  {agent_host: 'localhost',
33
33
  agent_port: 8125,
@@ -1,4 +1,7 @@
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
@@ -1,23 +1,30 @@
1
- require 'datadog/statsd'
2
- require 'sidekiq/datadog/monitor/metrics_worker'
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 = options[:agent_port]
12
- @agent_host = options[:agent_host]
13
- @tag = options[:tag] || ''
14
- @env = options[:env] || ''
9
+ @agent_port, @agent_host = options.fetch_values(:agent_port, :agent_host)
10
+ @tags = options[:tags] || []
15
11
  @queue = options[:queue] || ''
16
12
  @cron = options[:cron] || "*/1 * * * *"
17
13
 
18
- start
14
+ Sidekiq.configure_server do |config|
15
+ SidekiqScheduler::Scheduler.dynamic = true
16
+
17
+ config.on(:startup) do
18
+ start
19
+ end
20
+ end
21
+
22
+ rescue StandardError => e
23
+ raise Sidekiq::Datadog::Monitor::Error.new(e.message)
19
24
  end
20
25
 
26
+ private
27
+
21
28
  def start
22
29
  Sidekiq.set_schedule('send_metrics',
23
30
  { "cron"=> cron, 'class' => 'Sidekiq::Datadog::Monitor::MetricsWorker', 'queue' => queue })
@@ -1,11 +1,13 @@
1
+ require "sidekiq/datadog/monitor/data"
1
2
  require 'datadog/statsd'
2
- require 'sidekiq'
3
3
 
4
4
  module Sidekiq
5
5
  module Datadog
6
6
  module Monitor
7
7
  class MetricsWorker
8
8
  include Sidekiq::Worker
9
+
10
+ sidekiq_options retry: false
9
11
 
10
12
  def perform
11
13
  Sidekiq::Stats.new.queues.each_pair do |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}", "environment:#{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}", "environment:#{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.3"
4
+ VERSION = "0.1.2"
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.3
4
+ version: 0.1.2
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-19 00:00:00.000000000 Z
11
+ date: 2020-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,20 @@ 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
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: sidekiq
57
71
  requirement: !ruby/object:Gem::Requirement