Menu Docs
Página inicial do Docs
/ / /
Node.js
/ /

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

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.

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);

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.

As seções abaixo mostram amostras de saída para cada tipo de evento de monitoramento do pool de conexões.

ConnectionPoolCreatedEvent {
time: 2023-02-13T15:54:06.944Z,
address: '...',
options: {...}
}
ConnectionPoolReadyEvent {
time: 2023-02-13T15:56:38.440Z,
address: '...'
}
ConnectionPoolClosedEvent {
time: 2023-02-13T15:56:38.440Z,
address: '...'
}
ConnectionCreatedEvent {
time: 2023-02-13T15:56:38.291Z,
address: '...',
connectionId: 1
}
ConnectionReadyEvent {
time: 2023-02-13T15:56:38.291Z,
address: '...',
connectionId: 1
}
ConnectionClosedEvent {
time: 2023-02-13T15:56:38.439Z,
address: '...',
connectionId: 1,
reason: 'poolClosed',
serviceId: undefined
}
ConnectionCheckOutStartedEvent {
time: 2023-02-13T15:56:38.291Z,
address: '...',
}
ConnectionCheckOutFailedEvent {
time: 2023-02-13T15:56:38.291Z,
address: '...',
reason: ...
}
ConnectionCheckedOutEvent {
time: 2023-02-13T15:54:07.188Z,
address: '...',
connectionId: 1
}
ConnectionCheckedInEvent {
time: 2023-02-13T15:54:07.189Z,
address: '...',
connectionId: 1
}
ConnectionPoolClearedEvent {
time: 2023-02-13T15:56:38.439Z,
address: '...',
serviceId: undefined,
interruptInUseConnections: true,
}
← Monitoramento de comandos
GridFS →