El día de hoy te compartiré una herramienta que encontré gracias a que hace aproximadamente 1 año me pregunte si había forma de monitorear los errores de una aplicación desarrollada en Laravel en producción.

Actualmente uso Sentry para varios proyectos y puedo decir personalmente que me ha facilitado demasiado la vida, si quieres ahorrarte muchos dolores de cabeza en encontrar errores y hacer un debug de tu aplicación en tiempo real cuando estás en producción, deberías darle un vistazo a Sentry.

Sentry es un software basado en la nube que cuenta con diferentes idiomas de programación en donde puedes hacer integraciones como por ejemplo Python, PHP, GO, JavaScript, Ruby, entre otros muchos más.

Además por si fuera poco, tiene integraciones interesantes sobre frameworks como Ruby On Rails, Laravel, Django, React o en tecnologías como GitLab, Slack o GitHub.

Yo personalmente lo he ocupado para 3 proyectos y me ha parecido fabulosa la integración, el ahorro de tiempo y su interfaz, definitivamente han hecho un buen estudio de mercado y un excelente desarrollo.

Si necesitas más información puedes visitar el sitio web oficial de Sentry dando clic aquí, podrás encontrar información detallada y toda la documentación oficial.

¿Cómo integrar Sentry en Laravel?

La integración con Laravel es sumamente fácil gracias a que Sentry nos provee un SDK e instalarlo es sencillo gracias a composer.

composer require sentry/sentry-laravel

Después de que termine de instalar todas las dependencias, necesitarás agregar el provider de Sentry y un alias en tu archivo config/app.php.

'providers' => array(
    Sentry\Laravel\ServiceProvider::class,
)

'aliases' => array(
    'Sentry' => Sentry\Laravel\Facade::class,
)

Posteriormente necesitas editar el archivo App/Exceptions/Handler.php y editar el método report que viene por defecto en tu instalación y reemplazarlo por el siguiente:

public function report(Exception $exception)
{
    if (app()->bound('sentry') && $this->shouldReport($exception)) {
        app('sentry')->captureException($exception);
    }

    parent::report($exception);
}

Con esto le estamos indicando a Laravel que cada vez que haya un exception capture el error y lo manda directamente a Sentry.

Por último necesitamos crear el archivo de configuración, ejecutemos el siguiente comando que nos ayuda a automatizarlo:

php artisan vendor:publish --provider="Sentry\Laravel\ServiceProvider"

Realizando un test

Para probar que nuestra configuración ha sido hecha con éxito, puedes ejecutar el siguiente comando en tu terminal:

php artisan sentry:test

Esto generará una alerta de prueba y se enviará a Sentry por lo que inmediatamente tendrás disponible esa alerta en tu proyecto de Sentry.

Nota: puedes consultar la documentación oficial de Sentry dando clic aquí.

Espero que este post te haya resultado de utilidad y que le puedas sacar mucho provecho a Sentry para ser más productivo en tus proyectos.