komachi_heartbeat 1.0.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +32 -4
- data/app/controllers/komachi_heartbeat/heartbeat_controller.rb +42 -4
- data/lib/komachi_heartbeat.rb +4 -1
- data/lib/komachi_heartbeat/config.rb +18 -0
- data/lib/komachi_heartbeat/engine.rb +1 -1
- data/lib/komachi_heartbeat/version.rb +1 -1
- metadata +52 -47
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 172965952080275e081af23b4ddb15ee4470a27a
|
4
|
+
data.tar.gz: f70a823016e6c34b4c52182017ab19b633a7d2d2
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 348f425ca5a95e737bba50730a48aa2344e49f6ff13df8f4758368cea368742f202f07aee8aefdb84ed1d25b781979e8b34bccc5bca0db9cab59c108ad904a18
|
7
|
+
data.tar.gz: 073a22a9daeb02f9de54115c6d23e0b9b2fd0a930681bbb80adea1b26a8d5bed7f4284218c7b718f9303b9c7bbf6d9e016bbcd32c8fdabf9bc20eefcceb0c420
|
data/README.md
CHANGED
@@ -6,8 +6,13 @@ Rails アプリケーションとDBサーバーの死活監視するためのURL
|
|
6
6
|
### 死活監視
|
7
7
|
`/MOUNT_PATH/heartbeat`
|
8
8
|
|
9
|
-
|
10
|
-
|
9
|
+
アプリケーションの状態に問題がなければ200 OKを返す
|
10
|
+
|
11
|
+
#### チェック可能項目
|
12
|
+
- Web
|
13
|
+
- DB
|
14
|
+
- Redis
|
15
|
+
- Memcached
|
11
16
|
|
12
17
|
### バージョン確認
|
13
18
|
`/MOUNT_PATH/version`
|
@@ -23,9 +28,32 @@ schema_migrationsテーブルへのクエリを発行する
|
|
23
28
|
`mount KomachiHeartbeat::Engine => "/ops"`
|
24
29
|
|
25
30
|
## Configure
|
31
|
+
### Parameters
|
32
|
+
- `application_version`
|
33
|
+
- `application_name`
|
34
|
+
- `db_check_enabled`
|
35
|
+
- DBのチェックを行うかどうか
|
36
|
+
- default: true
|
37
|
+
- `database_class_names`
|
38
|
+
- DBのチェックに利用するクラス名の配列
|
39
|
+
- default: ["ActiveRecord::Base"]
|
40
|
+
- `redis_check_enabled`
|
41
|
+
- Redisをチェックするかどうか
|
42
|
+
- default: false
|
43
|
+
- `memcached_check_enabled`
|
44
|
+
- Memcachedをチェックするかどうか
|
45
|
+
- default: false
|
46
|
+
- `memcached_server`
|
47
|
+
- Memcachedのサーバー名
|
48
|
+
- default: 'localhost'
|
49
|
+
|
50
|
+
### Example
|
51
|
+
|
26
52
|
```
|
27
|
-
Rails.application.config.
|
28
|
-
Rails.application.config.
|
53
|
+
Rails.application.config.heartbeat.application_name = "YOUR APP NAME"
|
54
|
+
Rails.application.config.heartbeat.application_version = "YOUR APP version"
|
29
55
|
```
|
30
56
|
|
57
|
+
see https://github.com/mitaku/komachi_heartbeat/blob/master/spec/dummy/config/application.rb
|
58
|
+
|
31
59
|
This project rocks and uses MIT-LICENSE.
|
@@ -3,7 +3,9 @@ require_dependency "komachi_heartbeat/application_controller"
|
|
3
3
|
module KomachiHeartbeat
|
4
4
|
class HeartbeatController < ApplicationController
|
5
5
|
def index
|
6
|
-
|
6
|
+
db_connection_check if db_check?
|
7
|
+
redis_connection_check if redis_check?
|
8
|
+
memcached_connection_check if memcached_check?
|
7
9
|
|
8
10
|
head :ok
|
9
11
|
end
|
@@ -14,14 +16,50 @@ module KomachiHeartbeat
|
|
14
16
|
render json: obj
|
15
17
|
end
|
16
18
|
|
17
|
-
|
18
19
|
private
|
20
|
+
def redis_connection_check
|
21
|
+
c = Redis::Client.new
|
22
|
+
c.connect
|
23
|
+
raise "Redis connection failed" unless c.connected?
|
24
|
+
c.disconnect
|
25
|
+
end
|
26
|
+
|
27
|
+
def db_connection_check
|
28
|
+
connection_database_class_names.each do |klass|
|
29
|
+
klass.constantize.connection.execute "SELECT * FROM `schema_migrations` LIMIT 1"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def memcached_connection_check
|
34
|
+
MemCache.new(memcached_server_name).stats
|
35
|
+
end
|
36
|
+
|
37
|
+
def memcached_check?
|
38
|
+
defined?(MemCache) && !!KomachiHeartbeat.config.memcached_check_enabled
|
39
|
+
end
|
40
|
+
|
41
|
+
def db_check?
|
42
|
+
!!KomachiHeartbeat.config.db_check_enabled
|
43
|
+
end
|
44
|
+
|
45
|
+
def redis_check?
|
46
|
+
defined?(Redis) && !!KomachiHeartbeat.config.redis_check_enabled
|
47
|
+
end
|
48
|
+
|
49
|
+
def connection_database_class_names
|
50
|
+
KomachiHeartbeat.config.database_class_names.presence || ["ActiveRecord::Base"]
|
51
|
+
end
|
52
|
+
|
53
|
+
def memcached_server_name
|
54
|
+
KomachiHeartbeat.config.memcached_server
|
55
|
+
end
|
56
|
+
|
19
57
|
def application_name
|
20
|
-
KomachiHeartbeat.application_name
|
58
|
+
KomachiHeartbeat.config.application_name
|
21
59
|
end
|
22
60
|
|
23
61
|
def application_version
|
24
|
-
KomachiHeartbeat.application_version
|
62
|
+
KomachiHeartbeat.config.application_version
|
25
63
|
end
|
26
64
|
end
|
27
65
|
end
|
data/lib/komachi_heartbeat.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
module KomachiHeartbeat
|
2
|
+
class Config
|
3
|
+
include ActiveSupport::Configurable
|
4
|
+
config_accessor :application_version, :application_name, :db_check_enabled, :redis_check_enabled, :memcached_check_enabled, :database_class_names, :memcached_server
|
5
|
+
|
6
|
+
configure do |config|
|
7
|
+
config.application_name = "Unknown"
|
8
|
+
config.application_version = "Unknown"
|
9
|
+
config.db_check_enabled = true
|
10
|
+
config.database_class_names = ["ActiveRecord::Base"]
|
11
|
+
|
12
|
+
config.redis_check_enabled = false
|
13
|
+
|
14
|
+
config.memcached_check_enabled = false
|
15
|
+
config.memcached_server = "localhost"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
metadata
CHANGED
@@ -1,142 +1,153 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: komachi_heartbeat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
5
|
-
prerelease:
|
4
|
+
version: 2.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Takumi MIURA
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-12-09 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rails
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 3.2.11
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 3.2.11
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: redis
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: memcache-client
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
30
55
|
- !ruby/object:Gem::Dependency
|
31
56
|
name: sqlite3
|
32
57
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
58
|
requirements:
|
35
|
-
- -
|
59
|
+
- - '>='
|
36
60
|
- !ruby/object:Gem::Version
|
37
61
|
version: '0'
|
38
62
|
type: :development
|
39
63
|
prerelease: false
|
40
64
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
65
|
requirements:
|
43
|
-
- -
|
66
|
+
- - '>='
|
44
67
|
- !ruby/object:Gem::Version
|
45
68
|
version: '0'
|
46
69
|
- !ruby/object:Gem::Dependency
|
47
70
|
name: rspec-rails
|
48
71
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
72
|
requirements:
|
51
|
-
- -
|
73
|
+
- - '>='
|
52
74
|
- !ruby/object:Gem::Version
|
53
75
|
version: '0'
|
54
76
|
type: :development
|
55
77
|
prerelease: false
|
56
78
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
79
|
requirements:
|
59
|
-
- -
|
80
|
+
- - '>='
|
60
81
|
- !ruby/object:Gem::Version
|
61
82
|
version: '0'
|
62
83
|
- !ruby/object:Gem::Dependency
|
63
84
|
name: spork
|
64
85
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
86
|
requirements:
|
67
|
-
- -
|
87
|
+
- - '>='
|
68
88
|
- !ruby/object:Gem::Version
|
69
89
|
version: '0'
|
70
90
|
type: :development
|
71
91
|
prerelease: false
|
72
92
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
93
|
requirements:
|
75
|
-
- -
|
94
|
+
- - '>='
|
76
95
|
- !ruby/object:Gem::Version
|
77
96
|
version: '0'
|
78
97
|
- !ruby/object:Gem::Dependency
|
79
98
|
name: rb-fsevent
|
80
99
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
100
|
requirements:
|
83
|
-
- -
|
101
|
+
- - '>='
|
84
102
|
- !ruby/object:Gem::Version
|
85
103
|
version: '0'
|
86
104
|
type: :development
|
87
105
|
prerelease: false
|
88
106
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
107
|
requirements:
|
91
|
-
- -
|
108
|
+
- - '>='
|
92
109
|
- !ruby/object:Gem::Version
|
93
110
|
version: '0'
|
94
111
|
- !ruby/object:Gem::Dependency
|
95
112
|
name: guard-rspec
|
96
113
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
114
|
requirements:
|
99
|
-
- -
|
115
|
+
- - '>='
|
100
116
|
- !ruby/object:Gem::Version
|
101
117
|
version: '0'
|
102
118
|
type: :development
|
103
119
|
prerelease: false
|
104
120
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
121
|
requirements:
|
107
|
-
- -
|
122
|
+
- - '>='
|
108
123
|
- !ruby/object:Gem::Version
|
109
124
|
version: '0'
|
110
125
|
- !ruby/object:Gem::Dependency
|
111
126
|
name: guard-spork
|
112
127
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
128
|
requirements:
|
115
|
-
- -
|
129
|
+
- - '>='
|
116
130
|
- !ruby/object:Gem::Version
|
117
131
|
version: '0'
|
118
132
|
type: :development
|
119
133
|
prerelease: false
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
135
|
requirements:
|
123
|
-
- -
|
136
|
+
- - '>='
|
124
137
|
- !ruby/object:Gem::Version
|
125
138
|
version: '0'
|
126
139
|
- !ruby/object:Gem::Dependency
|
127
140
|
name: growl
|
128
141
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
142
|
requirements:
|
131
|
-
- -
|
143
|
+
- - '>='
|
132
144
|
- !ruby/object:Gem::Version
|
133
145
|
version: '0'
|
134
146
|
type: :development
|
135
147
|
prerelease: false
|
136
148
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
149
|
requirements:
|
139
|
-
- -
|
150
|
+
- - '>='
|
140
151
|
- !ruby/object:Gem::Version
|
141
152
|
version: '0'
|
142
153
|
description: Alive Monitoring of Application Server and DB Server.
|
@@ -154,6 +165,7 @@ files:
|
|
154
165
|
- app/helpers/komachi_heartbeat/heartbeat_helper.rb
|
155
166
|
- app/views/layouts/komachi_heartbeat/application.html.erb
|
156
167
|
- config/routes.rb
|
168
|
+
- lib/komachi_heartbeat/config.rb
|
157
169
|
- lib/komachi_heartbeat/engine.rb
|
158
170
|
- lib/komachi_heartbeat/version.rb
|
159
171
|
- lib/komachi_heartbeat.rb
|
@@ -163,32 +175,25 @@ files:
|
|
163
175
|
- README.md
|
164
176
|
homepage: https://github.com/mitaku/komachi_heartbeat
|
165
177
|
licenses: []
|
178
|
+
metadata: {}
|
166
179
|
post_install_message:
|
167
180
|
rdoc_options: []
|
168
181
|
require_paths:
|
169
182
|
- lib
|
170
183
|
required_ruby_version: !ruby/object:Gem::Requirement
|
171
|
-
none: false
|
172
184
|
requirements:
|
173
|
-
- -
|
185
|
+
- - '>='
|
174
186
|
- !ruby/object:Gem::Version
|
175
187
|
version: '0'
|
176
|
-
segments:
|
177
|
-
- 0
|
178
|
-
hash: -1448573566997876444
|
179
188
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
180
|
-
none: false
|
181
189
|
requirements:
|
182
|
-
- -
|
190
|
+
- - '>='
|
183
191
|
- !ruby/object:Gem::Version
|
184
192
|
version: '0'
|
185
|
-
segments:
|
186
|
-
- 0
|
187
|
-
hash: -1448573566997876444
|
188
193
|
requirements: []
|
189
194
|
rubyforge_project:
|
190
|
-
rubygems_version:
|
195
|
+
rubygems_version: 2.0.14
|
191
196
|
signing_key:
|
192
|
-
specification_version:
|
197
|
+
specification_version: 4
|
193
198
|
summary: Rails Application Hertbeat Check Engine.
|
194
199
|
test_files: []
|