Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Monitoring

En esta guía, puedes aprender cómo configurar la supervisión en PyMongo utilizando la interfaz basada en funciones de retorno del PyMongo. La supervisión es el proceso de recopilar información sobre el comportamiento de tu aplicación mientras se ejecuta. Esta información puede ayudarle a tomar decisiones informadas al diseñar y depurar su aplicación. También puede utilizar información de la supervisión de eventos para rastrear el rendimiento de su aplicación y al uso de recursos.

El controlador proporciona información sobre su aplicación emitiendo eventos. Puedes escuchar los eventos del driver para supervisar tu aplicación.

Nota

Registro de eventos

Esta página explica cómo supervisar la aplicación en el código. Para aprender cómo registrar esta información en un registro externo, consulta la Logging guía.

El tipo de evento que el controlador emite depende de la operación que se realice. En la siguiente tabla se describen los tipos de eventos que emite el controlador:

Tipo de evento
Descripción

Eventos de comando

Eventos relacionados con comandos de la base de datos MongoDB, como find; insert, delete y count. Para aprender cómo utilizar PyMongo para ejecutar un comando de base de datos, consulta Ejecutar un comando de base de datos. Para obtener más información sobre los comandos de bases de datos de MongoDB, consulta Comandos de base de datos en el manual de MongoDB Server.

Como medida de seguridad, el controlador oculta el contenido de algunos eventos de comando. Esto protege la información confidencial contenida en estos eventos de comando.

Eventos de Descubrimiento y Supervisión de Servidores (SDAM)

Eventos relacionados con cambios en el estado de la implementación de MongoDB.

Eventos del pool de conexiones

Eventos relacionados con el pool de conexiones gestionado por el driver.

Para una lista completa de los eventos que emite el driver, consulta la pymongo.supervisión documentación de API.

Para supervisar un evento, debe pasar un listener de eventos al MongoClient de su aplicación. Los pasos siguientes describen cómo supervisar su aplicación utilizando un listener de eventos:

  1. Cree una clase que herede de una de las clases base de escucha de eventos proporcionadas por PyMongo. La clase base que elijas dependerá del tipo de evento que desees supervisar. Por ejemplo, para supervisar eventos de comando, cree una clase que herede de CommandListener.

  2. Implementa los métodos de la clase base que se corresponden con los eventos que deseas supervisar.

  3. Pase una instancia de la clase de listener al constructor de MongoClient.

El siguiente código implementa un CommandListener para escuchar los eventos de comando, un ServerListener para escuchar los eventos SDAM y un ConnectionPoolListener para escuchar los eventos de la pool de conexiones:

class MyCommandListener(CommandListener):
def succeeded(self, event: CommandSucceededEvent):
print(f"Command {event.command_name} succeeded")
# Include other event method implementations here
class MyServerListener(ServerListener):
def heartbeat_started(self, event: ServerHeartbeatStartedEvent):
print(f"Heartbeat started on server with id: {event.connection_id}")
# Include other event method implementations here
class MyPoolListener(ConnectionPoolListener):
def connection_created(self, event: ConnectionCreatedEvent):
print(f"Connection {event.connection_id} created")
# Include other event method implementations here

El siguiente código pasa las instancias de los escuchadores anteriores al constructor MongoClient. Elija el Synchronous o la pestaña Asynchronous para ver el código correspondiente:

listeners = [MyCommandListener(), MyServerListener(), MyPoolListener()]
client = MongoClient("<connection URI>", event_listeners=listeners)
listeners = [MyCommandListener(), MyServerListener(), MyPoolListener()]
client = AsyncMongoClient("<connection URI>", event_listeners=listeners)

Para obtener más información sobre los métodos y clases utilizados para monitorear eventos en el controlador, consulte la siguiente documentación de la API:

Volver

Supervisión y registro

En esta página