Implementando Sentry para el manejo de log de errores
Clase 23 de 43 • Curso de Express.js 2018
Contenido del curso
Template Engines y archivos estáticos
Creando un API Restful
Conectando Express.js con servicios externos
Middlewares: En el medio del request
- 20

Qué es un middleware y qué tipos existen
01:47 min - 21

Manejo de errores usando un middleware
09:36 min - 22

Validación de datos usando un middleware
03:06 min - 23

Implementando Sentry para el manejo de log de errores
Viendo ahora - 24

Qué es Joi y Boom y cómo configurar Joi
08:06 min - 25

Configurando Boom y nuestra página 404
14:47 min - 26

Middlewares populares
02:34 min
Autenticación en Express.js
Testing
Deployment
- 35

Buenas prácticas para el despliegue en producción
03:36 min - 36

npm script
05:01 min - 37

Añadiendo manejo de cache y seguridad con helmet
09:47 min - 38

Cómo usar las variables de entorno para diferente ambientes
01:06 min - 39

Habilitando CORS en producción
01:09 min - 40

Cómo funciona y por qué es importante el uso de HTTPS
01:08 min - 41

Desplegando con Now y detectando vulnerabilidades con npm audit
07:16 min - 42

Automatizar el chequeo de vulnerabilidades con snyk
00:52 min - 43

Conclusiones
01:46 min
Para empezar a usar Sentry lo primero que debemos hacer es crear una cuenta usando el link https://sentry.io/signup/. Para agilizar este paso recomiendo que usen su cuenta de GitHub como método de inscripción y sigan los pasos.
Al ingresar al dashboard de Sentry lo que podemos hacer es ir directamente onboarding haciendo click en la alerta amarilla que aparece en la parte superior o mediante el link https://sentry.io/onboarding/<organización>/.
Allí nos pedirá que seleccionemos un lenguage y un team, para el lenguaje seleccionaremos Server > Node.js le daremos un nombre al proyecto dejaremos el team que tiene por defecto y a continuación haremos click en Create Project.
Después de ello nos entregara unas instrucciones para configurar Sentry. Lo que haremos es instalar la dependencia de Sentry e inicializar su configuración en el archivo /utils/middlewares/errorsHandlers.js.
Recordemos que no debemos dejar ninguna key, secret o identificador quemado en nuestro código por lo que la recomendación es moverlo a variables de entorno y configuración usando el archivo .env.
// .env.example y .env SENTRY_DNS= SENTRY_ID=
// config/index.js require("dotenv").config(); const config = { sentryDns: process.env.SENTRY_DNS, sentryId: process.env.SENTRY_ID }; module.exports = { config: config };
// utils/middlewares/errorsHandlers.js const Sentry = require("@sentry/node"); const { config } = require("../../config"); Sentry.init({ dsn: `https://${config.sentryDns}@sentry.io/${config.sentryId}` });
Y dentro de nuestro middleware logErrors agregamos el capturador de errores de Sentry:
// utils/middlewares/errorsHandlers.js function logErrors(err, req, res, next) { Sentry.captureException(err); console.error(err.stack); next(err); }
Le damos click en All done! y nos reenviara al dashboard dónde podremos monitorear los errores que ocurren en nuestra aplicación.
De esta manera cualquier error que ocurra en nuestra aplicación desplegada en producción estará registrado en Sentry y podremos revisarlos y corregirlos proactivamente.
Si quieres obtener más información sobre cómo capturar eventos y mensajes manualmente puedes consultarlo aquí https://docs.sentry.io/error-reporting/capturing/?platform=node