Introducción a la monitorización y New Relic

06/05/2021
The importance of monitoring, New Relic

¿Por qué es importante monitorizar?

Cuando desarrollamos proyectos web de una cierta envergadura, generalmente suele ser crítico que estos portales estén activos y sin errores el mayor tiempo posible. Aquí es donde entra la monitorización de los sitios web.

Monitorizar un sitio web permite conocer información de él en tiempo real (métricas del tipo: tiempo de carga medio, tiempo de ejecución de cada consulta a base de datos, navegador y versiones,...). También nos permite como configurar avisos/alarmas para detectar lo antes posible momentos críticos y tomar acciones rápidas.

Contar con toda esta información de una manera visual y la posibilidad de filtrar los gráficos de estas métricas con mucha granularidad es una herramienta maravillosa para tomar decisiones más acertadas para realizar cualquier tipo de optimización en el site.

New Relic example - Transaction times in the last hour
New Relic example - Transaction times in the last hour

La monitorización de un portal web es, normalmente, una tarea asociada a devops o perfiles más “sistemeros”, pero puede ser realmente útil también para los desarrolladores.

No sólo estamos hablando de que la página web tenga una alta disponibilidad. Tener toda la información posible de un portal web es crucial para tomar acciones de cara a la optimización del rendimiento de una página web. Por ejemplo, conocer los momentos en los que hay picos de carga, o localizar qué función del código tarda más en su ejecución facilita enormemente el trabajo posterior del desarrollador.

New Relic

Aunque hay otras muchas herramientas (APM - Application Performance Monitoring) para conocer en tiempo real las métricas de un site, nos gustaría destacar New Relic ya que contamos con más experiencia con ella.

New Relic nos ofrece infinidad de información sobre nuestro site, y con una complejidad baja en cuanto a la instalación de esta herramienta de monitorización. Además, su integración con Drupal nos permite sacarle más jugo a la herramienta, pudiendo filtrar la información hasta obtener datos muy concretos. Por ejemplo, conocer el tiempo de ejecución medio de cada función nos facilitaría detectar un cuello de botella de cara al rendimiento de la web.

New Relic cuenta con un lenguaje de marcado propio, NRQL (New Relic Query Language), para ayudar a localizar entre la vorágine de datos la información que necesitamos. Su sintaxis es similar a otros lenguajes orientados a consultas, como SQL.

New Relic Query Language (NRQL) example
New Relic Query Language (NRQL) example

Aunque el NRQL puede ayudarnos a configurar una gráfica concreta, para información más básica ni siquiera es necesario, ya que la propia interfaz nos ayuda a aplicar filtros para llegar a los datos que queremos.

Otra función interesante que nos aporta New Relic es el reporte de errores. Con ella podremos localizar errores tanto de servidor (PHP, en caso de Drupal) como de cliente (JS). Esto es extremadamente útil para el refinamiento de estos errores, ya que ayuda a saber el contexto del error (cuándo ocurrió y haciendo qué petición).

Fuentes