Overview
Esta guía te muestra cómo configurar y establecer la supervisión en el MongoDB Rust Driver.
La supervisión recopila información sobre las actividades de un programa en ejecución, que se puede utilizar con una librería de gestión del rendimiento de aplicaciones.
La supervisión del driver de Rust te permite comprender el uso de recursos y el rendimiento del driver. Esta información te ayuda a tomar decisiones informadas cuando diseñas y depuras tu aplicación.
Esta guía te muestra cómo realizar las siguientes tareas:
Supervisar eventos del comando
Puede utilizar el driver Rust para supervisar el resultado de los comandos que el driver envía a su implementación de MongoDB.
Utiliza información sobre eventos de comandos en tu aplicación, o supervisa los comandos para aprender más sobre cómo el driver los ejecuta.
Descripciones de eventos
Puedes supervisar los siguientes eventos de comando:
Nombre del Evento | Descripción |
|---|---|
Se crea cuando se inicia un comando. | |
Se crea cuando un comando se ejecuta correctamente. | |
Creado cuando un comando no tiene éxito. |
Ejemplo de suscripción a eventos
Supervise eventos de comando asignando un EventHandler
instancia como el valor de la opción de cliente command_event_handler. Para construir un/a 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 driver de Rust para supervisar eventos de topología en una instancia de MongoDB, un set de réplicas o un clúster. El driver crea eventos de topología, también conocidos como eventos de descubrimiento y supervisión de servidores (SDAM), cuando cambia el estado de la instancia o del clúster.
Utilice información sobre cambios en la topología en su aplicación o supervise los cambios en el clúster para aprender más sobre cómo afectan a su aplicación.
Descripciones de eventos
Puedes supervisar los siguientes eventos SDAM:
Nombre del Evento | Descripción |
|---|---|
Se crea cuando cambia el estado de una instancia, como cuando un miembro de un conjunto de réplicas cambia de secundario a primario. | |
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 nodo principal o cuando un proxy | |
Creado antes de que el controlador intente conectarse a una instancia. | |
Se crea después de que se cierren todas las conexiones de instancias en la topología. | |
Creado antes de que el driver ejecute un comando | |
Se crea cuando el comando | |
Se crea cuando un comando |
Ejemplo de suscripción a eventos
Supervisa 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, utiliza 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 driver Rust para supervisar el pool de conexiones del driver. Un pool de conexiones es un conjunto de conexiones abiertas de Transmission Control Protocol (TCP) que su controlador mantiene con una instancia de MongoDB. Los pools de conexiones reducen el número de nuevas conexiones que tu aplicación necesita crear, lo que puede hacer que tu aplicación funcione más rápido.
Utiliza información sobre los cambios en el pool de conexiones en tu aplicación o supervisa el pool de conexiones para aprender más sobre cómo el driver 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. | |
Creado después de que una conexión complete con éxito un protocolo de enlace y esté lista para operar. | |
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 pool de conexiones asignando una instancia de EventHandler como el valor de la opción de cliente cmap_event_handler. Para construir un EventHandler que procese todos los eventos del pool de conexiones, use 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 tu aplicación, consulte la Guía de consideraciones 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: