Distributed tracing is a method of observing requests as they propagate through distributed cloud environments. Distributed tracing follows an interaction by tagging it with a unique identifier, which stays with it as it interacts with microservices, containers, and infrastructure. It can also offer real-time visibility into user experience, from the top of the stack right down to the application layer and the large-scale infrastructure beneath.
As legacy monolithic applications give way to more nimble and portable services, the tools once used to monitor their performance are unable to serve the complex cloud-native architectures that now host them. This complexity makes distributed tracing critical to attaining observability into these modern environments.
In fact, a recent global survey of 700 CIOs found that 86% of companies are now using cloud-native technologies and platforms, such as Kubernetes, microservices, and containers, to accelerate innovation and stay competitive. With this shift comes the need for effective observability into these complex and dynamic environments.
Where traditional methods struggle
The goal of monitoring is to enable data-driven decision-making. Traditional software monitoring platforms collect observability data in three main formats:
- Logs: Timestamped records of an event or events.
- Metrics: Numeric representation of data measured over a set period.
- Traces: A record of events that occur along the path of a single request.
In the past, platforms made good use of this data, such as following a request through a single application domain. Gaining visibility into monolithic systems before containers, Kubernetes, and microservices was simple. However, in today’s vastly more complex environments, such data offers no overarching view of system health.
Log aggregation, the practice of combining logs from many different services, is a good example. It may give a snapshot of the activity within a collection of individual services, but the logs lack contextual metadata to provide the full picture of a request as it travels downstream through possibly millions of application dependencies. On its own, this method simply isn’t sufficient for troubleshooting in distributed systems. This is where observability, and distributed tracing specifically, come in.
Observability, as opposed to simple monitoring, is the emerging standard for understanding and gaining visibility into apps and services. It helps to explore the properties of and patterns within the environment that are not defined in advance. Distributed tracing is one of several capabilities key to achieving the observability that modern enterprises demand.
How does distributed tracing work?
Especially in dynamic microservices architectures, distributed tracing is essential to monitor, debug, and optimize distributed software architecture, such as microservices. More specifically, it tracks the path of a single request by collecting and analyzing data on every interaction with every service the request touches.
Each activity — called a segment or span — that a request triggers is recorded as it moves both through and across services. Information collected includes a name, start and end timestamps, and other metadata. When one activity — a “parent” span — is completed, the next activity passes to its “child” span. The distributed trace places all these spans in their correct order.
The impact of tracing through distributed systems
Distributed tracing can easily follow a request through hundreds of separate system components, and it does more than just record the end-to-end journey of a request. It can also provide real-time insight into system health, helping IT, DevSecOps, and SRE teams to:
- Report on the health of applications and microservices to identify degraded states before a failure occurs.
- Detect unforeseen behavior that results from automated scaling, making it easier to prevent and recover from failures.
- Analyze how end-users experience the system in terms of average response times, error rates, and other digital experience metrics.
- Monitor key performance metrics that can be with interactive visual dashboards.
- Debug systems, isolate bottlenecks, and resolve code-level performance issues.
- Identify and troubleshoot unseen problems at their root.
Cloud intelligence for the distributed world
Dynatrace, a pioneer of distributed tracing since 2006 with PurePath, our patented distributed tracing technology, extends observability beyond metrics, logs, and distributed traces to integrate with code-level analysis, user experience data, and metrics from the latest open-source standards. This expansion gives you full contextual observability into your entire environment of apps and services, and the underlying cloud infrastructure. With an all-in-one, AI-driven software intelligence platform, your BizDevOps teams have a single source of truth for all your data, which means less time troubleshooting and more time innovating.
Join us at the on-demand Performance Clinic, Distributed Tracing with Dynatrace, to see how Dynatrace automatically traces transactions between services and technologies.
The post What is distributed tracing and why does it matter? appeared first on Dynatrace blog.
This syndicated content is provided by Dynatrace and was originally posted at https://www.dynatrace.com/news/blog/what-is-distributed-tracing-and-why-does-it-matter/