Class: OkComputer::MongoidCheck
- Defined in:
- lib/ok_computer/built_in_checks/mongoid_check.rb
Constant Summary collapse
- ConnectionFailed =
Class.new(StandardError)
Constants inherited from Check
Instance Attribute Summary collapse
-
#session ⇒ Object
Returns the value of attribute session.
Attributes inherited from Check
#failure_occurred, #message, #registrant_name, #time
Instance Method Summary collapse
-
#check ⇒ Object
Public: Return the status of the mongodb.
-
#initialize(session = :default) ⇒ MongoidCheck
constructor
Public: Initialize a check for a Mongoid replica set.
-
#mongodb_name ⇒ Object
Public: The name of the app’s mongodb.
-
#mongodb_stats ⇒ Object
Public: The stats for the app’s mongodb.
Methods inherited from Check
#<=>, #clear, #mark_failure, #mark_message, #run, #success?, #to_json, #to_text, #with_benchmarking
Constructor Details
#initialize(session = :default) ⇒ MongoidCheck
Public: Initialize a check for a Mongoid replica set
session - The name of the Mongoid session to use. Defaults to the
default session.
9 10 11 12 13 14 15 16 17 |
# File 'lib/ok_computer/built_in_checks/mongoid_check.rb', line 9 def initialize(session = :default) if Mongoid.respond_to?(:clients) # Mongoid 5 self.session = Mongoid::Clients.with_name(session) elsif Mongoid.respond_to?(:sessions) # Mongoid 4 self.session = Mongoid::Sessions.with_name(session) end rescue => e # client/session not configured end |
Instance Attribute Details
#session ⇒ Object
Returns the value of attribute session.
3 4 5 |
# File 'lib/ok_computer/built_in_checks/mongoid_check.rb', line 3 def session @session end |
Instance Method Details
#check ⇒ Object
Public: Return the status of the mongodb
20 21 22 23 24 25 |
# File 'lib/ok_computer/built_in_checks/mongoid_check.rb', line 20 def check "Connected to mongodb #{mongodb_name}" rescue ConnectionFailed => e mark_failure "Error: '#{e}'" end |
#mongodb_name ⇒ Object
Public: The name of the app’s mongodb
Returns a string with the mongdb name
45 46 47 |
# File 'lib/ok_computer/built_in_checks/mongoid_check.rb', line 45 def mongodb_name mongodb_stats["db"] end |
#mongodb_stats ⇒ Object
Public: The stats for the app’s mongodb
Returns a hash with the status of the db
30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/ok_computer/built_in_checks/mongoid_check.rb', line 30 def mongodb_stats if session stats = session.command(dbStats: 1) # Mongoid 3+ stats = stats.first unless stats.is_a? Hash # Mongoid 5 stats else Mongoid.database.stats # Mongoid 2 end rescue => e raise ConnectionFailed, e end |