Docs Menu
Docs Home
/ /

Monitoring

En esta guía, aprenderá a configurar la monitorización en PyMongo mediante su interfaz basada en devoluciones de llamada. La monitorización consiste en recopilar información sobre el comportamiento de su aplicación durante su ejecución. Esta información le ayudará a tomar decisiones informadas al diseñar y depurar su aplicación. También puede usar la información de los eventos de monitorización para monitorizar el rendimiento y el uso de recursos de su aplicación.

El controlador proporciona información sobre su aplicación mediante la emisión de eventos. Puede escuchar los eventos del controlador para supervisar su aplicación.

Nota

Registro de eventos

Esta página explica cómo supervisar su aplicación en el código. Para saber cómo registrar esta información en un registro externo, consulte Guía de registro.

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 los comandos de la base de datos MongoDB, como find,, insert delete county. Para aprender a usar PyMongo para ejecutar un comando de base de datos, consulte Ejecutar un comando de base de datos. Para obtener más información sobre los comandos de base de datos de MongoDB, consulte Comandos de base de datos en el manual del servidor MongoDB.

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

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 mantenido por el controlador.

Para obtener una lista completa de los eventos que emite el controlador, consulte la documentación de la API pymongo.monitoring.

Para monitorizar un evento, debe pasar un detector de eventos al MongoClient de su aplicación. Los siguientes pasos describen cómo monitorizar su aplicación mediante un detector 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 elija dependerá del tipo de evento que desee monitorizar. Por ejemplo, para monitorizar eventos de comando, cree una clase que herede de CommandListener.

  2. Implementa los métodos de la clase base que corresponden a los eventos que deseas monitorear.

  3. Pase una instancia de su clase de escucha al constructor MongoClient.

El siguiente código implementa un CommandListener para escuchar eventos de comando, un ServerListener para escuchar eventos SDAM y un ConnectionPoolListener para escuchar eventos de grupo 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 instancias de los oyentes anteriores al constructor MongoClient. Seleccione el Synchronous o 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 API:

Volver

Supervisión y registro

En esta página