If you’re familiar with Thundra, you have seen how effective insights are in improving your serverless application’s performance and in understanding the role of monitoring in your development strategy. On top of helping with performance optimizations, Thundra provides a number of ways to visualize the metrics of your application that can commonly become lost or overlooked.
A quick view of an architecture diagram will tell you all there is to know about how each service will interact with each other and how they should perform within your application. Although, in a distributed system, just having the knowledge of your application’s overall health and the health of its microservices can be limiting. Just how well is your application running? That’s where Thundra application tracing comes in, helping to narrow down the pain points of the individual services and provide actionable information about them. However, you may also want to understand the behavior of your application in a specific situation or ‘flow’. To give a different perspective of your application’s performance and create new insight for application improvement, Thundra recently introduced the concept of Unique Tracing.
In this article, we’ll explore what Unique Tracing is and how it can help you better understand the inner workings of your serverless application with actionable information.
What is Unique Tracing and why use it?
Let’s consider the example of an e-commerce website that needs to track the performance of its checkout process. The performance of the checkout process could prove to be one of the most significant metrics for the entire e-commerce website since it's a key page that the users interact with.
On the website, a user will purchase a product through the checkout flow. There are various operations that take place within the checkout process:
- Adding billing address
- Payment method selection
- Making the payment
All these operations grouped together form a service flow that enables the process of buying a product.
This flow is repeated every single time any user makes a purchase. So instead of showing these identical traces separately, it would be more helpful to view them as a single unique flow and investigate the various KPIs of each service when this flow executes. This is what Unique Tracing (aka service flows) is all about.
Thundra discovers and records every service flow that performs a specific (unique) operation inside your application so you can view them individually. This makes it easier to track certain business metrics or other valuable KPIs (Key Performance Indicators).
In this example, the business will be able to more accurately evaluate the value of this checkout page for the e-commerce business as a whole.
How to use Unique Tracing
Let’s take a quick look at how to utilize this feature on Thundra.
Once you have signed up and instrumented your application on Thundra, navigate to Unique Traces from the left pane.
A list of traces which Thundra has identified as unique within your application is shown similar to the following:
Unique trace list
Like most screens on Thundra, there are useful filtering capabilities on this screen too. Clicking on each of these traces will show up the trace architecture looking something like this:
This view shows those elements of your application that were part of this Unique Trace Thundra has recorded.
The trace list view next to the architecture button shows the list of traces (also called occurrences) each time this service flow was executed. You can filter these entries by selecting options from the left side of the screen.
The metrics view shows trace counts (number of times this trace was visited) and trace durations (average start to finish duration of the traces) for the selected service flow.
Select any one of the listed traces from the trace list to view the trace map screen.
This view shows how long each service took to execute, and the number of times that service was invoked as a part of this specific trace or occurrence.
When you click any of these services or the lambda function itself, the calls (inbound or outbound) between them will be shown.
This directed graph provides context on what happened with every invocation and what was being passed between the services.
Trace chart - Lambda function and corresponding traces
If we look at the metrics above you can take note of the average performance of this service flow and fine-tune the application as needed.
With varied business needs, tracking metrics for specific areas of distributed systems can be cumbersome when there are too many micro-services involved. You can have good actionable data, but it’s of little value unless there is a clear way to view and interpret that data. That’s where the role of effective tooling comes in, unearthing the valuable data right below the surface of one’s application.
In this article, we have explored what Unique Tracing can do for serverless observability and how it can enhance the overall insight one can have into their application’s performance. Rather than looking at identical individual traces, these similar flows can be aggregated.
Ultimately, Unique Tracing is a solid addition to Thundra’s existing capabilities as it allows data to be accumulated around unique user flow patterns. As a user of Thundra, leveraging this tool provides better tracking of KPIs and can potentially lead to performance improvements, cost optimization, and provide enough insight and evidence to re-architect your serverless application. You can start your forever free plan with Thundra and take advantage of unique traces.