Overview
Esta guía le muestra cómo configurar y establecer la monitorización en el controlador Rust de MongoDB.
La monitorización recopila información sobre las actividades de un programa en ejecución, que puede utilizarse con una biblioteca de gestión del rendimiento de la aplicación.
Supervisar el controlador de Rust permite comprender su uso de recursos y su rendimiento. Esta información ayuda a tomar decisiones fundamentadas al diseñar y depurar la aplicación.
Esta guía le muestra cómo realizar las siguientes tareas:
Monitorear eventos de comando
Puedes usar el controlador de Rust para supervisar el resultado de los comandos que el controlador envía a tu implementación de MongoDB.
Utilice la información sobre los eventos de comandos en su aplicación o supervise los comandos para obtener más información sobre cómo los ejecuta el controlador.
Descripciones de eventos
Puede supervisar los siguientes eventos de comando:
Nombre del Evento | Descripción |
|---|---|
Se crea cuando se inicia un comando. | |
Se crea cuando un comando tiene éxito. | |
Se crea cuando un comando no tiene éxito. |
Ejemplo de suscripción a eventos
Supervise los eventos de comando asignando un EventHandler
instancia como el valor de la opción de cliente command_event_handler. Para construir un EventHandler que procese todos los eventos de comando, utilice el método callback() o async_callback().
El siguiente ejemplo se conecta a una implementación de MongoDB, indica al cliente que supervise eventos de comandos e imprime cada evento:
let mut client_options = ClientOptions::parse("<connection string>").await?; client_options.command_event_handler = Some(EventHandler::callback(|ev| println!("{:?}", ev))); let client = Client::with_options(client_options)?; // ... perform actions with the client to generate events
Supervisar eventos de descubrimiento y supervisión de servidores (SDAM)
Puedes usar el controlador de Rust para supervisar 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 detección y supervisión de servidores (SDAM), cuando cambia el estado de la instancia o del clúster.
Utilice la información sobre los cambios de topología en su aplicación o supervise los cambios en el clúster para obtener más información sobre cómo afectan a su aplicación.
Descripciones de eventos
Puede supervisar 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 set de réplicas. | |
Se crea cuando se cierra una conexión con una instancia, como un miembro de un set de réplicas. | |
Se crea cuando cambia la descripción de la topología, como cuando hay una elección de un nuevo servidor principal o cuando un proxy | |
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 | |
Se crea cuando el comando | |
Se crea cuando un comando |
Ejemplo de suscripción a eventos
Supervise los eventos SDAM asignando una instancia EventHandler como valor de la opción de cliente sdam_event_handler. Para construir un EventHandler que procese todos los eventos SDAM, utilice el método callback() o async_callback().
El siguiente ejemplo se conecta a una implementación de MongoDB, instruye al cliente para que supervise los eventos de SDAM y muestra 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
Supervisa los eventos del grupo de conexiones
Puedes usar el controlador de Rust para supervisar el grupo de conexiones del controlador. Un grupo de conexiones es un conjunto de conexiones TCP (Protocolo de Control de Transmisión) abiertas que tu controlador mantiene con una instancia de MongoDB. Los grupos de conexiones reducen la cantidad de conexiones nuevas que tu aplicación necesita crear, lo que puede acelerar su ejecución.
Utilice la información sobre los cambios en su grupo de conexiones en su aplicación, o supervise el grupo de conexiones para obtener más información sobre cómo el controlador utiliza las conexiones.
Descripciones de eventos
Puede supervisar los siguientes eventos del pool de conexiones:
Nombre del Evento | Descripción |
|---|---|
Se crea cuando se crea un pool de conexiones. | |
Se crea cuando un pool de conexiones está listo. | |
Se creó al borrar un pool de conexiones. | |
Se crea cuando se cierra un pool de conexiones, antes de la destrucción de la instancia del servidor. | |
Se crea cuando se establece una conexión, pero no necesariamente cuando se utiliza para una operación. | |
Se crea una vez que la conexión completa con éxito el protocolo de enlace y está lista para funcionar. | |
Se crea cuando se cierra una conexión. | |
Se crea cuando una operación intenta adquirir una conexión para su ejecución. | |
Se crea cuando una operación no puede adquirir una conexión para ejecutarse. | |
Se crea cuando una operación obtiene con éxito una conexión para su ejecución. | |
Se crea cuando una conexión se revisa de nuevo en el pool después de ejecutar una operación. |
Ejemplo de suscripción a eventos
Supervise los eventos del grupo de conexiones asignando una instancia EventHandler como valor de la opción de cliente cmap_event_handler. Para construir un EventHandler que procese todos los eventos del grupo de conexiones, utilice el método callback() o async_callback().
El siguiente ejemplo se conecta a una implementación de MongoDB, instruye al cliente para que supervise los eventos del grupo de conexiones e imprime cada evento:
let mut client_options = ClientOptions::parse("<connection string>").await?; client_options.cmap_event_handler = Some(EventHandler::callback(|ev| println!("{:?}", ev))); let client = Client::with_options(client_options)?; // ... perform actions with the client to generate events
Información Adicional
Para obtener más información sobre la supervisión de una implementación de MongoDB, consulte el artículo Cómo supervisar MongoDB.
Para obtener más información sobre cómo mejorar el rendimiento de su aplicación, consulte la Guía deconsideraciones de rendimiento.
Documentación de la API
Para obtener más información sobre los métodos y tipos mencionados en esta guía, vea la siguiente documentación de la API: