health-monitor-rails 8.4.0 → 8.5.0

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
2
  SHA256:
3
- metadata.gz: 27a31a1555078820d1c0fa7ee3612ae60f4dfd43b0ce88501647cffc308e2626
4
- data.tar.gz: 297a29de2083f06dc81223d7945c467c4df69a4abeb5fbdb31cef7d8291be481
3
+ metadata.gz: 54a0e9ca8f2f1fcb6f6d1d4ffd1db0be2f1d62fa712314b7d87960fe1ad10afb
4
+ data.tar.gz: cc2752aa4c9328401c81cf283a8a7b47f34fe06013abe08b6c8bd9225c8435d8
5
5
  SHA512:
6
- metadata.gz: 2688e2f2713963db1a7f1fd79d37626c3ffe07a6a7b8abcdba6233fec43770732cb37ef49d39f38f631da70584d17f2286a5235f8d8fbeefc86bf238f1323284
7
- data.tar.gz: 9c964066578783c8c82ea2244fd904c2426ca7d7a9fea822054643d5fe8675dc88c0ee10c77cac16935eb27bade34be3beadc14460f780bc5d4e5ac38023b4da
6
+ metadata.gz: 202a5a3d0bc1fbc2f7acd00e6f2e7ab0426705faf818c8b488fa623d3f6160329a7da5c8826958e8f53774e12d19e07bba025840eb665186b4db7c77f0bb918e
7
+ data.tar.gz: 34b10f0e4ec669e9f1299720c37e387a8e3480b6f19b242a6d4266d387da78a1768026eeda1aaecea3c6b89aa429952e17c6eef6d7e5e10f7fa9722cbcd77c22
data/README.md CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/health-monitor-rails.svg)](http://badge.fury.io/rb/health-monitor-rails)
4
4
  [![Build Status](https://travis-ci.org/lbeder/health-monitor-rails.svg)](https://travis-ci.org/lbeder/health-monitor-rails)
5
- [![Dependency Status](https://gemnasium.com/lbeder/health-monitor-rails.svg)](https://gemnasium.com/lbeder/health-monitor-rails)
6
5
  [![Coverage Status](https://coveralls.io/repos/lbeder/health-monitor-rails/badge.svg)](https://coveralls.io/r/lbeder/health-monitor-rails)
7
6
 
8
7
  This is a health monitoring Rails mountable plug-in, which checks various services (db, cache, sidekiq, redis, etc.).
@@ -150,16 +149,17 @@ gem 'health-monitor-rails'
150
149
  Then run:
151
150
 
152
151
  ```bash
153
- $ bundle install
152
+ bundle install
154
153
  ```
155
154
 
156
- Otherwise install the gem:
155
+ Otherwise, install the gem:
157
156
 
158
157
  ```bash
159
- $ gem install health-monitor-rails
158
+ gem install health-monitor-rails
160
159
  ```
161
160
 
162
161
  ## Usage
162
+
163
163
  You can mount this inside your app routes by adding this to config/routes.rb:
164
164
 
165
165
  ```ruby
@@ -167,7 +167,9 @@ mount HealthMonitor::Engine, at: '/'
167
167
  ```
168
168
 
169
169
  ## Supported Service Providers
170
+
170
171
  The following services are currently supported:
172
+
171
173
  * DB
172
174
  * Cache
173
175
  * Redis
@@ -178,6 +180,7 @@ The following services are currently supported:
178
180
  ## Configuration
179
181
 
180
182
  ### Adding Providers
183
+
181
184
  By default, only the database check is enabled. You can add more service providers by explicitly enabling them via an initializer:
182
185
 
183
186
  ```ruby
@@ -214,7 +217,7 @@ end
214
217
  # To configure specific queues
215
218
  HealthMonitor.configure do |config|
216
219
  config.sidekiq.configure do |sidekiq_config|
217
- sidekiq_config.add_queue_configuration("critical", latency: 10.seconds, size: 20)
220
+ sidekiq_config.add_queue_configuration('critical', latency: 10.seconds, queue_size: 20)
218
221
  end
219
222
  end
220
223
 
@@ -236,22 +239,23 @@ The currently supported settings are:
236
239
  #### Sidekiq
237
240
 
238
241
  * `latency`: the latency (in seconds) of a queue (now - when the oldest job was enqueued) which is considered unhealthy (the default is 30 seconds, but larger processing queue should have a larger latency value).
239
- * `queue_size`: the size (maximim) of a queue which is considered unhealthy (the default is 100).
242
+ * `queue_size`: the size (maximum) of a queue which is considered unhealthy (the default is 100).
240
243
 
241
244
  #### Redis
242
245
 
243
- * `url`: the url used to connect to your Redis instance - note, this is an optional configuration and will use the default connection if not specified
244
- * `connection`: Use custom redis connection (e.g., `Redis.current`).
246
+ * `url`: the URL used to connect to your Redis instance - note, this is an optional configuration and will use the default connection if not specified
247
+ * `connection`: Use custom Redis connection (e.g., `Redis.current`).
245
248
  * `max_used_memory`: Set maximum expected memory usage of Redis in megabytes. Prevent memory leaks and keys overstore.
246
249
 
247
250
  #### Delayed Job
248
251
 
249
- * `queue_size`: the size (maximim) of a queue which is considered unhealthy (the default is 100).
252
+ * `queue_size`: the size (maximum) of a queue which is considered unhealthy (the default is 100).
250
253
 
251
254
  ### Adding a Custom Provider
255
+
252
256
  It's also possible to add custom health check providers suited for your needs (of course, it's highly appreciated and encouraged if you'd contribute useful providers to the project).
253
257
 
254
- In order to add a custom provider, you'd need to:
258
+ To add a custom provider, you'd need to:
255
259
 
256
260
  * Implement the `HealthMonitor::Providers::Base` class and its `check!` method (a check is considered as failed if it raises an exception):
257
261
 
@@ -262,6 +266,7 @@ class CustomProvider < HealthMonitor::Providers::Base
262
266
  end
263
267
  end
264
268
  ```
269
+
265
270
  * Add its class to the configuration:
266
271
 
267
272
  ```ruby
@@ -271,6 +276,7 @@ end
271
276
  ```
272
277
 
273
278
  ### Adding a Custom Error Callback
279
+
274
280
  If you need to perform any additional error handling (for example, for additional error reporting), you can configure a custom error callback:
275
281
 
276
282
  ```ruby
@@ -284,6 +290,7 @@ end
284
290
  ```
285
291
 
286
292
  ### Adding Authentication Credentials
293
+
287
294
  By default, the `/check` endpoint is not authenticated and is available to any user. You can authenticate using HTTP Basic Auth by providing authentication credentials:
288
295
 
289
296
  ```ruby
@@ -296,7 +303,8 @@ end
296
303
  ```
297
304
 
298
305
  ### Adding Environment Variables
299
- By default, environment variables is `nil`, so if you'd want to include additional parameters in the results JSON, all you need is to provide a `Hash` with your custom environment variables:
306
+
307
+ By default, environment variables are `nil`, so if you'd want to include additional parameters in the results JSON, all you need is to provide a `Hash` with your custom environment variables:
300
308
 
301
309
  ```ruby
302
310
  HealthMonitor.configure do |config|
@@ -311,7 +319,7 @@ end
311
319
 
312
320
  A Nagios/Shinken/Icinga/Icinga2 plugin is available in `extra` directory.
313
321
 
314
- It takes one argument : `-u` or `--uri`
322
+ It takes one argument: `-u` or `--uri`
315
323
 
316
324
  ```sh
317
325
  nicolas@desktop:$ ./check_rails.rb
@@ -325,7 +333,7 @@ Common options:
325
333
  -h, --help Displays Help
326
334
  ```
327
335
 
328
- And it generates an output with the right status code for your monitoring system :
336
+ Also, it generates an output with the right status code for your monitoring system:
329
337
 
330
338
  ```sh
331
339
  nicolas@desktop:$ ./check_rails.rb -u http://admin:admin@localhost:5000/check.json
@@ -20,6 +20,7 @@ module HealthMonitor
20
20
  @request = request
21
21
 
22
22
  return unless self.class.configurable?
23
+
23
24
  self.configuration = self.class.instance_variable_get('@global_configuration')
24
25
  end
25
26
 
@@ -11,15 +11,31 @@ module HealthMonitor
11
11
  DEFAULT_LATENCY_TIMEOUT = 30
12
12
  DEFAULT_QUEUES_SIZE = 100
13
13
 
14
- attr_accessor :latency, :queue_size, :queue_name
15
14
  attr_reader :queues
16
15
 
17
16
  def initialize
18
- @queue_name = DEFAULT_QUEUE_NAME
19
- @latency = DEFAULT_LATENCY_TIMEOUT
20
- @queue_size = DEFAULT_QUEUES_SIZE
21
17
  @queues = {}
22
- @queues[queue_name] = { latency: latency, queue_size: queue_size }
18
+ @queues[DEFAULT_QUEUE_NAME] = { latency: DEFAULT_LATENCY_TIMEOUT, queue_size: DEFAULT_QUEUES_SIZE }
19
+ end
20
+
21
+ def latency=(value)
22
+ default_queue[:latency] = value
23
+ end
24
+
25
+ def latency
26
+ default_queue[:latency]
27
+ end
28
+
29
+ def queue_size=(value)
30
+ default_queue[:queue_size] = value
31
+ end
32
+
33
+ def queue_size
34
+ default_queue[:queue_size]
35
+ end
36
+
37
+ def default_queue
38
+ queues[DEFAULT_QUEUE_NAME]
23
39
  end
24
40
 
25
41
  def add_queue_configuration(queue_name, latency: DEFAULT_LATENCY_TIMEOUT, queue_size: DEFAULT_QUEUES_SIZE)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module HealthMonitor
4
- VERSION = '8.4.0'.freeze
4
+ VERSION = '8.5.0'.freeze
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: health-monitor-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.4.0
4
+ version: 8.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leonid Beder
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-17 00:00:00.000000000 Z
11
+ date: 2019-02-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -224,16 +224,16 @@ dependencies:
224
224
  name: sqlite3
225
225
  requirement: !ruby/object:Gem::Requirement
226
226
  requirements:
227
- - - ">="
227
+ - - "~>"
228
228
  - !ruby/object:Gem::Version
229
- version: '0'
229
+ version: 1.3.6
230
230
  type: :development
231
231
  prerelease: false
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
- - - ">="
234
+ - - "~>"
235
235
  - !ruby/object:Gem::Version
236
- version: '0'
236
+ version: 1.3.6
237
237
  - !ruby/object:Gem::Dependency
238
238
  name: timecop
239
239
  requirement: !ruby/object:Gem::Requirement
@@ -261,7 +261,6 @@ files:
261
261
  - app/controllers/health_monitor/health_controller.rb
262
262
  - app/views/health_monitor/health/check.html.erb
263
263
  - config/routes.rb
264
- - lib/health-monitor-rails.rb
265
264
  - lib/health_monitor/configuration.rb
266
265
  - lib/health_monitor/engine.rb
267
266
  - lib/health_monitor/monitor.rb
@@ -273,6 +272,7 @@ files:
273
272
  - lib/health_monitor/providers/resque.rb
274
273
  - lib/health_monitor/providers/sidekiq.rb
275
274
  - lib/health_monitor/version.rb
275
+ - lib/health_monitor_rails.rb
276
276
  homepage: https://github.com/lbeder/health-monitor-rails
277
277
  licenses:
278
278
  - MIT
@@ -293,7 +293,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
293
293
  version: '0'
294
294
  requirements: []
295
295
  rubyforge_project:
296
- rubygems_version: 2.7.7
296
+ rubygems_version: 2.7.8
297
297
  signing_key:
298
298
  specification_version: 4
299
299
  summary: Health monitoring Rails plug-in, which checks various services (db, cache,