Menu Docs
Página inicial do Docs
/ / /
Driver 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(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