Zipkin ile Microservice Tracing - OpenTracing ve Spring Boot

Selamlar,

Bu yazida Microservices Tracing icin Zipkin kullanacagiz! Zipkin, google'in yayinladigi Dapper makalesinden esinlenen Twitter'in bu konu icin gelistirdigi bir cozum. Ve tabii ki su an open-source.

Uzun bir yazi olmayacak yine de su surada dursun

TL;DR

  1. Run Zipkin on docker
  2. Replace your tracing bean
  3. Run!
You may find the codes in GitHub :

https://github.com/NurettinYAKIT/nurettinyakit.com/tree/master/OpenTracing-Example




Daha onceki yazimda OpenTracing'i uygulamalarimizda nasil kullanacagimizi anlatmistim. Bu yazimda sira Zipkin'de.

Local'de Zipkin'i calistirin

Docker yine yardimimiza kosuyor.

docker run --rm -it -p 9411:9411 openzipkin/zipkin

Docker gerekli indirmeleri yaptiktan ve container'imizi calistirdiktan sonra su url'den Zipkin arayuzunu kontrol edebiliriz:

http://localhost:9411/zipkin/

Simdi trace etmek icin bir uygulamamiz olmasi gerekiyor. 

Bunun icin de daha onceki yazimda kullandigimiz uygulamadan faydalanacagiz (ki isler hizli ilerlesin).

Github'dan da direkt olarak uygulamaya ulasabilirsiniz.

Simdi yapmamiz gereken tek sey dependency ve bean degisikligi.

1. Dependency

Su Zipkin dependency'leri pom.xml'e ekleyin.

2. Bean degisikligi


Onceki tracer bean'ini kapatin ve yeni beanimizi aktif hale getirin

@Bean@Profile("zipkin")
public Tracer zipkinTracer() {
    OkHttpSender sender = OkHttpSender.create("http://127.0.0.1:9411/api/v2/spans");    AsyncReporter spanReporter = AsyncReporter.create(sender);
    Tracing braveTracing = Tracing.newBuilder()
            .localServiceName("my-service")
            .spanReporter(spanReporter)
            .build();
    // use this to create an OpenTracing Tracer    Tracer tracer = BraveTracer.create(braveTracing);
    return tracer;}

Simdi Zipkin'den kontrollerinizi yapabilirsiniz ;)

http://localhost:9411/


Tebrikler!



No comments: