Distributed Tracing in Microservice with Spring Cloud Sleuth & Zipkin | Java Techie
Vložit
- čas přidán 27. 08. 2024
- This tutorial explain you how to use Sleuth to add tracing information in logs. In addition to that, we can also export this information to Zipkin so that we can visualize this through UI
GitHub:
github.com/Jav...
Blogs:
javagyanmantra...
Facebook Group :
/ 919464521471923
Like & Subscribe
Beautiful explaination sir....keep going....I love the way you implement the technical things.....Keep it up sir
thank you basant best teacher ever
Beautiful practical explanation . Thanks @Java Techie
Nicely explained thanks
Thanks for explanation.
I have followed your video but I have not receved any traceId and spanId these are null after and before hit to the service
Sir ...we will have trace I'd and span I'd different in case we are hitting same service again and again. Please correct me if any gap
Yes spam id will be vary
great work sir, thanks for this informative video
Hey Basant,
It is really a helpful tutorial. You are doing a great job! Thanks!
However I've one question:
How does our client application know where is Zipkin server hosted to push the microservice trace details? Where exactly we do this configuration?
For example: we have a GUI (html) from where our execution reaches to controller method. From inside this method we are calling a microservice which internally calls another microservice and the aggregated data is pushed back to frontend. We added logs everywhere but where exactly we let our application know about the zipkin server to push the trace details.
I think I know the answer to this. Basically, Zipkin is taking input details from microservices which have a library for instrumenting the code and allowed to do so in this case, spring cloud sleuth is doing the job. When you have added the Zipkin library it has default configuration where URL of Zipkin server localhost:9411 is mentioned in the microservices.
@Basant Correct me If I am wrong.
@Manish let me know if u need more details.
I think since we are adding a sleuth-zipkin dependency in the client application, it will automatically trigger a post request to the default port in which we are configuring the zipkin server which is 9411.
how application knows where zipkin is running ?
Does only Edgware.SR3 has DefaultSampler class . I dont find any other version has this class.
Am not sure will check and update you
When and where you define payment service register or link with zipkin server/tool. So how zipkin knows there is service payment ...can you please explain sir ?
We no need to define anywhere this job will take care by sleuth dependency .
Thanks for the video your videos helped me so much, but for this particular video, if you had created a parent mvn proj with two children both of them with only one end point you could show us in a more clear way what is traceId, spanId and parentId. Anyway thank you for your time!
Yeah I got your approach . That way it's easy to differentiate
When I changed the port number of zipkin server, traces were not getting added. No configuration was mentioned anywhere regarding port number . Could u plz tell is it mandatory to run on same default port of Zipkin server
Sorry my bad, in this vedio zipkin server started. But where we configure payment application details in zipkin server..
And do you know how can we add span Id and trace Id to kafka consumer application which doesn't have any controller?
If we call external microservices ... Do we need to have a bean of alwayssampler in every external service we call or only in the parent service will be enough ?
Eventhough we will not add this Always sampler spring boot will add default one .
So adding in parent is enough
Thank you..
Hi sir ,
where it is log files in zipkin Ui,suppose in production any exception occure how to see that Exception log files.
Hey Rajesh , log file won't be visible there , hope you know what is the use of log file .
It will be available in your environment like QA or Prod , if you are doing cloud deployment then you can check in cloud itself
Thank you. But if any issues come in production environment how to see that log files any tool available or not
Yes man we need to go to putty tool then check the box there you can find log folder .
@@rajeshch1267 Generally Production log we see through Splunk tool . I have used that in my project.
@@sarojsahoo8763 thank you and elk also shall we log files ?
At 23:25 why is the trace id and span id are different even though we call the same micro service
How does payment service recognise the zipping server without mentioning zipkin configuration anywhere in the service?
So Both TraceId and Span ID are going to get matched against microservices (ex-If I have 2 microservices)
No trace id will be same across all microservice but not span id
Awesome..
Are we using java 8 here??
No not here
Hi,
When i run zipkin server i am getting below issue and not able to lunch application.
An attempt was made to call a method that does not exist. The attempt was made from the following location:
zipkin2.server.internal.ZipkinHealthIndicator.(ZipkinHealthIndicator.java:26)
The following method did not exist:
org.springframework.boot.actuate.health.CompositeHealthIndicator.(Lorg/springframework/boot/actuate/health/HealthAggregator;)V
The method's class, org.springframework.boot.actuate.health.CompositeHealthIndicator, is available from the following locations:
....
Correct the classpath of your application so that it contains a single, compatible version of org.springframework.boot.actuate.health.CompositeHealthIndicator
Note: I am using spring boot version 2.2.6
In main class it is showing The type EnableZipkinServer is deprecated.
Could you please suggest me how can i resolve these issues.
Thank you !!
Can you please explain, if the Zipkin server application is mandatory to have? Can't we install Zipkin server separately on port 9411 as a Docker container and configure our Payment service application to post traces to that server?
Tested the integration with running Zipkin locally on 9411 and the Application was pushing traces to Zipkin. Thank you!
Cant we see the log information in the zipkin dashboard ?
Yes we can see, I shown it in video for better understanding you can check my microservice playlist
@@Javatechie Thanks for your response so quickly. Sorry to bother you again.
I have seen your two videos separately which you have done one for Distributed Log tracing by using Sleuth + Zipkin (TO get Trace Id and SpanID) and another video for Centralized logging using ELK stack ( to get Log.Info messages).
How can we see TRACE ID , SPAN ID along with Log.Info messages in KIBANA dashboard. I mean how to do the configuration of ELK+Sleuth+Zipin to get TRACEID, SPANID along with Log.Info message for a particular microservice .If you have done that video, can you please share that video link please.
GOD BLESS YOU ....
@@raghuvardhansaripalli9636 this integration I didn't . let me check
@@Javatechie Sure boss. If you don't have that video, could you please do for all youtubers whenever you have free some time. Actually i checked in youtube. No one has done this video so far. God bless you..!!!
@@raghuvardhansaripalli9636 I will do this
HI I tried with spring boot 2.1.0 -RELEASE and not able to see the service in zipking and thre is no samplar in this version can you please help me for spring boot 2.1.0 release with zipkin and rabitMQ with spring cloud stream
probably Zipkin as a server is discontinued from spring boot, now it's available as Zipkin client only for Zipkin server you have to go to zipkin.io and use the executable directly from there
Sir could you please do video on distributed tracing for kafka based consumer and producer application
where is the log messages in zipkin UI those you have written using log4j
@soubhagya That won't display on Zipkin UI , that i added to check in console and the role of zipkin is not to display your log statement ,it just help us to keep track your API load info with the help of spanid and trace id
@@Javatechie How do we send log4j logs to zipkin??
How we can send response body values or log values of a request on zipkin UI . Is there any way.
We cannot miss guide use of zipikin as I already mentioned zipikin is not being used to track your application internal logs .
It's used to track API call and it's load .
@@Javatechie any suggestions that helps for me to trace service request as well as to log data of respnse body?.. By the way, your tutorials are great....hats off keep it brother.
Where are the logs ???
creating custom zipkin servers as part of sleuth has been deprecated.
I didn't check , this is my old implementation
@@Javatechie yes. But it is helpful :). Thank you. Please upload with upgraded version of boot as well.
Hi All,
I want to do Zipkin setup on Spring MVC(Not SpringBoot) using Gradle.
Anyone please share me the proper example.
Yes we can do let me check it .
@@Javatechie Thanks for your reply, Its very helpful, If I get it EOD. Thanks In Advance
@@Javatechie Any update pls
Hi, Are you from Odisha
Yes
Please upgrade your videos with new Spring Boot version 2.4.1
Hi please checkout my microservice playlist I already explained with spring boot 2.x
Seems like you are Oriya