Distributed tracing in Micronaut microservices
Distributed tracing is the capability of the system to track and observe the execution flow of a request in distributed systems by collecting data as the request furthers from one service component to another. This trace data compiles metrics such as the time taken at each service along with end-to-end execution flow. Time metrics can help to zero down performance issues such as which service component is a bottleneck to the execution flow and why.
A trace is a Gantt chart-like data structure that stores the trace information in spans. Each span will keep a trace for the execution flow in a particular service component. Furthermore, a span can have a reference to parent span and child spans. Refer to the following figure:
In the preceding diagram, we can see the traces/spans for loading the foo
page on the user interface app. It first calls Service A to get the foo
object...