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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e57d12d076f185cf465a993f9c74239247bb01740670ad9726b8ff62b5feaa2
|
4
|
+
data.tar.gz: 88c0ecaac6266b2d7008e8ffa656cfa67f4819c627a0192d2c44dae93d9d1879
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
35
|
-
|
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
|
-
`
|
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
|
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, :
|
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
|
-
@
|
17
|
-
@
|
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
|
-
|
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
|
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
|
-
|
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
|
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
|
-
|
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
|
-
|
34
|
+
tags: ["queue_name:#{queue_name}"].concat(Data.tags))
|
33
35
|
end
|
34
36
|
end
|
35
37
|
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.
|
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:
|
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.
|
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: []
|