Menu Docs
Página inicial do Docs
/ / /
Go
/ /

Monitoramento de conexão

Nesta página

  • Visão geral
  • Inscrever-se para receber eventos
  • Descrições de evento
  • Documentos de exemplos de eventos
  • connectionPoolCreated
  • connectionPoolReady
  • connectionPoolCleared
  • connectionPoolClosed
  • connectionCreated
  • connectionReady
  • connectionClosed
  • connectionCheckOutStarted
  • connectionCheckOutFailed
  • connectionCheckedOut
  • connectionCheckedIn
  • Informações adicionais
  • Documentação da API

Este guia mostra como usar o driver Go para monitorar o pool de conexões do driver. Um pool de conexões é um conjunto de conexões abertas do Protocolo de controle de transmissão (TCP) que seu driver mantém com uma instância MongoDB. O pool de conexões ajuda a reduzir o número de novas conexões que sua aplicação precisa criar, o que pode fazer com que sua aplicação seja executada mais rapidamente.

Você pode usar informações sobre eventos do pool de conexões em seu aplicativo para otimizar o desempenho ou entender o ciclo de vida do cliente.

Você pode acessar detalhes sobre eventos do pool de conexões assinando-os em seu aplicativo. O exemplo seguinte demonstra como assinar o evento PoolEvent instanciando um PoolMonitor e conectando-se a um sistema:

var eventArray []*event.PoolEvent
cxnMonitor := &event.PoolMonitor{
Started: func(e *event.PoolEvent) {
eventArray = append(eventArray, e)
},
}
clientOpts := options.Client().ApplyURI(uri).SetPoolMonitor(cxnMonitor)
client, err := mongo.Connect(context.TODO(), clientOpts)

A tabela a seguir descreve os tipos de eventos de pool que o driver emite:

Tipo de evento de pool
Descrição
ConnectionPoolCreated
Criado quando um pool de conexões é criado.
ConnectionPoolReady
Criado quando um pool de conexões estiver pronto.
ConnectionPoolCleared
Criado quando todas as conexões no pool são fechadas.
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 concluir 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 não pode adquirir 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.

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

*event.PoolEvent
{
"type": "ConnectionPoolCreated",
"address": "...",
"connectionId": 0,
"options": {
"maxPoolSize": 100,
"minPoolSize": 0,
"maxIdleTimeMS": 0
},
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionPoolReady",
"address": "...",
"connectionId": 0,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionPoolCleared",
"address": "...",
"connectionId": 0,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionPoolClosed",
"address": "...",
"connectionId": 0,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionCreated",
"address": "...",
"connectionId": 1,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionReady",
"address": "...",
"connectionId": 1,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionClosed",
"address": "...",
"connectionId": 1,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionCheckOutStarted",
"address": "...",
"connectionId": 0,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionCheckOutFailed",
"address": "...",
"connectionId": 0,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionCheckedOut",
"address": "...",
"connectionId": 1,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionCheckedIn",
"address": "...",
"connectionId": 1,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}

Para saber mais sobre como monitorar uma implantação do MongoDB, consulte o artigo Como monitorar o MongoDB .

Para saber mais sobre como se conectar ao MongoDB, consulte oGuia de Conexão .

Para saber mais sobre os métodos e tipos mencionados neste guia, consulte a documentação da API abaixo:

Voltar

Monitoramento de comandos