Bir istəyin 10 fərqli servis arasından keçdiyi yolu izləmək — TraceID ilə "detektiv" kimi problemi tapmaq.
İstək yavaşdı, amma hansı servis gecikdirir? Monolitdə stack trace baxırdıq. Mikroservisdə TraceID lazımdır.
TraceID: Bir istəyin ümumi ID-si. SpanID: Hər servis daxili əməliyyatın ID-si. Birlikdə zənciri qurur.
Jaeger, Zipkin, OpenTelemetry, Spring Cloud Sleuth/Micrometer Tracing, AWS X-Ray.
{{ span.spanId }}
{{ span.icon }}
{{ span.name }}
{{ span.duration }}
<!-- pom.xml — dependency əlavə et -->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-tracing-bridge-otel</artifactId>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-exporter-jaeger</artifactId>
</dependency>
# application.yml
management:
tracing:
sampling:
probability: 1.0 # 100% istəkləri trace et
zipkin:
tracing:
endpoint: http://jaeger:9411/api/v2/spans
# Log-larda TraceID avtomatik görünür:
# [user-service,traceId=abc123,spanId=def456] GET /users/1 — 45ms