Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Introducción

En la release de Q2 de 2023 se ha incluido la capacidad de Tracing distribuido en Plataforma.

Esto nos permite obtener la trazabilidad distribuida entre sus componentes y otros componentes como microservicios que pueden invocar un API REST de plataforma y poder ver esta trazabilidad completa desde este microservicio.

Cómo acceder a la funcionalidad

Estas trazas pueden verse desde el control panel Control Panel en la opción TRACING:

...

En este ejemplo se muestran las trazas de un micr servicio microservicio que invoca a otro microservicio y este a su vez a un servicio RESTexpuesto REST expuesto desde el Api API Manager de plataforma. En las trazas se ve cuanto tiempo se ha empleado en cada span, lo cual es útil para detectar cueellos cuellos de botella, interrupciones entre componentes,…

...

Detalle de funcionamiento

...

¿Cómo configurar mi microservicio para que tracee?

Instrumentación del microservicio

La instrumentación de una aplicación, microservicio, etc, … es adaptarla para que mi microservicio permitirá que este genere una información de trazas y span que enviará al colector, estas trazas y span comparten un contexto por lo que puede trazarse desde el inicio hasta el fin el camino recorrido, el tiempo en cada punto del camino y además contiene información del tipo clave valor, para luego poder interpretar todo y poder sacar conclusiones.

En Plataforma se utiliza Open Telemetry para crear las trazas y spans y enviarla al colector para su tratamiento.

Tipos de instrumentación

Existen 2 tipos de instrumentación,

  • Está la instrumentación Automáticaautomática, consiste en utilizar el agente de Open Telemetry para que de forma no intrusiva obtener las trazas sin tener que tocar el código del micro servicio, aplicación,.. desde el que se pretendan obtener las trazas, ya que el agente se encarga de escuchar las distintas librerías más importantes que se suelen utilizar y de estas generar las trazas. Es la que usaremos por defecto.

  • Luego también está la instrumentalización Manualmanual, en este caso hay que añadir en la aplicación, micro servicio las librerias librerías con el SDK de Opentelemetry e implementar como se van a generar las distintas trazas. Este caso es más útil cuando se pretenden generar ciertos tipos de trazas con información especifica o más customizada.

Aquí se puede encontrar la información necesaria para poder implementar los dos tipos de instrumentación:

https://opentelemetry.io/

...

Ejemplo de Instrumentación

Para los ejemplo crearemos dos microservicios a partir de proyectos creados con Spring Boot.Uno para 2 microservicios Spring Boot, uno en el que configuraré la instrumentación automática y otro para la manual.

Instrumentación

...

automática

Para este tipo de instrumentación tan sólo hay que arrancar junto a la aplicación el agente de Open Telemetry, el cual es altamente configurable por parametría.

...

También existen agentes para otras tecnologías, no sólo java.

Instrumentación

...

manual

En este caso habría que añadir código a la aplicación para generar las trazas.

...