Monitoramento de pool de conexões
Nesta página
- Visão geral
- Exemplo de inscrição de eventos
- Descrições de evento
- Documentos de exemplos de eventos
- connectionPoolCreated
- connectionPoolReady
- connectionPoolClosed
- connectionCreated
- connectionReady
- connectionClosed
- connectionCheckOutStarted
- connectionCheckOutFailed
- connectionCheckedOut
- connectionCheckedIn
- connectionPoolCleared
Visão geral
Este guia mostra como monitorar o pool de conexões do driver. Um pool de conexões é um pool de conexões TCP abertas que seu driver mantém com uma instância do MongoDB. Os pools de conexões ajudam a reduzir o número de negociações de rede que seu aplicativo precisa executar e podem ajudá-lo a ser executado mais rapidamente.
Leia este guia se precisar registrar eventos do pool de conexões em seu aplicativo ou se quiser explorar as informações fornecidas nesses eventos.
Exemplo de inscrição de eventos
Você pode acessar um ou mais eventos do pool de conexões usando o driver assinando-os no seu aplicativo. O exemplo a seguir demonstra a conexão com um conjunto de réplicas e a assinatura de um dos eventos de monitoramento do pool de conexões criados pelo MongoDB deployment:
const { MongoClient } = require("mongodb"); // Replace the following with your MongoDB deployment's connection // string. const uri = "mongodb+srv://<clusterUrl>/?replicaSet=rs&writeConcern=majority"; const client = new MongoClient(uri); // Replace <event name> with the name of the event you are subscribing to. const eventName = "<event name>"; // Subscribe to the event client.on(eventName, (event) => console.log("\nreceived event:\n", event) ); async function run() { try { // Establish and verify connection await client.db("admin").command({ ping: 1 }); console.log("\nConnected successfully!\n"); } finally { // Ensures that the client will close when you finish/error await client.close(); } } run().catch(console.dir);
Descrições de evento
Você pode assinar qualquer um dos seguintes eventos de monitoramento do pool de conexões:
Nome do evento | Descrição |
---|---|
connectionPoolCreated | Criado quando um pool de conexões é criado. |
connectionPoolReady | Criado quando um pool de conexões estiver pronto. |
connectionPoolClosed | Criado quando um pool de conexões é fechado, antes da destruição da instância do servidor. |
connectionCreated | Criado quando uma conexão é criada, mas não necessariamente quando é usada para uma operação. |
connectionReady | Criado após uma conexão ter concluído com êxito um handshake e estar pronta para ser usada em operações. |
connectionClosed | Criado quando uma conexão é fechada. |
connectionCheckOutStarted | Criado quando uma operação tenta adquirir uma conexão para execução. |
connectionCheckOutFailed | Criado quando uma operação falha ao estabelecer uma conexão para execução. |
connectionCheckedOut | Criado quando uma operação adquire com sucesso uma conexão para execução. |
connectionCheckedIn | Criado quando uma conexão é verificada novamente no pool depois que uma operação é executada. |
connectionPoolCleared | Criado quando um pool de conexões é limpo. |
Documentos de exemplos de eventos
As seções abaixo mostram amostras de saída para cada tipo de evento de monitoramento do pool de conexões.
connectionPoolCreated
ConnectionPoolCreatedEvent { time: 2023-02-13T15:54:06.944Z, address: '...', options: {...} }
connectionPoolReady
ConnectionPoolReadyEvent { time: 2023-02-13T15:56:38.440Z, address: '...' }
connectionPoolClosed
ConnectionPoolClosedEvent { time: 2023-02-13T15:56:38.440Z, address: '...' }
connectionCreated
ConnectionCreatedEvent { time: 2023-02-13T15:56:38.291Z, address: '...', connectionId: 1 }
connectionReady
ConnectionReadyEvent { time: 2023-02-13T15:56:38.291Z, address: '...', connectionId: 1 }
connectionClosed
ConnectionClosedEvent { time: 2023-02-13T15:56:38.439Z, address: '...', connectionId: 1, reason: 'poolClosed', serviceId: undefined }
connectionCheckOutStarted
ConnectionCheckOutStartedEvent { time: 2023-02-13T15:56:38.291Z, address: '...', }
connectionCheckOutFailed
ConnectionCheckOutFailedEvent { time: 2023-02-13T15:56:38.291Z, address: '...', reason: ... }
connectionCheckedOut
ConnectionCheckedOutEvent { time: 2023-02-13T15:54:07.188Z, address: '...', connectionId: 1 }
connectionCheckedIn
ConnectionCheckedInEvent { time: 2023-02-13T15:54:07.189Z, address: '...', connectionId: 1 }
connectionPoolCleared
ConnectionPoolClearedEvent { time: 2023-02-13T15:56:38.439Z, address: '...', serviceId: undefined, interruptInUseConnections: true, }