heartcheck 1.0.7 → 1.0.8
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/Gemfile.lock +3 -1
- data/heartcheck.gemspec +1 -0
- data/lib/heartcheck.rb +22 -0
- data/lib/heartcheck/controllers/base.rb +1 -1
- data/lib/heartcheck/executors/base.rb +9 -5
- data/lib/heartcheck/executors/threaded.rb +11 -0
- data/lib/heartcheck/generators/templates/config.rb +7 -0
- data/lib/heartcheck/version.rb +1 -1
- metadata +22 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e83a3e38fcfc1a22cbd39bb2925a128f36d45639
|
4
|
+
data.tar.gz: a187c15bb2b34af279b0234ad41eadb002ca3b5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d8fbb3bfae6934b1dd19d5fd1844c3f87cc6db3c77b548f8f8f76cc380f8d391e18050b1f361e4340bb2c238d4f2c5f85e03fcebe363b82aa00340918be8b5c7
|
7
|
+
data.tar.gz: 986e65d78839ceda3876baccb4627c50b37fa4c9c5b3950f9c84e555929c8b934d133fd8c58ec994fce70a547f6fd919612642f6eefd09c590a93d495f8244f2
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
heartcheck (1.0.
|
4
|
+
heartcheck (1.0.8)
|
5
5
|
oj
|
6
6
|
rack (~> 1, >= 1.4.0)
|
7
7
|
|
@@ -12,6 +12,7 @@ GEM
|
|
12
12
|
astrolabe (1.3.1)
|
13
13
|
parser (~> 2.2)
|
14
14
|
coderay (1.1.0)
|
15
|
+
concurrent-ruby (0.9.1)
|
15
16
|
diff-lcs (1.2.5)
|
16
17
|
method_source (0.8.2)
|
17
18
|
oj (2.12.10)
|
@@ -55,6 +56,7 @@ PLATFORMS
|
|
55
56
|
ruby
|
56
57
|
|
57
58
|
DEPENDENCIES
|
59
|
+
concurrent-ruby (~> 0.9.1, >= 0.9.1)
|
58
60
|
heartcheck!
|
59
61
|
pry-nav (~> 0.2.0, >= 0.2.4)
|
60
62
|
rack-test (~> 0.6.0, >= 0.6.3)
|
data/heartcheck.gemspec
CHANGED
@@ -27,4 +27,5 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_development_dependency 'rack-test', '~> 0.6.0', '>= 0.6.3'
|
28
28
|
# for documentation
|
29
29
|
spec.add_development_dependency 'yard', '~> 0.8.0', '>= 0.8.7.6'
|
30
|
+
spec.add_development_dependency 'concurrent-ruby', '~> 0.9.1', '>= 0.9.1'
|
30
31
|
end
|
data/lib/heartcheck.rb
CHANGED
@@ -13,6 +13,9 @@ module Heartcheck
|
|
13
13
|
# @attr [Array<Checks>] the checks to use when checking
|
14
14
|
attr_accessor :checks
|
15
15
|
|
16
|
+
# @attr [Heartcheck::Executors::Base] the checks executor backend
|
17
|
+
attr_accessor :executor
|
18
|
+
|
16
19
|
# @attr_writer [Object] change the default logger
|
17
20
|
attr_writer :logger
|
18
21
|
|
@@ -92,6 +95,25 @@ module Heartcheck
|
|
92
95
|
checks.select { |ctx| ctx.respond_to?(:info) }
|
93
96
|
end
|
94
97
|
|
98
|
+
# an executor class that respond to dispatch(checkers)
|
99
|
+
#
|
100
|
+
# @return [Heartcheck::Executors::Base]
|
101
|
+
def executor
|
102
|
+
@executor ||= Heartcheck::Executors::Base.new
|
103
|
+
end
|
104
|
+
|
105
|
+
|
106
|
+
# change current executor to a threaded implementation
|
107
|
+
# requires 'concurrent-ruby'
|
108
|
+
#
|
109
|
+
# @return [Hearcheck::Executors::Threaded]
|
110
|
+
def use_threaded_executor!
|
111
|
+
require "concurrent"
|
112
|
+
require "heartcheck/executors/threaded"
|
113
|
+
|
114
|
+
self.executor = Heartcheck::Executors::Threaded.new
|
115
|
+
end
|
116
|
+
|
95
117
|
private
|
96
118
|
|
97
119
|
# if no logger is setted we create an instance
|
@@ -3,11 +3,15 @@ module Heartcheck
|
|
3
3
|
class Base
|
4
4
|
def dispatch(checkers)
|
5
5
|
checkers.map do |checker|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
6
|
+
track_and_check(checker)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def track_and_check(checker)
|
11
|
+
started = Time.now
|
12
|
+
checker.check.tap do |checked|
|
13
|
+
checked[:time] = ((Time.now - started) * 1_000.0)
|
14
|
+
Logger.info Oj.dump(checked)
|
11
15
|
end
|
12
16
|
end
|
13
17
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module Heartcheck
|
2
|
+
module Executors
|
3
|
+
class Threaded < Heartcheck::Executors::Base
|
4
|
+
def dispatch(checkers)
|
5
|
+
checkers.collect do |checker|
|
6
|
+
Concurrent::Future.execute { track_and_check(checker) }
|
7
|
+
end.collect { |future| future.value }
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -3,6 +3,13 @@ Heartcheck.setup do |monitor|
|
|
3
3
|
# default value: Logger.new(STDOUT)
|
4
4
|
# monitor.logger = Rails.logger
|
5
5
|
|
6
|
+
# Using threaded executor
|
7
|
+
#
|
8
|
+
# With this feature is possible to parallelize io-bound checkers
|
9
|
+
# using ruby threads, but to enable this feature you need explicitly
|
10
|
+
# install 'concurrent-ruby' gem on your project
|
11
|
+
# monitor.use_threaded_executor!
|
12
|
+
|
6
13
|
# Checks
|
7
14
|
# For each check you can set the folling options
|
8
15
|
# name: String => root name to show in report page (default: class.name)
|
data/lib/heartcheck/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: heartcheck
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Locaweb
|
@@ -164,6 +164,26 @@ dependencies:
|
|
164
164
|
- - ">="
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: 0.8.7.6
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: concurrent-ruby
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 0.9.1
|
174
|
+
- - ">="
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: 0.9.1
|
177
|
+
type: :development
|
178
|
+
prerelease: false
|
179
|
+
version_requirements: !ruby/object:Gem::Requirement
|
180
|
+
requirements:
|
181
|
+
- - "~>"
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
version: 0.9.1
|
184
|
+
- - ">="
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: 0.9.1
|
167
187
|
description: A simple way to check your app heart.
|
168
188
|
email:
|
169
189
|
- desenvolvedores@locaweb.com.br
|
@@ -204,6 +224,7 @@ files:
|
|
204
224
|
- lib/heartcheck/errors/warning.rb
|
205
225
|
- lib/heartcheck/executors.rb
|
206
226
|
- lib/heartcheck/executors/base.rb
|
227
|
+
- lib/heartcheck/executors/threaded.rb
|
207
228
|
- lib/heartcheck/generators.rb
|
208
229
|
- lib/heartcheck/generators/generator.rb
|
209
230
|
- lib/heartcheck/generators/templates/config.rb
|