¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Symfony 5
  3. Logging y monitoring con Symfony
Extrait - Symfony 5 Desarrolle sitios web PHP estructurados y eficientes
Extractos del libro
Symfony 5 Desarrolle sitios web PHP estructurados y eficientes Volver a la página de compra del libro

Logging y monitoring con Symfony

Generar registros de actividad con Monolog

1. Registro de actividad

El registro de actividad (logging...

Monitoring con Prometheus y Grafana

1. Un aliado proactivo del logging

Para una aplicación en producción, el logging por sí solo no gestiona eficazmente los problemas que puedan surgir. Su principal desventaja está relacionada con su naturaleza: es solo un registro de actividad que enumera una serie de eventos que ya han tenido lugar. Incluso si ha configurado Monolog para que le envíe un correo electrónico en caso de un error crítico, permanece en un enfoque «a posteriori» donde solo puede «limitar el daño».

El monitoring es una técnica complementaria al logging para los sistemas en producción. En algunos casos, permite detectar posibles incidentes antes de que ocurran. Para ello, se basa en una colección de «métricas» (o metrics en inglés). Estos se utilizarán principalmente para:

  • enviar alertas (por correo electrónico, SMS, etc.) cuando determinadas medidas alcancen valores preocupantes,

  • crear gráficos (por ejemplo, mostrar el número de peticiones por segundo, tasas de error, etc.).

images/1-graphiques.png

Ejemplos de gráficos generados a partir de mediciones

Ejemplo de una alerta a partir de mediciones

Para ilustrar la noción de alerta de un sistema de monitoring, imaginemos un simple formulario que permita cargar archivos. El usuario puede cargar archivos locales a un servidor remoto, con el fin de guardar sus archivos en la «nube». Como estos archivos ocupan espacio en disco, sería interesante comprobar regularmente cuánto espacio está disponible. Cuando una medición indica, por ejemplo, que se ha utilizado el 80 % del espacio, podría recibir una alerta, ya sea por SMS, correo electrónico u otro.

2. Preparar una aplicación Symfony para Prometheus

Prometheus es un sistema de monitoring que nos permitirá recoger mediciones de nuestra aplicación Symfony. Seguidamente, podemos visualizarlos en gráficos e integrarlos en un sistema de alerta.

images/cap13_pag13.png

Prometheus se basa en un sistema de tipo pull; la aplicación Symfony simplemente tiene que exponer sus mediciones bajo un path determinado (generalmente /metrics). Prometheus hará consultas regulares para recopilar estas mediciones.

Para hacer esto, vamos a instalar en primer lugar una librería con la que podamos exponer nuestras mediciones fácilmente:...