Tabla de contenido:

Introducción

Laravel Pulse es una herramienta de monitoreo del rendimiento de la aplicación en tiempo real y un panel de control para su aplicación Laravel.

En palabras de Taylor Otwell creador de Laravel, Pulse nació por la frustración que tenían con Laravel Forge y la incapacidad de identificar de forma rapida por qué el servicio presentaba rendimiento bajo y cuáles eran los usuarios que lo causaban.

Es increíble que una herramienta de esa magnitud sea gratuita, se nota el amor que el equipo de Laravel le tiene a su comunidad para dejar Pulse libre y poder utilizarlo en cualquier aplicación.

Las características que ofrece Laravel Pulse

  • Uso de la aplicación: Descubra a los usuarios que realizan la mayor cantidad de solicitudes, interactúan con los puntos finales más lentos y envían la mayor cantidad de trabajos a través de sus aplicaciones Laravel.
  • Estadísticas del servidor: Supervise el uso de CPU, memoria y disco de su servidor. ¿Está ejecutando varios servidores? Sin sudar. Pulse puede monitorear todos sus servidores en un solo lugar.
  • Monitoreo de colas: Elimine las conjeturas al optimizar los trabajadores de su cola. Vea estadísticas históricas y en tiempo real sobre cuántos trabajos están pendientes, cuántos fallaron y cuántos se procesaron exitosamente.
  • Monitoreo del desempeño: Vea una descripción general de alto nivel de los cuellos de botella en el rendimiento de sus aplicaciones. Vea los puntos finales, consultas, trabajos y solicitudes salientes más lentos que afectan a los usuarios.
  • Excepciones de tendencia: Obtenga una descripción general de las excepciones que ocurren en su aplicación. Tener sus excepciones al lado de la descripción general completa del estado de su aplicación lo ayuda a encontrar anomalías en toda su pila.
  • Métricas personalizadas impulsadas por la comunidad: Crea tarjetas personalizadas para ti o crea tarjetas que se puedan compartir para la comunidad de Laravel. Incluso puedes personalizar el diseño del panel de Pulse.
  • Diseño del panel personalizado: en el sitio web oficial se menciona que el diseño del panel se puede personalizar, ¡lo cual es una gran noticia!

Instalar Pulse

Laravel Pulse requiere una base de datos MySQL o PostgreSQL. Si está ejecutando otra base de datos, está bien, pero tendrá que crear una nueva conexión para MySQL o PostgreSQL.

Pulse todavía está en versión beta y debe realizar algunos cambios en su archivo composer.json para instalarlo hasta que se lance una versión estable. Cambie a minimum-stability y beta asegúrese de prefer-stable que esté configurado en true:

"minimum-stability": "beta",
"prefer-stable": true

Utilizando composer se instala con el siguiente comando:

composer require laravel/pulse

A continuación, debe publicar los archivos de configuración y migración de Pulse usando el vendor:publish comando Artisan:

php artisan vendor:publish --provider="Laravel\Pulse\PulseServiceProvider"

Pafa finalizar, debe ejecutar el comando migrate para crear las tablas necesarias para almacenar los datos de Pulse:

php artisan migrate

Una vez que se hayan ejecutado las migraciones de la base de datos de Pulse, podrá acceder al panel de Pulse a través de la ruta /pulse.

Deje que Laravel Pulse monitoree su servidor

De momento el panel de pulse está vacío.

Se debe mostrar informacion alli y para empezar debe mostrar los recursos del servidor

Para hacer esto, ejecute el siguiente comando:

php artisan pulse:check

Este comando se ejecuta continuamente para proporcionar a Pulse los datos necesarios para el panel de administración. Este es un demonio que debes ejecutar en segundo plano y se recomienda utilizar Supervisor para hacerlo.

Listo, Pulse ya está monitoreando la aplicación 🚀🚀 pero falta algo más, aplicar la seguridad necesaria al panel de pulse.

Hacer que Laravel Pulse sea seguro

Se puede acceder al panel de Pulse a través de la ruta /pulse. Esta forma predeterminada permite el acceso en el entorno local, para acceder a la ruta en un entorno de producción se debe configurar la autorización en AuthServiceProvider definiendo un método gate viewPulse.

use App\Models\User;
use Illuminate\Support\Facades\Gate;
 
/**
 * Register any authentication / authorization services.
 */
public function boot(): void
{
    Gate::define('viewPulse', fn (User $user) => $user->isAdmin());
	
    // or
	
    Gate::define('viewPulse', fn (User $user) => in_array($user->email, [
        'johndoe@example.com',
    ]));
}

¡Listo, ahora podemos disfrutar de Pulse! 🚀🤓

La comunidad de Laravel, como no es de extrañarse ya estan desarrollando tarjetas personalizadas. 🤙

Jonnathan Chiroy Profile Picture

"Hola, soy un desarrollador apasionado por Laravel y su ecosistema que permiten desarrollar aplicaciones magnificas, tratare de compartir mis conocimientos y vivencias desarrollando aplicaciones utilizando TALL stack, PostgreSQL y MySQL. 🤘"

Jonnathan Chiroy (jchiroy)
Laravel developer