Red de conocimiento informático - Computadora portátil - Descripción general del sistema APM

Descripción general del sistema APM

APM (Gestión del rendimiento de aplicaciones)

¿Cuál es el concepto central? Cuando los nodos de servicio se llaman entre sí, se registra y se pasa una etiqueta a nivel de aplicación, que se puede utilizar para correlacionar las relaciones entre los nodos de servicio. Por ejemplo, si dos nodos utilizan HTTP como protocolo de solicitud, estas etiquetas se agregarán al encabezado HTTP. Por lo tanto, la forma en que se entregan estos marcadores depende del protocolo utilizado por el nodo; algunos protocolos son fáciles de incluir estos marcadores, pero algunos protocolos son difíciles o incluso imposibles, por lo que esto determina directamente la dificultad de implementar un sistema de seguimiento distribuido.

Todas las soluciones existentes requieren soporte de los siguientes módulos:

? Recopilación de datos: ¿Cómo recopilar datos con amplitud y eficiencia --> Agente

? procesamiento: organizar datos en un formato unificado y recopilar cadenas de llamadas --> Recopilador

Almacenamiento de datos: guardar indicadores calculados e información de enlaces resumida en tiempo real --> Almacenamiento

? pantalla: pantalla multifuncional de alto valor --> UI

Cuatro componentes del ecosistema Skywalking y Pinpoint

El método de implementación actual de SkyWalking utiliza directamente la tecnología javaagent para modificar el código de bytes. Enterrar puntos automáticamente; también hay codificación directa como cat para enterrar puntos manualmente. Aunque los métodos son diferentes, los problemas resueltos son los mismos.

El encadenamiento de llamadas APM es mucho más complejo que el monitoreo y registro ordinarios. Además de una gran cantidad de fuentes de generación de datos, también debería haber componentes comerciales correspondientes para respaldar la agregación y visualización de cadenas de llamadas. Los resultados mostrados parecen simples y claros, pero en realidad el proceso es muy complicado. La complejidad se refleja principalmente en la recopilación de datos de la cadena de llamadas.

En cuanto a la estructura de datos de seguimiento, la especificación OpenTracing (opentracing.io/) nació para resolver el problema de incompatibilidad API de diferentes sistemas de seguimiento distribuido. Es esencialmente un conjunto de definiciones de interfaz, y las implementaciones del lado del servidor de la cadena de llamadas convencionales son compatibles con esta especificación. OpenTracing tiene el potencial de dominar el mundo, integrando los conceptos de seguimiento, registro y métricas.

En la actualidad, la estandarización es la tendencia general (CNCF Jaeger, SpringCloud, Elastic APM), y los productos de las principales empresas nacionales también se están acercando activamente (Alibaba Eagle Eye, Tingyun, OpenApm).

En general, todo el sistema APM aplica tres categorías principales de datos (registros, métricas y seguimiento) a cuatro módulos principales (recopilación, procesamiento, almacenamiento y visualización) y aborda las cuatro dificultades principales ( Optimización continua de la heterogeneidad del programa, la diversidad de componentes, la integridad del enlace, el muestreo de tiempo)

Diferentes datos adoptan diferentes métodos de muestreo y la fuente de datos es demasiado grande. Demasiadas dependencias para mantener

https://openapm.io/landscape

Marco APM de bricolaje basado en su propia pila de tecnología

Introduzca kafaka en el marco:

Utilice HBase para almacenar datos en tiempo real

HDFS completamente abandonado hace 16 años. Presentamos la computación en streaming y el cambio al almacenamiento en columna HBASE.

SkyWalking es una herramienta de monitorización del rendimiento de aplicaciones para sistemas distribuidos, diseñada para microservicios, arquitecturas nativas de la nube y arquitecturas basadas en contenedores (Docker, K8S, Mesos).