New Relic APM es una potente herramienta que analiza el funcionamiento interno de un sitio web de WordPress para localizar plugins, archivos de plantillas de temas, consultas a la base de datos, llamadas externas o errores de programación que provocan problemas de rendimiento en tus sitios web.

En Kinsta, nuestros clientes pueden añadir su propia licencia de New Relic para disfrutar de la potente funcionalidad de esta herramienta.

Si tu proveedor de alojamiento no ofrece la integración de New Relic, puedes configurarla tú mismo si tu sitio está alojado en un entorno privado autogestionado.

Sin embargo, lograr ejecutar a New Relic es sólo el comienzo. Si nunca ha utilizado New Relic APM (y tal vez incluso si la ha utilizado), puede que tenga que luchar para sacar el máximo provecho de esta poderosa herramienta. Si tu proveedor de hosting no ofrece integración New Relic, puedes configurarlo tu mismo si tu sitio está alojado en un entorno privado autogestionado.

¿Listo para ser nerdy? ¡Vamos a por ello!

Una Descripción Rápida de New Relic APM

New Relic APM
New Relic APM

Entonces, ¿qué es New Relic APM? Para nuestros propósitos, la definición sirve:

New Relic APM es una aplicación web que proporciona información detallada sobre el rendimiento de su sitio WordPress.

Se instala New Relic añadiendo una extensión de PHP. Esta extensión escucha a cada solicitud procesada por PHP y a continuación, envía dicha información al dashboard de New Relic. New Relic luego organiza la información en una serie de cuadros y gráficos que puede utilizar para diagnosticar el problema de rendimiento del sitio web. Es importante tener en cuenta que New Relic no es soportado en HHVM.

Hagamos un breve recorrido a través de las visualizaciones de datos primarios de New Relic.

Descripción General

Resumen de New Relic APM
Resumen de New Relic APM

En la introducción se ofrece una instantánea rápida del rendimiento general de su sitio web. Usted no diagnosticará problemas específicos desde esta pantalla, pero la compilación práctica mostrando cómo PHP, MySQL y las llamadas externas están trabajando juntos pueden orientarle en la dirección correcta.

Obtenga más información acerca de la página de resumen de APM.

Transacciones

Pestaña de Transacciones de New Relic
Pestaña de Transacciones de New Relic

La pestaña de Transacciones es la pestaña más útil en New Relic.

Aprende a amar la pestaña Transacciones y podrá desglosar transacciones lentas para identificar llamadas a la base de datos de recursos externos, los cuellos de botella en el código ralentizando su sitio. De particular interés dentro de las transacciones es ver la lista de transacciones lentas. Para ver la lista, desplácese hasta la parte inferior de la pestaña Transacciones y mire en la parte inferior derecha de la página.

New Relic rastros de transacción
New Relic rastros de transacción

Aquí encontrará una lista de las transacciones más lentas capturadas por New Relic. No vamos a gastar mas tiempo en esta sección ahora, pero un poco más tarde explicaremos cómo utilizar esta sección para diagnosticar los males del sitio web.

Aprenda más acerca de la página de transacciones New Relic APM.

Hooks de WordPress

Hooks de WordPress
Hooks de WordPress

La pestaña de hooks de WordPress proporciona una visualización del tiempo consumido por todas las funciones de PHP desencadenadas vía la acción de hooks de WordPress. Esta información puede ser útil para desarrolladores experimentados que pueden utilizar la información para trabajar hacia atrás a partir de un hook sobrecargado para identificar las funciones que son disparadas por el mismo.

Plugins y Temas de WordPress

Plugins y temas de WordPress
Plugins y temas de WordPress

La pestaña de temas y plugins de WordPress muestra cuánto tiempo de procesamiento PHP están consumiendo los plugins y el tema activo. Si un único plugin o tema de su sitio está consumiendo una cantidad de tiempo dramáticamente gigantesca, esta página puede ayudarle a detectar rápidamente el plugin o tema que causa el problema.

Hay que tener cuidado: La pestaña de plugins y temas de WordPress en New Relic es la más fácil de uso indebido.

Al investigar un problema de rendimiento de sitio web, puede ser tentador predeterminar a verificar esta ficha primero y simplemente desactivar el plugin que más tiempo consuma. Sin embargo, hacer esto es ignorar la valiosa información que se encuentra en otras partes de New Relic. Es parecido a tratar los síntomas en lugar de excavar y encontrar la causa raíz.

Los plugins se pueden ejecutar lentamente debido a un problema de mala configuración, como un plugin de gestión de membresía ejecutándose lentamente debido al uso de un número de puerto SMTP incorrecto. O un plugin puede no haberse desinstalado correctamente. Este es el tipo de información que usted probablemente podría obtener al enfrentar con una transacción lenta dentro de la pestaña transacciones, y nunca podrá solucionarlo simplemente desactivando el plugin más lento según fue informado por New Relic.

Así que póngase cómodo con esta pestaña, pero no a la exclusión del resto de la información proporcionada por New Relic.

Bases de Datos

Visión General de New Relic MySQL
Visión General de New Relic MySQL

La ficha bases de datos permite identificar las tablas de la base de datos y los tipos de consultas que consumen la mayor parte del tiempo. New Relic ata esta información de vuelta a las transacciones haciendo esas consultas. Puede utilizar esta información para identificar las tablas de base de datos que pueden requerir optimización y los archivos de plantilla que son gigantescos colocando una carga en la base de datos.

Servicios Externos

New Relic servicios externos
New Relic servicios externos

La mayoría de los sitios web WordPress dependen de una serie de servicios externos:

  • Plugin, tema y actualizaciones básicas se envían de los desarrolladores de wordpress.org así como de plugin y temas.
  • Muchos plugins se integran con APIs de terceros, tales como el plugin de optimización de imagen Smush de WPMU DEV (smushpro.wpmudev.org de la captura de pantalla anterior).
  • Los plugins de Chat son generalmente potenciados por servicios externos.
  • Muchos sitios están integrados con plataformas de medios sociales para una óptima presentación y rendimiento cuando el contenido se comparte en las redes.

Cuando cualquiera de estos servicios externos deja de responder en forma oportuna puede traer todo su sitio web a un alto.

La pestaña de servicios externos le permite ver rápidamente qué servicios externos están consumiendo el mayor tiempo. Después, puede utilizar esa información para determinar si se trata de una cuestión de velocidad (el servicio responde lentamente) o la cantidad (hay demasiadas llamadas a la fuente externa) y trabajar para resolver el problema.

Analíticas de Error

Analíticas de error de New Relic
Analíticas de error de New Relic

La pestaña de analíticas de error informa de los errores de PHP encontrados mientras carga su sitio WordPress. Los errores se agrupan en clases, de modo que usted puede ver rápidamente cómo muchos tipos diferentes de errores se han generado. Los errores también están vinculados a las transacciones reales que habían generado los errores. Si selecciona un error específico también puede ver un seguimiento completo de la pila para la transacción que generó el error.

Piense en analíticas de error como un log de error PHP. Puede ser inestimable al intentar localizar los archivos generando errores de PHP y las transacciones en donde esos errores se produzcan.

Depurar Páginas de Carga Lenta

El problema más común por el que nuestro equipo utiliza New Relic para depurar es el caso de una página específica o proceso que está tomando demasiado tiempo en cargar. Cuando esto sucede, la pestaña Transacciones en New Relic APM es casi seguramente el primer lugar a dirigirse.

El proceso que deberá seguir para diagnosticar una página de carga lenta es bastante sencillo:

  • Duplique la transacción lenta.
  • Busque la transacción en la lista de transacciones lentas en New Relic.
  • Revise el resumen de la transacción y rastree detalles para determinar la causa del rendimiento lento.

Veamos un ejemplo de esto y cómo New Relic puede ser utilizado para diagnosticar el problema.

Paso 1: Duplicar la Transacción

Veamos un ejemplo. En este ejemplo, nuestro cliente está viendo la lentitud al cargar cada vez que una publicación de blog es cargada. Todas las otras páginas se cargan normalmente, pero las publicaciones individuales tardan varios segundos en cargar.

Así, el primer paso es duplicar el problema. En este caso, eso significa visitar una publicación de blog única unas cuantas veces para asegurar que New Relic capture la fecha necesaria.

Nota: Si su sitio utiliza la cache de la página, que está integrada en nuestra plataforma aquí en Kinsta, tendrá que borrar la cache entre la carga de cada página. De lo contrario, acabará cargando la página desde la cache en lugar de generar la página de WordPress.

Paso 2: Encuentre la Transacción Lenta

Una vez que haya duplicado la transacción lenta en un par de ocasiones, vaya a New Relic y seleccione la pestaña Transacciones. Después, desplácese hacia abajo hasta que vea la lista de transacciones lentas en la parte inferior derecha del panel de control New Relic.

Transacciones lentas en New Relic
Transacciones lentas en New Relic

Haga clic en la transacción que se está depurando para ver detalles.

Paso 3: Revise el Resumen de la Transacción y Rastree Detalles

Una vez que seleccione la transacción, un resumen de la transacción será mostrado.

Resumen de la transacción lenta
Resumen de la transacción lenta

El resumen le permite ver una instantánea descripción general de los componentes que contribuyeron al tiempo de procesamiento de la transacción. En el caso de nuestro ejemplo de transacción, una llamada a un recurso externo, www.googleapis.com, es responsable de 5,000 milisegundos de una transacción, que tardó un total de 5,350 milisegundos para completarse.

Aunque esta información es útil, la pestaña de detalles del rastreo proporcionará los detalles que necesitamos para ver exactamente qué está sucediendo.

Detalles del rastreo de transacción lenta
Detalles del rastreo de transacción lenta

La pestaña de detalles de rastreo proporciona una cascada jerárquica paso a paso que muestra la función, consultas de bases de datos y las llamadas externas que PHP hace conforme genera la página.

En el caso de nuestra transacción de ejemplo, los detalles de rastreo revelan que una llamada a una URL de Google Analytics es la que está retrasando el proceso. Si queremos trabajar hacia atrás a partir de esa solicitud, se inició una función de PHP llamada gapp_get_post_pageviews. Una búsqueda rápida en Google para dicha transacción revela que es parte del plugin Google Analytics Post Pageviews. Este plugin es instalado en el sitio y se utiliza para agregar un contador de vistas a una adhesiva barra de encabezado.

New Relic nos acaba de permitir aislar el contador de vistas en la barra de encabezado adhesiva como el componente principal que contribuye a la lentitud de carga de una publicación de blog único en el sitio web en cuestión. Ahora el propietario de este sitio sabe exactamente a qué componente apuntar en intentar resolver la lentitud de carga de cada blog.

Arreglar la Lentitud General

El segundo tipo más común de problema que podemos solucionar para nuestros clientes es una queja de que todo el sitio se está cargando lentamente. Cuando cada transacción lleva mucho tiempo de carga, una de las tres cosas que probablemente está sucediendo:

  • El sitio está privado de los recursos del servidor.
  • Un plugin o el tema activo está causando problemas.
  • La base de datos del sitio está luchando para mantener el ritmo de las consultas.

En Kinsta, los problemas de recursos del servidor son escasos, ya que nuestras máquinas virtuales escalables son capaces de gestionar cantidades variables de carga.Sin embargo, si el sitio se ve privado de CPU o de memoria RAM, esto puede causar lentitud general que New Relic no pegará en ningún recurso individual. Por lo tanto, si usted ve la lentitud general y New Relic indica que cada parte del sitio está contribuyendo, verifique la carga en su servidor para ver si una escasez de los recursos del servidor es la culpable.

Si el sitio tiene acceso a muchos recursos del servidor, entonces el siguiente lugar que usted deseará comprobar para diagnosticar la lentitud general incluyen la pestaña de plugins y temas de WordPress, la pestaña de servicios externos y la pestaña de bases de datos.

Aquí están algunos ejemplos de lentitud que pueden ser diagnosticados con cada una de estas pestañas.

Lentitud General Causada por un Plugin

Cuando un plugin está causando lentitud en general los síntomas variarán en función de la actividad que el plugin está realizando. Sin embargo, en muchos casos, encontrará que un plugin lento afectará a todas las páginas de un sitio WordPress. En el caso del sitio cuyos datos puede ver en la siguiente imagen, la lentitud general fue observada en cada página front-end del sitio.

Esto es lo que New Relic tenía que decir sobre el rendimiento de los plugins en el sitio.

Plugins de WordPress
Plugins de WordPress

Inmediatamente se puede ver que el plugin adinjector está consumiendo más de 15 veces la cantidad de tiempo que el siguiente plugin más lento.

Cuando vea este tipo de datos, puede ser tentador descartar inmediatamente el plugin como mal codificado o de alguna manera ineficaz. Mientras esto ocurre a veces, no siempre es el caso. La mala configuración de plugin, lentitud de base de datos o recursos externos que son lentos para responder pueden causar que un plugin consuma una gran cantidad de tiempo.

Así que cuando usted vea un plugin que responda lentamente, es una buena idea comprobar varias otras pantallas en New Relic para encontrar información adicional. Las transacciones, bases de datos y los recursos externos todos deben comprobarse antes de decidir que la desactivación del plugin es la mejor o la única forma de avanzar.

Lentitud General Causada por Servicios Externos

Si un sitio se basa en una llamada a un servicio externo para generar páginas vistas y ese servicio deja de responder o tarda mucho tiempo en responder, el resultado puede ser un sitio web de WordPress que detiene cargarse completamente.

5 servicios externos principales
5 servicios externos principales

La imagen de arriba es del mismo sitio que produjo la captura de pantalla de plugins lentos anterior. Como puede ver, hay un único servicio externo que aporta una cantidad gigantesca para el tiempo de espera total para servicios externos.

Este caso demuestra por qué es necesario ver información en combinación antes de llegar a una conclusión. El servicio siendo llamado en este caso es el desarrollador del plugin identificado en el paso anterior.

Esta información añade algunos matices a la situación. No es el código del plugin el que es el problema, por así decirlo. En lugar de ello, parece que el plugin hace un montón de llamadas al sitio web del desarrollador y estas llamadas, consideradas en combinación, están consumiendo una gran cantidad de tiempo de procesamiento.

Si queremos llevar las cosas un paso más allá y mirar una transacción lenta para este sitio, podemos ver que esta llamada externa parece estar verificando el estado de la licencia del plugin en cuestión, lo que sugiere que la licencia para este plugin puede haber caducado.

En cualquier caso, ahora somos capaces de asesorar al propietario de este sitio que el plugin adinjector está causando el rendimiento lento, y el rendimiento es lento debido a las llamadas repetidas al sitio web del desarrollador para verificar el estado de la licencia del plugin.

Lentitud General Causada por una Base de Datos Abrumada

Una base de datos mal optimizada puede causar lentitud general en un sitio WordPress.  Una optimización que siempre recomendamos es convertir la base de datos de MyISAM a InnoDB. En New Relic, esta lentitud relacionada con la base de datos lo más probable es que aparezca en dos lugares:

  • En primer lugar, verá una cantidad de actividad MySQL gigantesca en la visión general.
  • En segundo lugar, verá una o más tablas de la base de datos consumiendo una gran cantidad de tiempo en la pestaña de Bases de datos.

Comenzando por la pantalla de descripción general, un sitio con una base de datos de lucha podría tener este aspecto:

Tiempo de transacciones Web
Tiempo de transacciones Web

Para obtener un mejor manejo en la tabla o consulta de base de datos que está causando el problema, diríjase a la pestaña de Bases de Datos.

Visión General MySQL
Visión General MySQL

La pestaña de bases de datos señalará la tabla y el tipo de consulta consumiendo la mayor parte del tiempo. Si selecciona una de las entradas en la lista puede ver más detalles, incluidas algunas consultas de ejemplo.

Consulta lenta - tabla wp_options
Consulta lenta – tabla wp_options

En este caso, los datos apuntan un dedo a cargar automáticamente los datos en la tabla wp_options. Bastante seguro, un rápido análisis de la tabla wp_options confirma que casi 250 MB de datos son cargados automáticamente a partir de esta tabla, haciendo a este sitio un candidato obvio para el mantenimiento y optimización de la base de datos. Eche un vistazo a nuestro post más en profundidad sobre cómo optimizar la tabla wp_options y datos de autcarga.

¡Manos a la Obra!

Una vez que sepa cómo usarlo, New Relic puede ser una valiosa herramienta para la identificación de los cuellos de botella en el rendimiento de su sitio web WordPress. Para sacar el máximo provecho de New Relic es crítico que usted conozca WordPress, comprenda la información que cada ficha está reportando, y vea cómo toda la información está interrelacionada.

¿Tiene algún consejo de New Relic? Nos encantaría escucharlo a continuación en los comentarios.

Jon Penland

Jon is the Chief Operating Officer at Kinsta and is involved with Kinsta's sales, customer service, and technical support teams on a daily basis. Jon's a family man. So when he isn't feverishly tapping the keys of his laptop he's usually helping one of his kids fix a bike or setting up Netflix for an impatient preschooler.