heartcheck-sidekiq 0.1.2 → 0.1.3

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