class Sqreen::Ecosystem::Databases::Mongo

Public Instance Methods

setup() click to toggle source
# File lib/sqreen/ecosystem/databases/mongo.rb, line 18
def setup
  advice = wrap_for_interest(DatabaseConnectionData, &method(:after_advice))
  instrument 'Mongo::Client#initialize', after: advice
end

Private Instance Methods

after_advice(call, _ball) click to toggle source

@param [Sqreen::Graft::CallbackCall] call

# File lib/sqreen/ecosystem/databases/mongo.rb, line 26
def after_advice(call, _ball)
  return if call.raised

  client = call.instance
  server_addrs = client.cluster.servers.map(&:address)

  server_addrs.map do |addr|
    DatabaseConnectionData.new(
      transport: :mongo,
      host: addr.host,
      port: addr.port,
      db: client.database.name,
    )
  end
end