system_health 0.0.1 → 0.0.2

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
2
  SHA1:
3
- metadata.gz: 96a950da89a77567a3adbde6e62909067be4f278
4
- data.tar.gz: fd3e339d39b4d856d53146082098332936499b77
3
+ metadata.gz: 41498bf1e7ac698fb8c733b4e76e6132de87ccfc
4
+ data.tar.gz: 08462eaebb15da5afc0fdd11df42aa3a2634b565
5
5
  SHA512:
6
- metadata.gz: 3ba4232c8569ff43d3744a1eabba6d1e5e8057dbf6823dd9f279a28164fd1c64e4e502bbf85534c5a9b84530d4e900883e2279ebaad41aacaf3a08f850dd1d78
7
- data.tar.gz: 225c639c4bb66d66ef166255657dd637c65c0721c6ac3a745df0280f4ad89634e4223df46da6fe8a376cc9144bfae9b175409d270b6897957ac4210cc95a6637
6
+ metadata.gz: dcb8a189cb136098debc460611c1c090fd037b7c0553d6ae6503a51098e53619dc62c0136c00121712fecdea97255d5fc9e450787ed93e8879c7cc3d8b431496
7
+ data.tar.gz: fb37e26556f82e6694539a05be838a41459b195f0ce3a31f6203c6d57f006ea9d9cf28a03a80713370b64cac34e3d74d6133b1e1ae67e53cc35a06d152d14393
data/README.md CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  The System Health gem can be added to your Rails application to provide
4
4
  a convenient way to regularly look for bad data or other system health
5
- indicators. It provides a single endpoint that will generate and error
5
+ indicators. It provides a single endpoint that will generate an error
6
6
  count and enumerate error messages. This count and the messages can be
7
- collected by external monitoring tools the look for the HTTP status code
7
+ collected by external monitoring tools that look for the HTTP status code
8
8
  (200 when there are no errors or 500 when there is at least one error)
9
9
  and/or inspect the JSON payload that is returned.
10
10
 
@@ -4,28 +4,17 @@ module SystemHealth
4
4
  @monitor_classes = monitor_classes
5
5
  end
6
6
 
7
- def as_json(options = nil)
8
- {
9
- error_count: error_count,
10
- messages: messages
11
- }
12
- end
13
-
14
- def http_status
15
- error_count > 0 ? 500 : 200
16
- end
17
-
18
- private
19
- attr_reader :monitor_classes
20
-
21
7
  def error_count
22
8
  monitors.sum(&:error_count)
23
9
  end
24
10
 
25
- def messages
11
+ def error_messages
26
12
  monitors.flat_map(&:error_messages)
27
13
  end
28
14
 
15
+ private
16
+ attr_reader :monitor_classes
17
+
29
18
  def monitors
30
19
  @monitors ||= monitor_classes.map(&:new)
31
20
  end
@@ -1,3 +1,3 @@
1
1
  module SystemHealth
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -21,35 +21,29 @@ module SystemHealth
21
21
  and_return(['something broke'])
22
22
  end
23
23
 
24
- describe '#as_json' do
25
- it 'returns error_count and messages' do
26
- expect(monitor.as_json).to eq({
27
- error_count: 1,
28
- messages: ['something broke']
29
- })
24
+ describe '#error_count' do
25
+ it 'returns error count' do
26
+ expect(monitor.error_count).to eq(1)
30
27
  end
31
28
  end
32
29
 
33
- describe '#http_status' do
34
- it 'returns 500' do
35
- expect(monitor.http_status).to eq 500
30
+ describe '#messages' do
31
+ it 'returns error messages' do
32
+ expect(monitor.error_messages).to eq(['something broke'])
36
33
  end
37
34
  end
38
35
  end
39
36
 
40
37
  context 'when no errors' do
41
- describe '#as_json' do
42
- it 'returns error_count and messages' do
43
- expect(monitor.as_json).to eq({
44
- error_count: 0,
45
- messages: []
46
- })
38
+ describe '#error_count' do
39
+ it 'returns error count' do
40
+ expect(monitor.error_count).to eq(0)
47
41
  end
48
42
  end
49
43
 
50
- describe '#http_status' do
51
- it 'returns 200 when no errors' do
52
- expect(monitor.http_status).to eq 200
44
+ describe '#messages' do
45
+ it 'returns error messages' do
46
+ expect(monitor.error_messages).to eq([])
53
47
  end
54
48
  end
55
49
  end
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Stirling Olson"]
10
10
  spec.email = ["seo@foraker.com"]
11
11
  spec.summary = %q{System health monitor for Rails apps}
12
- spec.description = %q{}
13
- spec.homepage = ""
12
+ spec.description = %q{System health monitor for Rails applications}
13
+ spec.homepage = "https://github.com/foraker/system_health"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency "rails"
21
+ spec.add_dependency "rails", '~> 4'
22
22
 
23
23
  spec.add_development_dependency "bundler", "~> 1.6"
24
24
  spec.add_development_dependency "rake"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: system_health
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stirling Olson
@@ -14,16 +14,16 @@ dependencies:
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '4'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '4'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -66,7 +66,7 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- description: ''
69
+ description: System health monitor for Rails applications
70
70
  email:
71
71
  - seo@foraker.com
72
72
  executables: []
@@ -80,8 +80,6 @@ files:
80
80
  - LICENSE.txt
81
81
  - README.md
82
82
  - Rakefile
83
- - app/controllers/system_health/monitors_controller.rb
84
- - config/routes.rb
85
83
  - lib/system_health.rb
86
84
  - lib/system_health/configuration.rb
87
85
  - lib/system_health/engine.rb
@@ -90,7 +88,7 @@ files:
90
88
  - lib/system_health/version.rb
91
89
  - spec/lib/system_health/monitor_spec.rb
92
90
  - system_health.gemspec
93
- homepage: ''
91
+ homepage: https://github.com/foraker/system_health
94
92
  licenses:
95
93
  - MIT
96
94
  metadata: {}
@@ -1,21 +0,0 @@
1
- module SystemHealth
2
- class MonitorsController < ApplicationController
3
- http_basic_authenticate_with \
4
- name: ENV['SYSTEM_HEALTH_USERNAME'],
5
- password: ENV['SYSTEM_HEALTH_PASSWORD']
6
-
7
- def show
8
- render json: monitor.as_json, status: monitor.http_status
9
- end
10
-
11
- private
12
-
13
- def monitor
14
- @monitor ||= SystemHealth::Monitor.new(monitor_classes)
15
- end
16
-
17
- def monitor_classes
18
- SystemHealth.configuration.monitor_classes
19
- end
20
- end
21
- end
data/config/routes.rb DELETED
@@ -1,5 +0,0 @@
1
- Rails.application.routes.draw do
2
- namespace :system_health do
3
- resource :monitor, :only => :show
4
- end
5
- end