Technologie

Tracing v CodeNOW pro Java Spring Boot

Jak implementovat a používat distribuovaný tracing v CodeNOW pro aplikace v Java Spring Boot.

Tracing in Java Spring Boot

Přehled

Distribuované trasování poskytuje viditelnost do toků požadavků napříč komponentami aplikace. Podle článku "Unikátní trace ID je generováno pro každý nový požadavek. Když nějaká komponenta obdrží požadavek, je pro tuto komponentu přiřazen nový span a span je přidán do trace."

Kroky implementace

Závislosti

Přidejte tyto knihovny do vaší Maven konfigurace:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-sleuth</artifactId>
    <version>3.0.2</version>
</dependency>

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-sleuth-zipkin</artifactId>
    <version>3.0.2</version>
</dependency>

Konfigurace

Aktualizujte application.yaml s nastavením trasování:

Pro nasazení v CodeNOW:

spring:
  application:
    name: demo-app-spring-bl
  zipkin:
    enabled: true
    baseUrl: http://tracing-jaeger-collector.tracing-system:9411
  sleuth:
    propagation:
      type: B3
      tag:
        enabled: true

Pro lokální vývoj:
Nahraďte URL collectoru za http://localhost:9411

Pro integraci s Kafka:
Povolte trasování messagingu přidáním:

spring:
  sleuth:
    messaging:
      kafka:
        enabled: true

Trasování databázových dotazů

Průvodce doporučuje vytvořit komponentu TracingHelper a AOP aspekt pro automatické generování spanů pro volání repository, čímž se eliminuje manuální správa spanů pro databázové operace.

Vlastní spany

Vývojáři mohou manuálně vytvářet spany pomocí poskytnuté helper třídy, zabalením operací do try-finally bloků pro zajištění správné správy životního cyklu.

Napsal/a CodeNOW