Sha256: 7398a697bb97101589c33f4ba03766ed166007fe5b4458923a521586e2ddf882

Contents?: true

Size: 770 Bytes

Versions: 1

Compression:

Stored size: 770 Bytes

Contents

module Hcheck
  module Checks
    # mongodb check module
    # implements status
    # include mongodb check dependencies
    module Mongodb
      # @config { hosts, user, password }
      def status(config)
        mongo_config = config.merge(connect_timeout: 3)
        hosts = mongo_config.delete(:hosts).compact
        client = Mongo::Client.new(hosts, mongo_config.merge(server_selection_timeout: hosts.count * 2))
        client.database_names
        client.close
        'ok'
      rescue Mongo::Error::NoServerAvailable => e
        Hcheck.logger.error "[HCheck] Mongo::Error::NoServerAvailable #{e.message}"
        'bad'
      end

      def self.included(_base)
        require 'mongo'
        Mongo::Logger.level = Logger::INFO
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hcheck-0.1.0 lib/hcheck/checks/mongodb.rb