
Monitoreo de conexiones de bases de datos con db:monitor de Laravel
- Publicado el 21 febrero, 2025
- Palabras: 164
¿Necesitas monitorear las conexiones de tu base de datos de manera proactiva? El comando db:monitor de Laravel te ayuda a rastrear las conexiones abiertas y reaccionar cuando exceden los umbrales definidos.

A partir de Laravel 9.24, puedes monitorear las conexiones de tu base de datos y recibir notificaciones cuando se acerquen a niveles críticos. Esta función ayuda a prevenir el agotamiento del grupo de conexiones al avisarte antes de que surjan problemas. Veamos cómo funciona:
// Schedule monitoring for specific databases with thresholds
php artisan db:monitor --databases=mysql,pgsql --max=100
#Ejemplo práctico
A continuación se explica cómo configurar la supervisión de la conexión de la base de datos:
// AppProvidersAppServiceProvider
use AppNotificationsDatabaseApproachingMaxConnections;
use IlluminateDatabaseEventsDatabaseBusy;
use IlluminateSupportFacadesEvent;
use IlluminateSupportFacadesNotification;
public function boot(): void
{
// Listen for DatabaseBusy events
Event::listen(function (DatabaseBusy $event) {
Notification::route('mail', 'dev@example.com')
->notify(new DatabaseApproachingMaxConnections(
$event->connectionName,
$event->connections
));
});
}
// AppConsoleKernel
protected function schedule(Schedule $schedule)
{
// Monitor every minute
$schedule->command('db:monitor --database=mysql --max=100')
->everyMinute();
}
// AppNotificationsDatabaseApproachingMaxConnections
class DatabaseApproachingMaxConnections extends Notification
{
public function toMail($notifiable)
{
return (new MailMessage)
->error()
->subject('Database Connection Alert')
->line("The {$this->connectionName} database has {$this->connections} open connections.")
->line('This exceeds the configured threshold.');
}
}
El comando db:monitor proporciona una manera simple pero efectiva de prevenir problemas de conexión a la base de datos. Piense en él como un perro guardián de sus conexiones a la base de datos: monitorea continuamente el grupo de conexiones y le avisa cuando se acerca a territorio peligroso.
Esto se vuelve especialmente valioso cuando:
- Ejecuta aplicaciones con muchos usuarios simultáneos
- Administra varias conexiones a la base de datos
- Depura problemas del grupo de conexiones
- Garantiza la estabilidad de la aplicación
- Planifica operaciones de escalado
Por ejemplo, establecer un umbral en el 80 % de sus conexiones máximas le da tiempo para reaccionar antes de que se agote el grupo.
Fuente: Harris Raftopoulos
Artículos relacionados
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión