Nueva herramienta simplifica el análisis de rendimiento de microservicios
Una herramienta de análisis visual mejora el análisis del rendimiento de microservicios.
― 9 minilectura
Tabla de contenidos
- Los Desafíos del Rendimiento de Microservicios
- Presentando la Herramienta de Análisis Visual
- Componentes Visuales Explicados
- La Visualización del Árbol
- El Componente del Histograma
- Interacción del Usuario con la Herramienta
- Análisis Hacia Adelante
- Análisis Hacia Atrás
- Arquitectura e Implementación de la Herramienta
- Evaluando la Herramienta
- Generación de Conjuntos de Datos
- Análisis Manual
- Resultados de la Evaluación
- Conclusión
- Fuente original
- Enlaces de referencia
Analizar el rendimiento de los Microservicios es un trabajo complicado. Los microservicios son servicios pequeños e independientes que trabajan juntos, llamándose entre sí para completar una solicitud. Cada vez que una solicitud pasa por el sistema, puede activar varias llamadas a otros servicios ubicados en diferentes servidores o contenedores. Estas interacciones pueden hacer que entender el rendimiento sea difícil.
Las herramientas actuales para rastrear y analizar microservicios principalmente utilizan visualizaciones llamadas "swimlanes". Estas muestran solicitudes individuales moviéndose a través del sistema, ayudando a entender su rendimiento. Sin embargo, se quedan cortas al intentar captar tendencias de rendimiento general en el sistema con muchas solicitudes.
Para abordar este problema, presentamos una nueva herramienta de análisis visual que ayuda a analizar el rendimiento de múltiples solicitudes al mismo tiempo. La herramienta ofrece una variedad de visualizaciones interactivas que destacan características comunes de las solicitudes y cómo se relacionan con el rendimiento general.
Los Desafíos del Rendimiento de Microservicios
Los microservicios han cambiado la forma en que se desarrolla y despliega el software. Cada servicio opera de manera independiente, con equipos separados gestionando su ciclo de vida. Esta configuración permite actualizaciones más rápidas, lo cual es una ventaja vital en el mercado hoy en día. Sin embargo, también introduce desafíos para mantener un rendimiento consistente.
Un problema importante es la complejidad de estos sistemas. Métodos de aseguramiento de rendimiento, como pruebas antes del lanzamiento, a menudo se vuelven difíciles de implementar debido a la falta de tiempo y recursos. La presión por entregar actualizaciones rápidamente puede llevar a los equipos a omitir controles esenciales de rendimiento.
Además, el rendimiento de los microservicios puede variar según los patrones de uso en tiempo real, lo que dificulta prever problemas de rendimiento antes de que ocurran. Cambios frecuentes en el sistema y cargas de trabajo impredecibles pueden llevar a regresiones de rendimiento que sorprenden a los equipos.
Debido a estos desafíos, el concepto de observabilidad ha ganado interés. La observabilidad permite a los equipos analizar registros, trazas y métricas para obtener una visión completa del rendimiento del sistema. Las herramientas de rastreo distribuido se utilizan ampliamente hoy en día para mejorar la observabilidad en sistemas de microservicios. Estas herramientas rastrean solicitudes a medida que se mueven a través del sistema, proporcionando asistencia visual para analizar el rendimiento.
Sin embargo, muchas herramientas actuales de rastreo distribuido han recibido críticas por no ser efectivas en analizar el rendimiento general. A menudo requieren que los usuarios cambien entre diferentes herramientas para varios análisis. Este cambio puede volverse engorroso y consumir tiempo, dificultando obtener una comprensión rápida de los patrones de rendimiento del sistema.
Presentando la Herramienta de Análisis Visual
Nuestra nueva herramienta se centra en simplificar el análisis de rendimiento para sistemas de microservicios. Se basa en ideas anteriores y ofrece una forma fácil de ver cómo diferentes características de solicitud se relacionan con el rendimiento general.
La herramienta incluye dos componentes visuales principales: un árbol y un histograma. El árbol muestra cómo fluyen las solicitudes a través de las diversas llamadas a procedimientos remotos (RPC), mientras que el histograma presenta la distribución de los tiempos de respuesta para las solicitudes.
Los usuarios pueden interactuar con estos componentes para descubrir las características importantes de caminos de ejecución específicos y cómo impactan en el rendimiento.
Componentes Visuales Explicados
Visualización del Árbol
LaEl árbol está diseñado para ofrecer una vista detallada de los flujos de trabajo involucrados en las solicitudes. Cada nodo en el árbol representa una llamada RPC, con bordes que muestran cómo se relacionan las solicitudes entre sí.
Por ejemplo, si una solicitud involucra una serie de RPCS, se mostrará en el árbol según las conexiones entre esas llamadas. Esta estructura de árbol permite una vista agregada de múltiples solicitudes, facilitando ver qué caminos se utilizan con frecuencia y cómo se relacionan con el rendimiento.
Para resaltar los RPCs que valen la pena investigar, la herramienta utiliza códigos de color para mostrar la variabilidad de los tiempos de ejecución y la frecuencia de las llamadas. Los caminos con mayor variabilidad pueden indicar un mayor impacto en el tiempo de respuesta general.
El Componente del Histograma
El histograma muestra un gráfico estándar de los tiempos de respuesta de extremo a extremo para ayudar a los usuarios a ver la imagen general del rendimiento. Permite la identificación visual de patrones de rendimiento, como modos que indican comportamientos recurrentes.
Los usuarios pueden seleccionar rangos en el histograma para centrarse en tiempos de respuesta específicos. Esta selección actualizará el componente del árbol para mostrar cómo se relacionan los caminos de ejecución RPC con esos tiempos seleccionados, destacando cualquier discrepancia en los tiempos de respuesta según los rangos seleccionados.
Interacción del Usuario con la Herramienta
La herramienta admite dos tipos de análisis: análisis hacia adelante y análisis hacia atrás.
Análisis Hacia Adelante
En el análisis hacia adelante, los usuarios comienzan con la visualización del árbol. Al examinar los nodos, pueden identificar caminos RPC que muestran una variabilidad significativa en sus tiempos de ejecución o frecuencia de invocación. Luego, los usuarios pueden hacer clic en estos nodos para explorar cómo estos atributos se relacionan con los tiempos de respuesta generales.
Cuando un usuario selecciona un camino RPC, la herramienta genera un gráfico de barras que muestra el rango de tiempos de ejecución para ese camino. Esta visualización permite a los usuarios ver cómo los comportamientos de tiempo de ejecución específicos se correlacionan con el rendimiento de extremo a extremo, ayudando a descubrir posibles problemas de rendimiento.
Análisis Hacia Atrás
En el análisis hacia atrás, los usuarios pueden comenzar desde el histograma. Eligen un rango específico de tiempos de respuesta de extremo a extremo que quieren analizar, lo que actualiza el árbol para mostrar discrepancias en el tiempo de ejecución y frecuencia. Los nodos que muestran diferencias significativas en estos atributos en comparación con otros serán destacados.
Hacer clic en estos nodos destacados mostrará histogramas que comparan los tiempos de ejecución para las solicitudes seleccionadas contra otras solicitudes. Este enfoque facilita ver cómo diferentes comportamientos de ejecución están vinculados a tiempos de respuesta específicos.
Arquitectura e Implementación de la Herramienta
La arquitectura subyacente de la herramienta involucra varios componentes.
- Recopilador de Trazas: Reúne trazas del sistema de microservicios y las almacena en un Almacenamiento de Trazas.
- Paso de Preprocesamiento: Este componente mejora la eficiencia y organiza los datos recopilados, preparándolos para análisis en la herramienta.
- Aplicación del Tablero: El tablero se conecta a los datos organizados y genera visualizaciones para los usuarios.
La herramienta admite datos formateados de herramientas de rastreo comunes y está construida usando tecnologías web para renderizar visualizaciones.
Evaluando la Herramienta
Para entender cuán efectiva es la herramienta, realizamos una evaluación exhaustiva usando conjuntos de datos derivados de un sistema complejo de microservicios. Nuestro objetivo era ver si la herramienta podía revelar efectivamente las relaciones entre los atributos de RPC y los tiempos de respuesta generales.
Generación de Conjuntos de Datos
Los conjuntos de datos provienen de un conocido sistema de microservicios de código abierto que proporciona un servicio de reservas. Generamos conjuntos de datos distintos, cada uno imitando escenarios que produjeron diferentes características de rendimiento.
Usamos dos enfoques principales para crear los conjuntos de datos:
- Inyectando Problemas de Rendimiento: Al introducir retrasos artificiales en RPCs específicos, pudimos observar cómo estos cambios impactaban los tiempos de respuesta.
- Cambiando Cargas de Trabajo: Variamos las cargas para simular diferentes tipos de interacciones de usuario, lo que llevó a fluctuaciones de rendimiento.
Análisis Manual
Dos autores analizaron manualmente los conjuntos de datos usando la herramienta. Se centraron en qué tan bien ayudó a entender la relación entre los atributos de solicitud y los tiempos de respuesta. Ambos autores tenían conocimiento previo del sistema de microservicios, pero no estaban al tanto de los cambios específicos realizados en los conjuntos de datos.
En general, la herramienta facilitó el análisis de solicitudes de manera sencilla en la mayoría de los casos. Destacó efectivamente las relaciones entre los tiempos de ejecución y los tiempos de respuesta en varios conjuntos de datos.
Resultados de la Evaluación
A través de nuestra evaluación, encontramos que la herramienta proporcionó valiosos conocimientos sobre el rendimiento de los microservicios. En la mayoría de los conjuntos de datos probados, fue fácil identificar RPCs afectados y sus correlaciones con los tiempos de respuesta generales.
Sin embargo, en un par de conjuntos de datos, el análisis resultó más desafiante, requiriendo más interacción con la herramienta.
Conclusión
La herramienta de análisis visual presentada ofrece una solución prometedora para analizar el rendimiento de los microservicios. Simplifica el proceso de identificar y entender las relaciones entre los atributos de solicitud y los tiempos de respuesta generales, al tiempo que admite varios tipos de análisis.
Las futuras mejoras se centrarán en aumentar la eficiencia de la herramienta y validarla con datos del mundo real de sistemas de microservicios más grandes. El objetivo es hacer de esta herramienta una opción preferida para los equipos que buscan mejorar sus capacidades de monitoreo y análisis de rendimiento de microservicios.
Título: VAMP: Visual Analytics for Microservices Performance
Resumen: Analysis of microservices' performance is a considerably challenging task due to the multifaceted nature of these systems. Each request to a microservices system might raise several Remote Procedure Calls (RPCs) to services deployed on different servers and/or containers. Existing distributed tracing tools leverage swimlane visualizations as the primary means to support performance analysis of microservices. These visualizations are particularly effective when it is needed to investigate individual end-to-end requests' performance behaviors. Still, they are substantially limited when more complex analyses are required, as when understanding the system-wide performance trends is needed. To overcome this limitation, we introduce vamp, an innovative visual analytics tool that enables, at once, the performance analysis of multiple end-to-end requests of a microservices system. Vamp was built around the idea that having a wide set of interactive visualizations facilitates the analyses of the recurrent characteristics of requests and their relation w.r.t. the end-to-end performance behavior. Through an evaluation of 33 datasets from an established open-source microservices system, we demonstrate how vamp aids in identifying RPC execution time deviations with significant impact on end-to-end performance. Additionally, we show that vamp can support in pinpointing meaningful structural patterns in end-to-end requests and their relationship with microservice performance behaviors.
Autores: Luca Traini, Jessica Leone, Giovanni Stilo, Antinisca Di Marco
Última actualización: 2024-04-22 00:00:00
Idioma: English
Fuente URL: https://arxiv.org/abs/2404.14273
Fuente PDF: https://arxiv.org/pdf/2404.14273
Licencia: https://creativecommons.org/licenses/by/4.0/
Cambios: Este resumen se ha elaborado con la ayuda de AI y puede contener imprecisiones. Para obtener información precisa, consulte los documentos originales enlazados aquí.
Gracias a arxiv por el uso de su interoperabilidad de acceso abierto.