Rastros Distribuidos en Telemetría: Análisis y Optimización
Clase 12 de 15 • Curso de Fundamentos de Observabilidad con New Relic
Contenido del curso
Clase 12 de 15 • Curso de Fundamentos de Observabilidad con New Relic
Contenido del curso
Brayan Estiben Rodallega Saavedra
Jonathan Barzola
Elena Hernández
Silvia Veronelli
Renzo Valentin
Miguel R Montilla
Ana Karina Serrano Romero
Leandro Espino Espino
uRieL Martinez Bautista
uRieL Martinez Bautista
Leiber Bertel
Juan Sifontez
Daniel Giovanny Ochoa Torres
Elisa Zamarron Muñoz
Luis Eduardo Payano Villar
Edwin Giovanny Nieto Baron
Gualberto Montiel
Emmanuel Rodríguez
¿Qué es MELT? ++M-etrics: es un valor agregado y calculado al observar muchos eventos diferentes durante un periodo de tiempo. E-vents: es una acción distintiva que ocurre en un momento especifico en el tiempo. L-ogs: Es división granular de un evento, es útil cuando quieres saber a detalle que es lo que paso dentro de un evento.++ ++T-races: nos permiten rastrear ciertos eventos, para poder visualizar como fueron hechos paso a paso.++
Gracias por el aporte, muy bueno! Y la complementación uf 10/10
Los traces nos ayudan a identificar cada paso en una transacción y facilita a encontrar las fallas de forma más granular.
Traces:
Rastros (distribute traces o rastros distribuidos como migajas que vamos dejando en nuestro sistema para poder rastrear un suceso y verlo desglosado dentro del evento)
Seguir pasos hacia atrás para ver donde se produjo un suceso que determinó un resultado particular. Sólo se guardan porque no se sabe cuando van a ser necesarios.
El evento nos da un dato de los que ocurrió durante el proceso de compra de un producto, pero no sabemos dónde está el problema, por ejemplo, de una demora en procesar el pago. Por ello se introduce los Traces con un ID como atributo.
Cada servicio pasa ese ID y esos metadatos, al guardarse como atributo, nos va a ayudar a enlazar las partes de los eventos sin importar que esté en distintos elementos de nuestro sistema. Es una forma de descomponer el evento y ver en qué sección del proceso de la venta se produjo la demora.
Los traces o rastros nos ayudan a generar Observabilidad. Nos permiten rastrear ciertos eventos, para poder visualizar como fueron hechos paso a paso. 😁
Creo que esta clase va es al final de esta sección, habla sobre la última letra del sistema MELT
Con los Traces (rastros) podremos conocer la actividad que se ha tenido al realizarse una función específica.
Cuando nos enteramos que está surgiendo un problema al ejecutarse esa función especifica, hay que revisar su actividad (traces).
MELT: una mirada más cercana a Traces
Los traces son cadenas de eventos entre componentes, son parecidos a los logs puesto que son discretos e irregulares no se sabe cuando van a ocurrir, por lo que siempre se guardan.
¿Cómo se diferencian de los logs? sencillo tienen un identificador del proceso que se ejecuta. Supongamos que el componente A consulta información al componente B frecuentemente, en los logs podemos ver que información a consultado el componente A en múltiples ocasiones y de igual manera que información a respondido el componente B en múltiples ocasiones, sin embargo, cuando no podemos visualizar de manera secuencial la información consultada y retornada, no podemos tener esa relación entre dicha información. Con los traces, se genera un id_trace cuando el componente A consulta, y con ese mismo id_trace se puede ver la información que el componente B retorno para esta consulta.
Hay una lugar de almacenamiento donde se persiste los eventos de los componentes distribuidos y estan correlacionados por un Id para poder dar seguimiento.
ELK o ELK Stack
Hola, comapeñero. Complemento tu aporte con lo siguiente;
¿Cómo funciona Elk stack?
Se trata de un visualizador de datos que se conecta a un índice de Elasticsearch, y mediante una interfaz web, permite realizar consultas, filtrando los datos para posteriormente representarlos, lo que ayuda a los desarrolladores a tener una visión rápida de los mismos.
¿Lo mismos pasos no pueden ser verificados con los Logs?
Digamos que si, pero realmente va a mayor escala, por ejemplo Un log podria darte cierta informacion del trace d una transaccion a un nivel basico de informacion, y en desorden ya que en un log escriben todos los eventos de las transacciones"Dificil de ver". Pero el trace te permite ver mas alla por ejemplo tu aplicacion interactua con servicios o proveedores o diferentes tecnologias, entonces el trace te permite ver cuanto tarda cada servicio de cada tecnologia en cada servidor, cuanto tiempo tarda en responder hasta ver si la cantidad de transacciones enviadas en un job llegaron a su destino y respondieron correctamente.
Por ejemplo kibana funciona asi, es un ejemplo claro
¿El módulo está en desorden? Si también lo crees así, apoya reportándolo en la banderita debajo del video (Reportar Clase) :)
**MELT** es un acrónimo que se refiere a **Metrics, Events, Logs y Traces**, los cuatro pilares fundamentales de la observabilidad en sistemas distribuidos y microservicios. Cada uno de estos componentes proporciona una perspectiva única para entender el comportamiento y el rendimiento de las aplicaciones en producción. Cuando hablamos de "una mirada más cercana a Traces", nos centramos específicamente en la capacidad de rastrear solicitudes y transacciones a lo largo de los diferentes servicios que conforman un sistema.
### ¿Qué son los **Traces**?
Los **traces** (o **rastros**) permiten observar el flujo de una solicitud mientras viaja por los distintos componentes de un sistema distribuido. Cada interacción o paso de una solicitud se denomina **span**. Un conjunto de spans interconectados que representan el viaje completo de la solicitud es lo que constituye un **trace**. Este enfoque ayuda a visualizar cómo una solicitud pasa por los distintos servicios, y es clave para identificar cuellos de botella, problemas de latencia y dependencias entre servicios.
### Características importantes de los Traces:
1. **Propagación a través de servicios**: Un trace sigue a una solicitud desde el inicio hasta el final, cruzando varios servicios, bases de datos y sistemas externos.
2. **Estructura jerárquica**: Un trace puede estar compuesto por múltiples spans que muestran las distintas capas y dependencias del sistema.
3. **Identificación de problemas de latencia**: Los traces permiten identificar en qué parte del sistema se generan retrasos significativos.
4. **Visualización del flujo**: Los traces proporcionan una visión clara del flujo de datos, útil para analizar las interacciones entre microservicios.
### ¿Por qué son importantes los Traces?
- **Depuración eficiente**: En sistemas distribuidos, es difícil rastrear problemas sin una visión clara del camino de las solicitudes. Los traces permiten a los desarrolladores y equipos de operaciones identificar la fuente de los problemas.
- **Optimización de rendimiento**: Los traces facilitan la detección de los cuellos de botella, lo que permite optimizar el rendimiento de la aplicación.
- **Monitoreo proactivo**: Al ver patrones anómalos en los traces, los equipos pueden detectar problemas antes de que afecten a los usuarios.
### Ejemplo de uso de Traces:
Imagina que un usuario hace una solicitud a una aplicación que involucra múltiples servicios: un front-end, una API gateway, un servicio de autenticación y una base de datos. Un trace documentará cómo esa solicitud viaja entre cada uno de estos servicios, cuánto tiempo pasa en cada uno y si ocurre algún error en el camino.
En resumen, en la observabilidad del ciclo MELT, los **traces** proporcionan visibilidad del flujo de datos y solicitudes a través de un sistema distribuido, ayudando a mejorar el monitoreo, el diagnóstico de errores y la optimización del rendimiento.
Los traces vienen siendo rastros que se dejan en el sistema y permite identificar que componentes están fallando o tardando en ejecutarse para poder tomar acciones si están en nuestras manos.
Traces --> buscar los logs que se hayan registrado, en los componentes de las aplicaciones Los traces nos ayudan a identificar cada paso en una transacción y facilita a encontrar las fallas de forma más granular. Sirven para analizar la información y entender el proceso que se llevo acabo.
¡Rock n' Roll! 🤟 . No solo es monitorear, es registrar los eventos realizados en nuestros sistemas ✨