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
- Run Zipkin on docker
- Replace your tracing bean
- Run!
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:
Post a Comment