module HealthMonitor
Constants
- STATUSES
- VERSION
Attributes
configuration[RW]
Public Instance Methods
check(request: nil, params: {})
click to toggle source
# File lib/health_monitor/monitor.rb, line 21 def check(request: nil, params: {}) providers = configuration.providers if params[:providers].present? providers = providers.select { |provider| params[:providers].include?(provider.name.downcase) } end results = providers.map { |provider| provider_result(provider, request) } { results: results.map { |c| c.without(:critical) }, status: results.any? { |res| res[:status] != STATUSES[:ok] && res[:critical] } ? :service_unavailable : :ok, timestamp: Time.now.to_formatted_s(:rfc2822) } end
configure() { |configuration| ... }
click to toggle source
# File lib/health_monitor/monitor.rb, line 15 def configure self.configuration ||= Configuration.new yield configuration if block_given? end
Private Instance Methods
provider_result(provider, request)
click to toggle source
# File lib/health_monitor/monitor.rb, line 38 def provider_result(provider, request) monitor = provider monitor.request = request monitor.check! { name: provider.name, message: '', status: STATUSES[:ok], critical: provider.critical } rescue StandardError => e configuration.error_callback.try(:call, e) { name: provider.name, message: e.message, status: STATUSES[:error], critical: provider.critical } end