Docs Menu
Docs Home
/ /

Monitoreo de conexión

Esta guía le muestra cómo usar el controlador Go para supervisar su grupo de conexiones. Un grupo de conexiones es un conjunto de conexiones abiertas del Protocolo de Control de Transmisión (TCP) que su controlador mantiene con una instancia de MongoDB. Los grupos de conexiones ayudan a reducir la cantidad de conexiones nuevas que su aplicación necesita crear, lo que podría acelerar su ejecución.

Podría usar información sobre eventos del pool de conexiones en su aplicación para optimizar el rendimiento o comprender el ciclo de vida del cliente.

Puede acceder a detalles sobre los eventos del grupo de conexiones suscribiéndose a ellos en su aplicación. El siguiente ejemplo muestra cómo suscribirse a PoolEvent evento instanciando un PoolMonitor y conectándose a una implementación:

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(context.TODO(), clientOpts)

La siguiente tabla describe los tipos de eventos de grupo que el controlador genera:

Tipo de evento del pool
Descripción

ConnectionPoolCreated

Se crea cuando se crea un grupo de conexiones.

ConnectionPoolReady

Se crea cuando un grupo de conexiones está listo.

ConnectionPoolCleared

Se crea cuando se cierran todas las conexiones en el pool.

ConnectionPoolClosed

Se crea cuando se cierra un grupo de conexiones, antes de la destrucción de la instancia del servidor.

ConnectionCreated

Se crea cuando se crea una conexión, pero no necesariamente cuando se utiliza para una operación.

ConnectionReady

Se crea después de que una conexión completa un protocolo de enlace y está lista para usarse en operaciones.

ConnectionClosed

Se crea cuando se cierra una conexión.

ConnectionCheckOutStarted

Se crea cuando una operación intenta adquirir una conexión para su ejecución.

ConnectionCheckOutFailed

Se crea cuando una operación no puede adquirir una conexión para su ejecución.

ConnectionCheckedOut

Se crea cuando una operación obtiene con éxito una conexión para su ejecución.

ConnectionCheckedIn

Se crea cuando una conexión se revisa de nuevo en el pool después de ejecutar una operación.

Las siguientes secciones muestran una salida de muestra para cada tipo de evento de monitoreo de grupo de conexiones.

*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 obtener más información sobre cómo monitorear una implementación de MongoDB, consulte ArtículoCó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:

  • Tipo dePoolMonitor

  • Tipo de evento de grupo

  • MétodoSetPoolMonitor()

Volver

Monitoreo de comandos

En esta página