Monitoramento de clusters
Nesta página
- Visão geral
- Descrições de evento
- Exemplo de monitoramento de eventos
- Documentos de exemplos de eventos
- ServerDescriptionChangedEvent
- ServerOpeningEvent
- ServerClosedEvent
- TopologiaDescriptionChangedEvent
- TopologiaOpeningEvent
- TopologiaClosedEvent
- ServerHeatbeatStartedEvent
- ServerHeatbeatSucceededEvent
- ServerHeatbeatFailedEvent
- Informações adicionais
- Documentação da API
Visão geral
Este guia mostra como usar o driver Rust para monitorar eventos de topologia em uma instância MongoDB, conjunto de réplicas ou cluster fragmentado. O driver cria eventos de topologia, também conhecidos como eventos de descoberta e monitoramento de servidor (SDAM), quando há alguma alteração no estado da instância ou cluster ao qual você está conectado.
Você pode usar informações sobre alterações de topologia em seu aplicativo ou monitorar as alterações do cluster para saber mais sobre como elas afetam seu aplicativo.
Este guia inclui as seguintes seções:
Descrições de eventos descreve os eventos SDAM que o driver pode gerar.
Exemplo de inscrição de eventos fornece código de exemplo que mostra como se inscrever em eventos SDAM.
Documentos de exemplos de eventos fornecem amostras de cada evento SDAM .
Informações adicionais fornecem links para recursos e documentação de API para os tipos e métodos mencionados neste guia.
Descrições de evento
Você pode monitorar os seguintes eventos SDAM:
Nome do evento | Descrição |
---|---|
Criado quando o estado de uma instância é alterado, como quando um membro do conjunto de réplicas muda de um secundário para um primário. | |
Criado quando uma conexão com uma instância, como um membro do conjunto de réplicas, é aberta. | |
Criado quando uma conexão com uma instância, como um membro do conjunto de réplicas, é fechada. | |
Criado quando a descrição da topologia é alterada, como quando há uma eleição de um novo primário ou quando um proxy mongos se desconecta. | |
Criado antes do driver tentar se conectar a uma instância. | |
Criado após o fechamento de todas as conexões de instância na topologia. | |
Criado antes do driver emitir um comando hello para uma instância. | |
Criado quando o comando hello retorna com sucesso de uma instância do MongoDB. | |
Criado quando um comando hello para uma instância MongoDB não retorna uma resposta bem-sucedida. |
Exemplo de monitoramento de eventos
Você pode monitorar eventos SDAM atribuindo uma instância EventHandler
como o valor da opção sdam_event_handler
do cliente . Para construir um EventHandler
, que processa todos os eventos SDAM, use o método callback()
ou async_callback()
.
O exemplo a seguir se conecta a um sistema MongoDB , instrui o cliente a monitorar eventos SDAM e imprime cada evento:
let mut client_options = ClientOptions::parse("<connection string>").await?; client_options.sdam_event_handler = Some(EventHandler::callback(|ev| println!("{:?}", ev))); let client = Client::with_options(client_options)?; // ... perform actions with the client to generate events
Documentos de exemplos de eventos
As seções a seguir mostram amostras de saída para cada tipo de evento SDAM.
ServerDescriptionChangedEvent
ServerDescriptionChangedEvent { address: ..., topology_id: ..., previous_description: ..., new_description: ..., }
ServerOpeningEvent
ServerOpeningEvent { address: ..., topology_id: ..., }
ServerClosedEvent
ServerClosedEvent { address: ..., topology_id: ..., }
TopologiaDescriptionChangedEvent
TopologyDescriptionChangedEvent { topology_id: ..., previous_description: ..., new_description: ..., }
TopologiaOpeningEvent
TopologyOpeningEvent { topology_id: ..., }
TopologiaClosedEvent
TopologyClosedEvent { topology_id: ..., }
ServerHeatbeatStartedEvent
ServerHeartbeatStartedEvent { server_address: ..., awaited: false, driver_connection_id: 12, server_connection_id: ..., }
ServerHeatbeatSucceededEvent
ServerHeartbeatSucceededEvent { duration: ..., reply: ..., server_address: ..., awaited: false, driver_connection_id: 12, server_connection_id: ..., }
ServerHeatbeatFailedEvent
ServerHeartbeatFailedEvent { duration: ..., failure: ..., server_address: ..., awaited: false, driver_connection_id: 12, server_connection_id: ..., }
Informações adicionais
Para saber mais sobre como monitorar uma MongoDB deployment, consulte o artigo Como monitorar o MongoDB .
Para saber mais sobre como se conectar ao MongoDB, consulte oGuia de Conexão .
Documentação da API
Para saber mais sobre os métodos e tipos mencionados neste guia, consulte a documentação da API abaixo: