Table of Contents |
---|
Introducción
Se ha configurado una nueva funcionalidad en Onesait Platform que 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 los microservicios que pueden invocar a un api Rest API REST de plataforma o a un device client,… 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 caso por ejemplo se mostrarían muestran las trazas de un micro micr servicio que invoca a otro microservicio y este a su vez a un servicio Rest expuesto RESTexpuesto desde el Api Manager de plataforma, en . En las trazas se ve cuanto tiempo se ha empleado en cada span, esto es util por ejemplo lo cual es útil para detectar la raíz de problemas como cuellos de botella cueellos de botella, interrupciones entre componentes,…
...
Detalle de funcionamiento
¿Qué es la instrumentación?
La instrumentación de una aplicación, microservicio, etc, … es adaptarla para que 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.
Tipos de instrumentación
Existen dos tipos de instrumentación, En Plataforma se utiliza Open Telemetry que es la tecnología empleada para crear las trazas y spans y enviarla al colector para su tratamiento, utilizada en la Onesait Platform..
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.
Luego también está la instrumentalización Manual, en este caso hay que añadir en la aplicación, micro servicio las librerias 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:
Ejemplos de Instrumentación
Para los ejemplo crearemos dos micro servicios microservicios a partir de proyectos creados con spring boot de javaSpring Boot.
Uno para 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.
En el ejemplo más sencillo tan sólo se tendría que especificar donde se encuentra el jar:
-javaagent:/path/opentelemetry-javaagent.jar
El nombre del servicio, así será como aparece en las trazas
...
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.
...
En este caso se configura el ratio base , la url donde se encuentra el colector de OTel y en nombre del servicio.
Finalmente en el microservicio lo que se hace es invocar un servicio rest generado con el api manager de plataforma, entonces la finalidad es crear una traza que envuelva esta llamada.
...