How can we achieve 'distributed tracing' with NetDiagnostics? i.e. how to achieve detailed view of individual requests as they "hop" through a system of micro-services?
NetDiagnostics allows an ecosystem to monitor each component of any complex application infrastructure. It gives a clear picture into the backend system to identify and trace all the services, transaction, or any callouts.
Distributing tracing is increasingly seen as an essential component for observing distributed systems and microservice applications.
Distributed tracing allows specific request inflexion points within a system and instrumented. All of the trace data are coordinated and collated to provide a meaningflow view of request. An application architecture that relies on many services or microservices is often referred to as a distributed system.
- Trace the path of a request as it travels across a complex system
- Identify the latency of the components along that path
- Know the offending component in the path
NetDiagnostics supports all of these capabilities using FlowPath Chaining. It uses the Protocol headers at the origin to pass tracing information from one instance to next instance and it travels through entire stack. That enables us to look into multiple spans of application, which represents time spent in services or resources of those services in case of Distributed tracing systems and microservices application.
- FlowPath/ Aggregated FlowPath
- Transaction FlowMap
- Aggregated Transaction Map