New Relic distributed tracing is included for APM customers
New Relic distributed tracing is designed to give software teams working in modern environments an easy way to capture, visualize, and analyze traces through complex architectures. And if you’re already using New Relic application performance monitoring (APM), you get distributed tracing at no extra charge. You just need to update your agents, open New Relic, and select Traces to see your trace data.
New Relic APM agents completely remove the operational burden of managing complex tracing software, so engineers like Andrew at Dealer.com are free to instrument their environments to generate unlimited trace telemetry without worrying about the complexities associated with deploying and scaling components.
You can observe all application traces across your distributed systems automatically. New Relic distributed tracing provides actionable detailed scatter chart and waterfall visualizations for a variety of language frameworks like C, Go, Java, .NET, Node.js, PHP, Python, Ruby and more. It also includes New Relic browser data and mobile monitoring, AWS Lambda, and Zipkin format traces through the Trace API and supports common standards for traces like OpenTelemetry and W3C, so you can investigate and solve issues faster.
Understanding software complexity
To understand why distributed tracing is so important, it’s helpful to look at the cloud platforms, containerization, and container orchestration that forward-thinking software organizations use to quickly build, scale, and operate business-critical applications.
Despite the many advantages of software architectures built on microservices and serverless, the exploding number of components and their diversity in language, operating environment, and ownership creates a huge new burden for teams trying to manage them. Teams can’t effectively work toward resolving issues in a complex system until they understand all the service dependencies and how the performance characteristics of dependent services impact their requests and transactions. To find the proverbial needle in the haystack, you need a complete view of the entire system.
Understanding how a downstream service “a few hops away” can create a critical bottleneck for a service is essential for fast problem resolution. Just as important, it also provides DevOps teams with insight on how to optimize their code. If you can’t determine when, why, and how an issue happens, small defects may continue to linger in production until a perfect storm of events aligns and the system breaks all at once. Distributed tracing provides a detailed view of individual requests so you can point out precisely what parts of the larger system are causing issues to optimize and solve issues faster.
Data vs insights
Distributed tracing provides end-to-end visibility by revealing service dependencies. You can consider it a way to record and visualize requests through complex, distributed systems. But collecting and visualizing tracing data can be labor-intensive and complex to implement, like deploying, managing, and scaling third-party gateways or satellites for data collection.
New Relic makes setting up distributed tracing easy with automatic instrumentation. Our auto-instrumenting application code uses language agents that work with hundreds of different libraries and frameworks across multiple languages. You deploy one agent, and New Relic APM instruments each service involved in the request, creates timings for operations within the service, and automatically adds important troubleshooting information to each span. You can even add custom attributes to transactions and see all your information in the trace as well, without changing anything.
New Relic APM agents automatically create a unique trace ID for each incoming request and propagate that ID and other necessary correlation information as the “trace context” across the entire call. For example, when one service makes a call to another service, New Relic adds the trace context to the HTTP request header for the next service to use. Our auto-instrumentation is designed to eliminate the hard work of managing and propagating context.
What if you are using a transport that requires manual instrumentation? The New Relic APM agent provides an API that you can use to inject and extract the trace context. Using the W3C Trace Context format for propagating the trace context makes them interoperable with any other tracing agent or tool that also supports that standard.
None of this matters if you can’t identify the insights in the data across your stack. New Relic APM provides trace visualizations designed to help you quickly understand why a specific request is slow, where an error originated, and where you can optimize your code to improve the experience for your customers.
Here’s a diagram that shows how these components work together for New Relic distributed tracing:
Get started with New Relic distributed tracing
Ready to get started and identify ways to improve your applications? With New Relic APM and distributed tracing, soon you’ll be analyzing complex architectures so you can better understand dependencies across your system.
1. Review the distributed tracing documentation.
2. Deploy or update to the latest APM agent to each service involved in the call path you’re interested in. Distributed tracing will be immediately available upon upgrading.
- Deploy the latest Browser agent.
- Deploy the latest Mobile agent.
3. That’s it! Now you can access the distributed tracing information from New Relic APM and quickly identify slow traces and traces with errors. And you can even use the advanced filtering to find traces by a combination of attributes.
Want to know more? Click here for more details