heartcheck-sidekiq 0.1.2 → 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
- SHA1:
3
- metadata.gz: 6f636ae04d8879d0d2d718c0f7639cc38065f9a1
4
- data.tar.gz: 15ae7e7b6023e4fb6a2916979aed16c3618fa6cb
2
+ SHA256:
3
+ metadata.gz: ee2cfe85ad4728a880b2c239d5e0f8fffb5d005379c8775ab64a99d2df0689bd
4
+ data.tar.gz: 708d22cb7caf4f473c4fab70c1b89481a3de4dd2103af08d8cd95bdc868e7162
5
5
  SHA512:
6
- metadata.gz: 9f67a90bb11e018e20b782b00d4de4cd9e312c7b576bd1f6f824cef3fcb4fcd8b904f8603e5dc190cf7fc501d9fa02990776db8015876a9e71037bdb649ba6bd
7
- data.tar.gz: edf02fdad9ff9f58390bd10cd9fd3c31dd2db37cf57df02f49cb05e70e489868d92a3afd1776a47cb7f0a771489befb6cc30ffbb92b59827c60afb35cb1d7e46
6
+ metadata.gz: f7eab93ee443a738a37b1d413da6a461c49bcaed18b2ee58c19b7da5d8416792ab275b85e16b4fd4b4adf7bc708557de44ecdd40dc9d704660e1e3f20ca4779f
7
+ data.tar.gz: 83f61f50be09e2acccb94767015bfcfedf42cd9c8be25955e78136389ad74cd73e536dfe21b2b932531cbddc8e32427a8f95d0489c9bc6299fba74ba2ff3a4f1
@@ -1,3 +1,5 @@
1
+ require 'heartcheck/monitoring/redis'
2
+
1
3
  module Heartcheck
2
4
  module Checks
3
5
  # Check for a sidekiq service
@@ -8,45 +10,13 @@ module Heartcheck
8
10
  # @retun [void]
9
11
  def validate
10
12
  ::Sidekiq.redis do |connection|
11
- append_error(:set) unless set?(connection)
12
- append_error(:get) unless get?(connection)
13
- append_error(:delete) unless del?(connection)
13
+ errors = Monitoring::Redis.run_checks(connection)
14
+ errors.each { |error| append_error(error) }
14
15
  end
15
- rescue ::Redis::BaseError
16
- append_error('connect to redis')
17
- rescue => e
18
- @errors << "Sidekiq error: #{e.message}"
19
16
  end
20
17
 
21
18
  private
22
19
 
23
- # test if can write on redis
24
- #
25
- # @param con [Redis] an instance of redis
26
- #
27
- # @return [Bollean]
28
- def set?(con)
29
- con.set('check_test', 'heartcheck') == 'OK'
30
- end
31
-
32
- # test if can read on redis
33
- #
34
- # @param con [Redis] an instance of redis
35
- #
36
- # @return [Bollean]
37
- def get?(con)
38
- con.get('check_test') == 'heartcheck'
39
- end
40
-
41
- # test if can delete on redis
42
- #
43
- # @param con [Redis] an instance of redis
44
- #
45
- # @return [Bollean]
46
- def del?(con)
47
- con.del('check_test') == 1
48
- end
49
-
50
20
  # customize the error message
51
21
  # It's called in Heartcheck::Checks::Base#append_error
52
22
  #
@@ -54,7 +24,7 @@ module Heartcheck
54
24
  #
55
25
  # @return [void]
56
26
  def custom_error(key_error)
57
- @errors << "Sidekiq fails to #{key_error}"
27
+ @errors << key_error
58
28
  end
59
29
  end
60
30
  end
@@ -0,0 +1,47 @@
1
+ module Heartcheck
2
+ module Monitoring
3
+ # Handles redis monitoring, such as TCP lookup and basic operations
4
+ class Redis
5
+ # Runs all checks on a given redis connection
6
+ #
7
+ # @param redis_conn [Redis] the redis connection
8
+ # @return errors [Array] an array with error messages
9
+ def self.run_checks(redis_conn)
10
+ new(redis_conn).run_checks
11
+ end
12
+
13
+ def initialize(redis_conn)
14
+ @redis_conn = redis_conn
15
+ @errors = []
16
+ end
17
+
18
+ def run_checks
19
+ begin
20
+ @errors << 'Sidekiq fails to set' unless can_store?
21
+ @errors << 'Sidekiq fails to get' unless can_fetch?
22
+ @errors << 'Sidekiq fails to delete' unless can_delete?
23
+ rescue ::Redis::BaseError
24
+ @errors << 'Sidekiq fails to connect to redis'
25
+ rescue => e
26
+ @errors << "Sidekiq error: #{e.message}"
27
+ end
28
+
29
+ @errors
30
+ end
31
+
32
+ private
33
+
34
+ def can_store?
35
+ @redis_conn.set('check_test', 'heartcheck') == 'OK'
36
+ end
37
+
38
+ def can_fetch?
39
+ @redis_conn.get('check_test') == 'heartcheck'
40
+ end
41
+
42
+ def can_delete?
43
+ @redis_conn.del('check_test') == 1
44
+ end
45
+ end
46
+ end
47
+ end
@@ -2,6 +2,6 @@
2
2
  module Heartcheck
3
3
  # gem version
4
4
  module Sidekiq
5
- VERSION = '0.1.2'.freeze
5
+ VERSION = '0.1.3'.freeze
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heartcheck-sidekiq
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Locaweb
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-02 00:00:00.000000000 Z
11
+ date: 2021-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: heartcheck
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.0'
20
17
  - - ">="
21
18
  - !ruby/object:Gem::Version
22
- version: 1.0.0
19
+ version: 2.0.0
20
+ - - "~>"
21
+ - !ruby/object:Gem::Version
22
+ version: '2.0'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: '1.0'
30
27
  - - ">="
31
28
  - !ruby/object:Gem::Version
32
- version: 1.0.0
29
+ version: 2.0.0
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '2.0'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: sidekiq
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -37,6 +37,9 @@ dependencies:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: 2.0.0
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: 6.1.3
40
43
  type: :runtime
41
44
  prerelease: false
42
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -44,6 +47,9 @@ dependencies:
44
47
  - - ">="
45
48
  - !ruby/object:Gem::Version
46
49
  version: 2.0.0
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: 6.1.3
47
53
  - !ruby/object:Gem::Dependency
48
54
  name: pry-nav
49
55
  requirement: !ruby/object:Gem::Requirement
@@ -68,20 +74,20 @@ dependencies:
68
74
  name: rspec
69
75
  requirement: !ruby/object:Gem::Requirement
70
76
  requirements:
71
- - - "~>"
77
+ - - ">="
72
78
  - !ruby/object:Gem::Version
73
79
  version: 3.1.0
74
- - - ">="
80
+ - - "~>"
75
81
  - !ruby/object:Gem::Version
76
82
  version: 3.1.0
77
83
  type: :development
78
84
  prerelease: false
79
85
  version_requirements: !ruby/object:Gem::Requirement
80
86
  requirements:
81
- - - "~>"
87
+ - - ">="
82
88
  - !ruby/object:Gem::Version
83
89
  version: 3.1.0
84
- - - ">="
90
+ - - "~>"
85
91
  - !ruby/object:Gem::Version
86
92
  version: 3.1.0
87
93
  - !ruby/object:Gem::Dependency
@@ -140,6 +146,7 @@ extensions: []
140
146
  extra_rdoc_files: []
141
147
  files:
142
148
  - lib/heartcheck/checks/sidekiq.rb
149
+ - lib/heartcheck/monitoring/redis.rb
143
150
  - lib/heartcheck/sidekiq.rb
144
151
  - lib/heartcheck/sidekiq/version.rb
145
152
  homepage: http://developer.locaweb.com.br
@@ -161,8 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
161
168
  - !ruby/object:Gem::Version
162
169
  version: '0'
163
170
  requirements: []
164
- rubyforge_project:
165
- rubygems_version: 2.5.2.1
171
+ rubygems_version: 3.0.3
166
172
  signing_key:
167
173
  specification_version: 4
168
174
  summary: A sidekiq checker