Module: StatusPage
- Defined in:
- lib/status-page/engine.rb,
lib/status-page/monitor.rb,
lib/status-page/version.rb,
lib/status-page/configuration.rb,
lib/status-page/services/base.rb,
lib/status-page/services/cache.rb,
lib/status-page/services/redis.rb,
lib/status-page/services/resque.rb,
lib/status-page/services/sidekiq.rb,
lib/status-page/services/database.rb,
app/controllers/status_page/status_controller.rb
Defined Under Namespace
Modules: Services
Classes: Configuration, Engine, StatusController
Constant Summary
collapse
- STATUSES =
{
ok: 'OK',
error: 'ERROR'
}.freeze
- VERSION =
'0.1.5'
Class Method Summary
collapse
Class Method Details
.check(request: nil) ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/status-page/monitor.rb', line 18
def check(request: nil)
if config.interval > 0
if @cached_status && @cached_status[:timestamp] >= (config.interval || 5).seconds.ago
return @cached_status
end
end
providers = config.providers || []
results = providers.map { |provider| provider_result(provider, request) }
@cached_status = {
results: results,
status: results.all? { |result| result[:status] == STATUSES[:ok] } ? :ok : :service_unavailable,
timestamp: Time.now
}
@cached_status
end
|
.config ⇒ Object
8
9
10
11
12
|
# File 'lib/status-page/monitor.rb', line 8
def config
return @config if defined?(@config)
@config = Configuration.new
@config
end
|
14
15
16
|
# File 'lib/status-page/monitor.rb', line 14
def configure(&block)
config.instance_exec(&block)
end
|