Visão geral
Neste guia, você pode aprender como configurar o monitoramento no PyMongo usando a interface baseada em chamadas de resposta do PyMongo. Monitoramento é o processo de coleta de informações sobre o comportamento do seu aplicativo durante a execução. Estas informações podem ajudá-lo a tomar decisões informadas ao projetar e depurar seu aplicação. Você também pode usar informações de eventos de monitoramento para acompanhar o desempenho do seu aplicativo e o uso de recursos.
O driver fornece informações sobre sua aplicação emitindo eventos. Você pode ouvir os eventos do driver para monitorar seu aplicação.
Observação
Registro de eventos
Esta página explica como monitorar seu aplicação no código. Para saber como registrar essas informações em um registro externo, consulte o guiade registro .
Tipos de evento
O tipo de evento que o driver emite depende da operação que está sendo executada. A tabela a seguir descreve os tipos de eventos que o driver emite:
eventType | Descrição |
---|---|
Eventos de comando | Eventos relacionados aos comandos do banco de dados MongoDB , como Como medida de segurança, o driver redige o conteúdo de alguns eventos de comando. Isso protege as informações confidenciais contidas nesses eventos de comando. |
Eventos de descoberta e monitoramento de servidor (SDAM) | Eventos relacionados a alterações no estado da implantação do MongoDB . |
Eventos do pool de conexões | Eventos relacionados ao pool de conexões mantido pelo driver. |
Para obter uma lista completa de eventos que o driver emite, consulte a documentação da API pymongo.monitoring.
Audição de eventos
Para monitorar um evento, você deve passar um ouvinte de evento para o MongoClient
do seu aplicativo. As etapas a seguir descrevem como monitorar seu aplicação usando um ouvinte de evento :
Crie uma classe que herde de uma das classes básicas de ouvinte de evento fornecidas pelo PyMongo. A classe base escolhida depende do tipo de evento que você deseja monitorar. Por exemplo, para monitorar eventos de comando, crie uma classe que herde de
CommandListener
.Implemente os métodos da classe base que correspondem aos eventos que você deseja monitorar.
Passe uma instância da sua classe de ouvinte para o construtor
MongoClient
.
O código a seguir implementa um CommandListener
para escutar eventos de comando, um ServerListener
para escutar eventos SDAM e um ConnectionPoolListener
para escutar eventos do pool de conexões :
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 listeners = [MyCommandListener(), MyServerListener(), MyPoolListener()] client = MongoClient("<connection URI>", event_listeners=listeners)
Documentação da API
Para saber mais sobre os métodos e classes utilizados para monitorar eventos no driver, consulte a seguinte documentação da API: