yabeda-sidekiq 0.6.0 → 0.7.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 +4 -4
- data/.rubocop.yml +24 -3
- data/.travis.yml +4 -2
- data/CHANGELOG.md +6 -0
- data/Gemfile +1 -1
- data/README.md +8 -0
- data/Rakefile +4 -1
- data/lib/yabeda/sidekiq.rb +6 -4
- data/lib/yabeda/sidekiq/server_middleware.rb +9 -4
- data/lib/yabeda/sidekiq/version.rb +1 -1
- data/yabeda-sidekiq.gemspec +4 -3
- metadata +29 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 660902666ec22bdc3a244a45bd15ac3a67b8dc2d13cd703c779453e689002b93
|
4
|
+
data.tar.gz: 5b45a914f585959fceceda65d95a72bf6415f9e6a3bb889f54243ac8f887adec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 22be4dea939719b79f230d80ddcf38269cc476d3cf51c6664938b5bab6e93e2e924dbebcdcbcbd9dde59e0822f28c33a58b83be483015dad9ed32000cb9fceeb
|
7
|
+
data.tar.gz: 3d3c314d83b3943fcbd5d110f44826abbad4beb50c61120f5f26d33c398cc02bf970c36a6272143f3ae27dd9adfc73f42e69f898460461f952519bb8de9a768f
|
data/.rubocop.yml
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
---
|
2
2
|
require:
|
3
|
-
- rubocop-rspec
|
3
|
+
- rubocop-rspec
|
4
4
|
|
5
5
|
AllCops:
|
6
6
|
TargetRubyVersion: 2.3
|
7
7
|
|
8
8
|
Metrics/BlockLength:
|
9
|
+
Enabled: false
|
9
10
|
Exclude:
|
10
11
|
- "Gemfile"
|
11
12
|
- "spec/**/*"
|
12
13
|
|
13
|
-
|
14
|
-
|
14
|
+
Layout/LineLength:
|
15
|
+
Max: 160
|
15
16
|
|
16
17
|
Style/StringLiterals:
|
17
18
|
EnforcedStyle: double_quotes
|
@@ -44,3 +45,23 @@ Style/TrailingCommaInHashLiteral:
|
|
44
45
|
Enabled: true
|
45
46
|
EnforcedStyleForMultiline: consistent_comma
|
46
47
|
|
48
|
+
Style/HashEachMethods:
|
49
|
+
Enabled: true
|
50
|
+
|
51
|
+
Style/HashTransformKeys:
|
52
|
+
Enabled: true
|
53
|
+
|
54
|
+
Style/HashTransformValues:
|
55
|
+
Enabled: true
|
56
|
+
|
57
|
+
RSpec/ExampleLength:
|
58
|
+
Enabled: false
|
59
|
+
|
60
|
+
Style/Documentation:
|
61
|
+
Enabled: false
|
62
|
+
|
63
|
+
Metrics/MethodLength:
|
64
|
+
Max: 15
|
65
|
+
|
66
|
+
Metrics/AbcSize:
|
67
|
+
Max: 17
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
|
|
5
5
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
6
6
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
7
7
|
|
8
|
+
## 0.7.0 - 2020-07-15
|
9
|
+
|
10
|
+
### Changed
|
11
|
+
|
12
|
+
- Tags from `yabeda_tags` method are applied to all metrics collected inside a job, not only sidekiq-specific. See [#14](https://github.com/yabeda-rb/yabeda-sidekiq/issues/14). @Envek
|
13
|
+
|
8
14
|
## 0.6.0 - 2020-07-15
|
9
15
|
|
10
16
|
### Added
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -16,6 +16,14 @@ And then execute:
|
|
16
16
|
|
17
17
|
$ bundle
|
18
18
|
|
19
|
+
If you're not on Rails then configure Yabeda after your application was initialized:
|
20
|
+
|
21
|
+
```ruby
|
22
|
+
Yabeda.configure!
|
23
|
+
```
|
24
|
+
|
25
|
+
_If you're using Ruby on Rails then Yabeda will configure itself automatically!_
|
26
|
+
|
19
27
|
**And that is it!** Sidekiq metrics are being collected!
|
20
28
|
|
21
29
|
Additionally, depending on your adapter, you may want to setup metrics export. E.g. for [yabeda-prometheus]:
|
data/Rakefile
CHANGED
data/lib/yabeda/sidekiq.rb
CHANGED
@@ -12,7 +12,7 @@ module Yabeda
|
|
12
12
|
module Sidekiq
|
13
13
|
LONG_RUNNING_JOB_RUNTIME_BUCKETS = [
|
14
14
|
0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10, # standard (from Prometheus)
|
15
|
-
30, 60, 120, 300, 1800, 3600, 21_600 # Sidekiq tasks may be very long-running
|
15
|
+
30, 60, 120, 300, 1800, 3600, 21_600, # Sidekiq tasks may be very long-running
|
16
16
|
].freeze
|
17
17
|
|
18
18
|
Yabeda.configure do
|
@@ -88,14 +88,16 @@ module Yabeda
|
|
88
88
|
|
89
89
|
class << self
|
90
90
|
def labelize(worker, job, queue)
|
91
|
-
{ queue: queue, worker: worker_class(worker, job)
|
91
|
+
{ queue: queue, worker: worker_class(worker, job) }
|
92
92
|
end
|
93
93
|
|
94
94
|
def worker_class(worker, job)
|
95
95
|
if defined?(ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper)
|
96
|
-
|
96
|
+
if worker.is_a?(ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper) || worker == ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper
|
97
|
+
return job["wrapped"].to_s
|
98
|
+
end
|
97
99
|
end
|
98
|
-
(worker.is_a?(String) ? worker : worker.class).to_s
|
100
|
+
(worker.is_a?(String) || worker.is_a?(Class) ? worker : worker.class).to_s
|
99
101
|
end
|
100
102
|
|
101
103
|
def custom_tags(worker, job)
|
@@ -4,13 +4,17 @@ module Yabeda
|
|
4
4
|
module Sidekiq
|
5
5
|
# Sidekiq worker middleware
|
6
6
|
class ServerMiddleware
|
7
|
+
# rubocop: disable Metrics/AbcSize, Metrics/MethodLength:
|
7
8
|
def call(worker, job, queue)
|
8
|
-
|
9
|
-
|
9
|
+
custom_tags = Yabeda::Sidekiq.custom_tags(worker, job).to_h
|
10
|
+
labels = Yabeda::Sidekiq.labelize(worker, job, queue).merge(custom_tags)
|
11
|
+
start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
10
12
|
begin
|
11
13
|
job_instance = ::Sidekiq::Job.new(job)
|
12
14
|
Yabeda.sidekiq_job_latency.measure(labels, job_instance.latency)
|
13
|
-
|
15
|
+
Yabeda.with_tags(**custom_tags) do
|
16
|
+
yield
|
17
|
+
end
|
14
18
|
Yabeda.sidekiq_jobs_success_total.increment(labels)
|
15
19
|
rescue Exception # rubocop: disable Lint/RescueException
|
16
20
|
Yabeda.sidekiq_jobs_failed_total.increment(labels)
|
@@ -20,11 +24,12 @@ module Yabeda
|
|
20
24
|
Yabeda.sidekiq_jobs_executed_total.increment(labels)
|
21
25
|
end
|
22
26
|
end
|
27
|
+
# rubocop: enable Metrics/AbcSize, Metrics/MethodLength:
|
23
28
|
|
24
29
|
private
|
25
30
|
|
26
31
|
def elapsed(start)
|
27
|
-
(
|
32
|
+
(Process.clock_gettime(Process::CLOCK_MONOTONIC) - start).round(3)
|
28
33
|
end
|
29
34
|
end
|
30
35
|
end
|
data/yabeda-sidekiq.gemspec
CHANGED
@@ -22,10 +22,11 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
23
|
spec.require_paths = ["lib"]
|
24
24
|
|
25
|
-
spec.add_dependency "yabeda", "~> 0.2"
|
26
25
|
spec.add_dependency "sidekiq"
|
26
|
+
spec.add_dependency "yabeda", "~> 0.6"
|
27
27
|
|
28
|
-
spec.add_development_dependency "
|
29
|
-
spec.add_development_dependency "
|
28
|
+
spec.add_development_dependency "activejob", ">= 6.0"
|
29
|
+
spec.add_development_dependency "bundler", "~> 2.0"
|
30
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
30
31
|
spec.add_development_dependency "rspec", "~> 3.0"
|
31
32
|
end
|
metadata
CHANGED
@@ -1,71 +1,85 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yabeda-sidekiq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrey Novikov
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-08-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: sidekiq
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: yabeda
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
16
30
|
requirements:
|
17
31
|
- - "~>"
|
18
32
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
33
|
+
version: '0.6'
|
20
34
|
type: :runtime
|
21
35
|
prerelease: false
|
22
36
|
version_requirements: !ruby/object:Gem::Requirement
|
23
37
|
requirements:
|
24
38
|
- - "~>"
|
25
39
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0.
|
40
|
+
version: '0.6'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
42
|
+
name: activejob
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
45
|
- - ">="
|
32
46
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :
|
47
|
+
version: '6.0'
|
48
|
+
type: :development
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
52
|
- - ">="
|
39
53
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
54
|
+
version: '6.0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: bundler
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
59
|
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
61
|
+
version: '2.0'
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
66
|
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
68
|
+
version: '2.0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rake
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
73
|
- - "~>"
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
75
|
+
version: '13.0'
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
80
|
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
82
|
+
version: '13.0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rspec
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,7 +122,7 @@ homepage: https://github.com/yabeda-rb/yabeda-sidekiq
|
|
108
122
|
licenses:
|
109
123
|
- MIT
|
110
124
|
metadata: {}
|
111
|
-
post_install_message:
|
125
|
+
post_install_message:
|
112
126
|
rdoc_options: []
|
113
127
|
require_paths:
|
114
128
|
- lib
|
@@ -124,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
124
138
|
version: '0'
|
125
139
|
requirements: []
|
126
140
|
rubygems_version: 3.1.2
|
127
|
-
signing_key:
|
141
|
+
signing_key:
|
128
142
|
specification_version: 4
|
129
143
|
summary: Extensible Prometheus exporter for monitoring your Sidekiq
|
130
144
|
test_files: []
|