Docs Menu
Docs Home
/ /

Monitoreo de clústeres

Esta guía le muestra cómo usar el controlador de Rust para monitorizar eventos de topología en una instancia de MongoDB, un conjunto de réplicas o un clúster fragmentado. El controlador crea eventos de topología, también conocidos como eventos de Descubrimiento y Monitoreo de Servidores (SDAM), cuando se produce algún cambio en el estado de la instancia o el clúster al que está conectado.

Puede utilizar información sobre los cambios de topología en su aplicación o puede monitorear los cambios del clúster para obtener más información sobre cómo afectan su aplicación.

Esta guía incluye las siguientes secciones:

  • Descripciones de eventos describe los eventos SDAM que el controlador puede generar

  • El ejemplo desuscripción a eventos proporciona un código de muestra que muestra cómo suscribirse a un evento SDAM

  • Los documentos de eventos de ejemplo proporcionan muestras de cada evento SDAM

  • Información adicional proporciona enlaces a recursos y documentación de API para los tipos y métodos mencionados en esta guía.

Puedes suscribirte a uno o más de los siguientes eventos SDAM:

Nombre del evento
Descripción

Se crea cuando cambia el estado de una instancia, como cuando un miembro del conjunto de réplicas cambia de secundario a principal.

Se crea cuando se abre una conexión a una instancia, como un miembro del conjunto de réplicas.

Se crea cuando se cierra una conexión a una instancia, como un miembro del conjunto de réplicas.

Se crea cuando cambia la descripción de la topología, como cuando hay una elección de un nuevo primario o cuando un mongos El proxy se desconecta.

Se crea antes de que el controlador intente conectarse a una instancia.

Se crea después de que se cierran todas las conexiones de instancia en la topología.

Se crea antes de que el controlador emita un comando hello a una instancia.

Se crea cuando el comando hello regresa exitosamente desde una instancia de MongoDB.

Se crea cuando un comando hello a una instancia de MongoDB no devuelve una respuesta exitosa.

Puede acceder a uno o más eventos SDAM suscribiéndose a ellos en su aplicación. El siguiente ejemplo se conecta a una implementación de MongoDB y se suscribe al tipo de evento ServerOpeningEvent:

struct ServerOpenHandler;
impl SdamEventHandler for ServerOpenHandler {
fn handle_server_opening_event(&self, event: ServerOpeningEvent) {
eprintln!("Server opening: {:?}", event);
}
}
let handler: Arc<dyn SdamEventHandler> = Arc::new(ServerOpenHandler);
client_options.sdam_event_handler = Some(handler);
let client = Client::with_options(client_options)?;
// ... perform actions with the client to generate events

Las siguientes secciones muestran la salida de ejemplo para cada tipo de evento SDAM.

ServerDescriptionChangedEvent {
address: ...,
topology_id: ...,
previous_description: ...,
new_description: ...,
}
ServerOpeningEvent {
address: ...,
topology_id: ...,
}
ServerClosedEvent {
address: ...,
topology_id: ...,
}
TopologyDescriptionChangedEvent {
topology_id: ...,
previous_description: ...,
new_description: ...,
}
TopologyOpeningEvent {
topology_id: ...,
}
TopologyClosedEvent {
topology_id: ...,
}
ServerHeartbeatStartedEvent {
server_address: ...,
awaited: false,
driver_connection_id: 12,
server_connection_id: ...,
}
ServerHeartbeatSucceededEvent {
duration: ...,
reply: ...,
server_address: ...,
awaited: false,
driver_connection_id: 12,
server_connection_id: ...,
}
ServerHeartbeatFailedEvent {
duration: ...,
failure: ...,
server_address: ...,
awaited: false,
driver_connection_id: 12,
server_connection_id: ...,
}

Para obtener más información sobre cómo monitorear una implementación de MongoDB, consulte el artículo Cómo monitorear MongoDB.

Para obtener más información sobre cómo conectarse a MongoDB, consulte Guía de conexión.

Para obtener más información sobre los métodos y tipos mencionados en esta guía, consulte la siguiente documentación de API:

Volver

Async & Sync APIs