Por qué Stack Trace APM no es suficiente para la supervisión completa de aplicaciones web

Probablemente sea cierto decir que si le preguntas a un usuario promedio qué hace una gran aplicación web, probablemente dirían «velocidad». Pero la velocidad es probablemente el aspecto menos importante de un resumen extenso de los elementos. Factores como el desarrollo de aplicaciones y la representación en el programa son probablemente más altos en esa lista. ¿Y qué constituye una aplicación de gran rendimiento? Y cuando algo sale mal, ¿cómo lo sabes? Estas son algunas de las preguntas que la supervisión de seguimiento de pila y la supervisión del rendimiento de aplicaciones web sintéticas se han establecido para responder. Ambos tienen sus ventajas e inconvenientes, pero este artículo se establecerá para explicar lo que hace que una mejor herramienta para asegurarse de que la experiencia del usuario se pone a la vanguardia de la determinación de lo que hace que una gran aplicación web.

 

¿Qué es un seguimiento de pila?

Un seguimiento de pila es un instrumento de investigación útil. Exhibe la «pila de llamadas», que son las pilas de funcionalidades /metodologías que se llamaron al estado actual de ejecución del programa, en el momento en que un caso especial desconocido fue anulado por el compilador (o el momento en que el rastro de pila se produjo físicamente).

Esto es excepcionalmente valioso ya que no sólo le da donde ocurrió el error, también puede darle una idea de cómo el programa terminó en ese lugar del programa. Su objetivo es proporcionar qué métodos se han llamado hasta el punto en que el programa se bloqueó y da un resumen de las llamadas de método que la aplicación estaba experimentando. Nos ayuda a dar sentido a cómo algo resultó de la manera en que lo hizo, y muestra una oportunidad para rectificar el error. Sin este seguimiento, estas acciones pasarían desatados y cualquier error se volvería silencioso. El servicio se convierte posteriormente en lo que se conoce prominentemente como una «caja negra».

 

¿Qué es una excepción?

Una excepción es lo que utiliza la condición de tiempo de ejecución para informarnos de que se ha encontrado un error. Los modelos conocidos son NullPointerException, IndexOutOfBoundsException o ArithmeticException. Cada uno de estos son causados cuando se intenta lograr algo que es literalmente inimaginable (por el ordenador que es). Por ejemplo, un NullPointerException se lanzará una vez que intente hacer referencia a un InvalidArticle

 

Exception

 

La imagen anterior representa un seguimiento de pila. Comenzamos hacia el comienzo del resumen de «en …«, podemos saber dónde ocurrió el error. Lo que estamos intentando descubrir es el primer encuentro de una llamada al método, que podría ser una parte de nuestra aplicación o parte de los módulos se utilizan en la aplicación. Para esta situación, el infractor es «en com.example.myproject.Book.getTitle(Book.java:16).» En consecuencia, podemos abrir el Book.java y eche un vistazo a la línea 16. Este es un caso básico de lo que sucede cuando volvemos a una pila.

Del mismo modo, también puede ser provocado por una cadena de exenciones como la siguiente:

 

Exemptions

 

El culpable en este caso es donde comienza en «Causado por: java.lang. NullPointerException en com.example.myproject. Reserve.getId(Book.java:22) en com.example.myproject. Autor.getBookIds(Autor.java:36)«

Lo que es distintivo de este es el«causado por» cláusula. De vez en cuando las exenciones tendrán varias áreas«Causado por». En algunos casos, es necesario buscar el «controlador subyacente», que puede ser uno de estos segmentos dentro de la pista de retroceso.

 

Cómo el código de terceros influye en el retroceso de la pila

Las aplicaciones actuales suelen tener numerosas capas de llamada de función activadas de forma cruzada (es decir, una función que llama a otros o en algunos casos misma). Para hacer que las cosas sean cada vez más confusas, regularmente tenemos numerosas capas de código de programación que se agregan a la pila de llamadas. El código de nuestro tiempo de ejecución o las bibliotecas importadas pueden reducir la pureza de nuestra pila de llamadas, lo que dificulta examinar o desenredar al corregir excepciones. A estas alturas podrías estar pensando: «¿Qué hace este bloque de salida para ayudarme a identificar errores?»

 

Cómo las pilas de llamadas y los seguimientos ayudan en la ejecución

Hasta este punto, hemos hablado sobre todo de percances de código, no de la ejecución. En el momento en que aparece un error, necesitamos aislar las condiciones que abarcan su apariencia y reproducirlas para reproducir el error. Y en el caso del rendimiento, necesitamos un enfoque para lograr las técnicas mencionadas anteriormente también. Tenemos que simular las condiciones actuales del marco, reconsiderar nuestras circunstancias actuales, realizar los cambios necesarios y reproducir las vistas previas de las condiciones actuales del marco para analizar los resultados.

El ajuste de la ejecución comienza descubriendo, estimando y actualizando para mitigar primero los mayores cuellos de botella. Como productores de cualquier módulo de ajuste de rendimiento, debemos conocer este procedimiento de medición, actualización y optimización demasiado bien. Este es el momento en que las pilas de llamadas pueden ayudarnos a examinar este proceso. Para obtener la información recopilada, esencialmente utilizamos la elaboración de perfiles generales como nuestra práctica. En el momento en que ocurre el perfil, toma representaciones ocasionales de la condición actual de la pila de llamadas. En el momento en que tenemos nuestra instantánea de información, estamos listos para ver los bloques de código que aparecen una y otra vez, y de esta manera un retroceso puede plantear una posibilidad de mejoras de rendimiento. Pero para estar completamente seguros, tendremos que entender nuestro procedimiento para tomar estas mediciones del marco del sistema. Sin embargo, hay un problema aquí. El seguimiento de pila tiene sus propias limitaciones. Una aplicación de vanguardia implica numerosos cálculos y, por lo tanto, muchas pilas de llamadas. Entonces, ¿cómo vamos a filtrar y comprender las montañas de información?

 

Limitaciones de seguimiento de pila

De vez en cuando no puedes asegurarte de que no recibas un error. Por ejemplo, en la posibilidad de que esté utilizando una aplicación web controlada en su programa, no puede evitar que el PC pierda su asociación web (por ejemplo, no puede evitar que el cliente desengancha la red del sistema del PC). Lo que sucede ahora es que la biblioteca del sistema nos trata con una exención. En un mundo perfecto, este es el punto en el que los ingenieros «capturan» el caso especial y lo gestionan. Esto implica que en el modelo con la asociación de red, usted debe intentar revivir la asociación o informar al cliente. El ingeniero debe recordar al obtener la exención, que capturaron el caso que esperaban, por lo que no deben utilizar proclamas de amplio alcance como«Excepción e»que obtendría todas las exenciones. Esto resulta ser un factor fundamental en el retroceso de la pila. No capta los casos especiales que tuvieron que ser tratados de cierta manera, pero fueron atendidos de una manera totalmente diferente.

Las herramientas de rastreo de pilas no son la más mínima infalible en términos de aplicaciones de supervisión. Los contenidos son difíciles de compilar, difíciles de comprender y descomponer, y propensos a errores exhaustivos.

 

Monitoreo sintético

A diferencia de las herramientas de seguimiento de pila, la supervisión sintética funciona mediante la creación de intercambios/transacciones de usuarios simulados en la aplicación que suplanta cómo un usuario o cliente medio puede recorrer la aplicación. Se puede aplicar dentro del firewall, dentro del espacio del servidor para garantizar que todas las máquinas se ejecutan adecuadamente, o fuera del firewall para proporcionar datos sobre accesibilidad y ejecución desde un punto de vista mundial. Estas llamadas de servidor y contenidos de prueba se convierten en «instrumentos» de monitoreo al ejecutarse en frecuencias predefinidas, como cada 5 minutos o cada 3 horas.

Este tipo de monitoreo puede ser fundamental para su negocio, ya que le permite distinguir los problemas y la encuesta si su sitio o aplicaciones necesitan ajustarse antes de que los clientes finales se vean realmente afectados. Dado que este tipo de comprobación no depende del tráfico web real, una aplicación web o página se puede supervisar en cualquier momento, desde cualquier lugar, y los agentes de supervisión se pueden configurar antes de que las aplicaciones entren en producción. Esta es la razón por la que muchos desarrolladores se inclinan hacia la supervisión sintética, ya que da visibilidad las 24 horas del día, los 7 días de la semana y proporciona el apalancamiento a la organización para corregir errores antes de que los clientes tropiecen con ella.

 

¿Necesita supervisión sintética?

La respuesta menos compleja a esta pregunta es que necesita ayuda para garantizar que su aplicación o sitio está listo para la acción. Pero en una nota mucho más técnica, la respuesta genuina a esta investigación va mucho más allá de esto. Un agente de supervisión de calidad no hace simplemente ping a su sitio para asegurarse de que está disponible. Las administraciones de calidad comprobarán los registros del marco de nombres de área, la velocidad de transferencia, la base de datos, así como la disponibilidad del sistema, la carga de CPU, el almacenamiento de unidades, los eventos, la RAM y otros factores básicos. Si bien el tiempo de actividad y el tiempo de reacción son cosas incuestionablemente importantes que cuantificar, la fiabilidad y la coherencia de su aplicación o página son además vitales y las mediciones y deben configurarse para detectar estas cosas.

Además, solo comprobar la accesibilidad y el tiempo de actividad de sus API y aplicaciones desde el firewall no es adecuado cuando desea proporcionar una experiencia de primer nivel. Los usuarios pueden acceder a sus aplicaciones desde cualquier lugar del mundo, desde diferentes dispositivos, navegadores y redes. La supervisión sintética le permite imitar estos procedimientos comerciales o intercambios de clientes, por ejemplo, iniciar sesión, buscar artículos, rellenar formularios/encuestas, agregar cosas a los carros de la compra, el proceso de cierre de sesión, etc., desde varias ubicaciones de todo el mundo, y revisar su rendimiento. A continuación, podrá analizar los detalles de ejecución entre ubicaciones geográficas y pasos en los intercambios y comenzar a definir sus planes de mejora.

 

Rastreo de pila y monitoreo sintético: Conclusión

La supervisión sintética adopta un enfoque proactivo externo para ayudar a detectar problemas antes que sus clientes. En el caso de que se utilicen los procedimientos correctos, la supervisión sintética puede proporcionarle el mismo punto de vista de los usuarios finales y los clientes, sin mencionar cómo están funcionando y si los clientes estarán satisfechos con la experiencia. Este no es el caso con el seguimiento de pila. Es sin duda un protocolo de análisis muy fiable y competente, pero sólo puede rastrear los pasos de un evento fallido de manera anterior. Esto nos lleva a una comprensión muy firme de que el rastreo de la pila, combinado con la supervisión sintética, puede ayudar a unir la pila completa y proporcionar una solución de supervisión de rendimiento potente. Pruebe la plataforma completa Dotcom-Monitor gratis durante 30 días.

 

Latest Web Performance Articles​

Las 25 mejores herramientas de supervisión de servidores

En este artículo, ofrecemos nuestras selecciones de expertos de las 25 mejores herramientas de monitoreo de servidores para ayudar a monitorear el tiempo de actividad de su sitio web y brindar a sus usuarios la mejor experiencia, comenzando con nuestra propia solución en Dotcom-Monitor. Descubra por qué la supervisión de servidores es una parte esencial de cualquier estrategia de supervisión.

Las 20 mejores herramientas de monitoreo sintético

El monitoreo sintético permite a los equipos monitorear y medir el rendimiento del sitio web y las aplicaciones web durante todo el día desde todos los puntos de vista imaginables, y recibir alertas antes de que los problemas comiencen a afectar a los usuarios reales. Aquí están nuestras mejores opciones para herramientas de monitoreo sintético, liderando con las nuestras en Dotcom-Monitor.

Start Dotcom-Monitor for free today​

No Credit Card Required