Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

...

Info

Se podrá ver un ejemplo práctico en la página Visualización de rastreo distribuido en LAGAR.


Sleuth (detective en inglés), es la librería de Spring-cloud que implementa el proceso de rastreo distribuido.

...

Advertencia

Todas las APIs FundeWebJS se han configurado para usar Sleuth. En principio, NO ES NECESARIO que los programadores realicen la configuración.

Esta página es una referencia, por si alguna aplicación se ha escapado del radar de MNCS.

Guía detallada

A continuación se detallan los pasos para configurar Sleuth.

1. Fichero pom.xml:

...

Bloque de código
languagexml
<properties>...
<spring.cloud.version>2021.0.3</spring.cloud.version> <!-- Para versiones de spring-boot-starter-parent a partir de 2.6.X ->

<spring.cloud.version>2020.0.6</spring.cloud.version> <!-- Para versiones de spring-boot-starter-parent 2.4.X y 2.5.X ->

<spring.cloud.version>Hoxton.SR12</spring.cloud.version> <!-- Para versiones de spring-boot-starter-parent 2.2.X y 2.3.X ->
...
</properties>
Advertencia

SOLO DEBE HABER UNA PROPERTY spring.cloud.version, la que corresponda con el parent spring-boot-starter-parent que tengamos configurado en nuestro pom.xml.

...

2021.0.x aka Jubilee

...

2.6.x, 2.7.x (Starting with 2021.0.3)

...

2020.0.x aka Ilford

...

2.4.x, 2.5.x (Starting with 2020.0.3)

...

Hoxton

...

2.2.x, 2.3.x (Starting with SR5)


...

Greenwich

...

2.1.x

...

Finchley

...

2.0.x

...

Edgware

...

1.5.x

...

Dalston

1

...

Ejemplo de Tabla de compatibilidades Spring-Cloud - Spring-Boot agosto'22.

...

languagexml

...

.

...

Bloque de código
languagexml
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-sleuth</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

...

Fichero application.properties:


  • Añadir las siguientes propiedades en el fichero application.properties de Helm Chart:

    Bloque de código
    languagetext
    spring.application.name=${app.author}/${app.apiname} ##SOLO SI NO ESTÁ DEFINIDA ANTES Y TENEMOS app.author y app.apiname
    spring.zipkin.enabled=false ##Deshabilita el envío a Zipkin, aunque no debe hacerse si la dependencia de Zipkin no está en el pom.xml.
    spring.sleuth.baggage.remote-fields=UMU-User-SessionID #Define el campo para recibir y propagar a otros servicios
    spring.sleuth.baggage.correlation-fields=UMU-User-SessionID #Añade el campo al MDC
    spring.sleuth.baggage.tag-fields=UMU-User-SessionID #Define el campo para enviarlo como tag y poder filtrar en zipkin/jaeger en el futuro


    En las referencias hay un enlace a la documentación de Sleuth (#appendix) con la tabla con todas las propiedades de configuración.

...

Info

Para integrar correctamente Sleuth con clientes REST RestTemplate (a extinguir) y WebClient (ver confluence WebClient) es imprescindible registrar tanto RestTemplate como WebCliente WebClient con @Bean

Si, a pesar de tener WebClient registrado y Spring-Boot actualizado, seguimos teniendo una excepción al lanzar WebClient, añadir la property "spring.sleuth.reactor.enabled=false" en el application.properties.
Si el problema persiste, hay que poner Jira a DJ-AT-MNCS.

...