Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

Disponible desde versión 5.1.0 de Onesait Platform (Survivor).

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 en la opción TRACING:

...

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

...

¿Cómo configurar mi microservicio para que tracee?

Instrumentación del microservicio

La instrumentación de 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á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 manual, en este caso hay que añadir en la aplicación, micro servicio las 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.

Ejemplo de Instrumentación

Para los ejemplo crearemos 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ía.

Instrumentación manual

En este caso habría que añadir código a la aplicación para generar las trazas, añadiendo estas dependencias al fichero pom.xml:

...