Spring Cloud Sleuth nedir? Nasıl Entegre edilir?



Spring Cloud Sleuth, dağıtık sistemlerde izleme ve hata ayıklama süreçlerini kolaylaştırmak için kullanılan bir araçtır. İşte Spring Cloud Sleuth'un temel çalışma prensipleri:

  1. Trace ve Span Kavramları:
    • Trace: Bir isteğin sistemdeki tüm yolculuğunu temsil eder.
    • Span: Trace içindeki her bir işlem adımını temsil eder.
  2. Otomatik Enstrümantasyon:
    • Sleuth, Spring uygulamalarına otomatik olarak entegre olur.
    • HTTP istekleri, RPC çağrıları ve diğer önemli olaylar için otomatik olarak izleme bilgileri oluşturur.
  3. Unique ID'ler:
    • Her Trace için benzersiz bir ID oluşturur.
    • Her Span için de ayrı bir ID oluşturur.
  4. Context Propagation:
    • Trace ve Span bilgilerini mikroservisler arasında aktarır.
    • Bu sayede bir isteğin tüm yolculuğu takip edilebilir.
  5. MDC (Mapped Diagnostic Context) Entegrasyonu:
    • Loglara otomatik olarak Trace ve Span ID'lerini ekler.
    • Bu, logların daha kolay analiz edilmesini sağlar.
  6. Sampling:
    • Performans etkisini azaltmak için isteklerin sadece bir kısmını örnekleyebilir.
  7. Zipkin Entegrasyonu:
    • Sleuth, toplanan verileri Zipkin gibi dağıtık izleme sistemlerine gönderebilir.
  8. Customizasyon:
    • Geliştiriciler, özel Span'ler oluşturarak kendi iş mantıklarını da izleyebilirler.

Spring Cloud Sleuth, bu mekanizmalar sayesinde karmaşık dağıtık sistemlerde hata ayıklama ve performans analizi süreçlerini önemli ölçüde kolaylaştırır.

Bu konuda daha detaylı bilgi vermemi ister misiniz?


Spring Cloud Sleuth'u projenize entegre etmek oldukça basittir. İşte adım adım nasıl yapabileceğiniz:

  1. Bağımlılık Ekleme: Maven kullanıyorsanız, pom.xml dosyanıza şu bağımlılığı ekleyin:

    <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency>
    Gradle kullanıyorsanız, build.gradle dosyanıza şunu ekleyin:

    implementation 'org.springframework.cloud:spring-cloud-starter-sleuth'
  2. Spring Boot Uygulamasını Başlatma: Sleuth, Spring Boot uygulamanızı başlattığınızda otomatik olarak yapılandırılacaktır.
  3. Loglama Yapılandırması: application.properties veya application.yml dosyanızda log pattern'i güncelleyin:

    logging.pattern.level=%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]
  4. (Opsiyonel) Zipkin Entegrasyonu: Zipkin ile entegrasyon istiyorsanız, ek bir bağımlılık eklemeniz gerekir:

    <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-sleuth-zipkin</artifactId> </dependency>
    Ve application.properties dosyanıza Zipkin sunucu adresini ekleyin:

    spring.zipkin.base-url=http://localhost:9411
  5. (Opsiyonel) Sampling Yapılandırması: Tüm istekleri izlemek istemiyorsanız, sampling oranını ayarlayabilirsiniz:

    spring.sleuth.sampler.probability=0.1
    Bu, isteklerin %10'unu örnekleyecektir.
  6. Kullanım: Artık uygulamanızı başlattığınızda, Sleuth otomatik olarak çalışacak ve loglarda Trace ve Span ID'lerini göreceksiniz.
  7. Özel Span'ler Oluşturma: İş mantığınızda özel span'ler oluşturmak isterseniz:

    @Autowired private Tracer tracer; public void someMethod() { Span span = tracer.nextSpan().name("custom-operation"); try (Tracer.SpanInScope ws = tracer.withSpanInScope(span.start())) { // İş mantığı } finally { span.finish(); } }

Bu adımları takip ederek Spring Cloud Sleuth'u projenize entegre edebilirsiniz. Entegrasyondan sonra, uygulamanızın loglarında ve dağıtık izleme sistemlerinde (Zipkin gibi) izleme bilgilerini görebileceksiniz.

Please Select Embedded Mode To Show The Comment System.*

Daha yeni Daha eski

نموذج الاتصال