Tracking Serverless Transactions End-to-End

While application are more distributed day by day, monitoring and troubleshooting these applications are still required. However, the way of monitoring should be changed because it is not enough to monitor every service individually. Users want to display their serverless system with all services interacted with each other. At this point, Thundra helps you to display your distributed system monitored from end-to-end with Full Tracing capability!

As from the beginning, our motto is "Full serverless observability", "Full Tracing" is an essential feature to achieve our goal. For this purpose Thundra provides you to both distributed tracing and local tracing as "Full Tracing" feature. In favor of Thundra's full tracing capability, you are able to monitor your Lambda functions from high level which means interaction with other Lambdas and services to deeper level such as specific line.

Distributed tracing is supported with two unique capabilities in Thundra:

  • Multiple upstream transaction - There can be multiple invocations when an invocation is triggered. For example a batch of messages come through multiple invocations and written to DynamoDB with one transaction. In Thundra, you can display each upstream invocation link to downstream invocation.

  • Business transaction - Some invocation are related to each other with logical interactions. Such as writing a message to DynamoDB table after an approval. You can link logically related flows with Thundra's distributed tracing.

Thundra provides this capability via Traces. You can display your all individual traces in Traces Page. Using detailed queries you can filter your traces. Traces are listed in terms of:

  • Trigger of the origin

  • Entry point

  • Start time

  • End to end duration of trace

  • Interacted resources

  • Error types if any thrown

  • Duration breakdown

When you want to go through deeper level of your serverless system, filter your traces according to your needs and click on any trace. Trace map page will be shown as below:

Trace Map

Trace map provides you interactions between lambda functions in specific trace and metrics and health of interactions. As seen in picture, failed Lambda function is highlighted with red square. You can click on failed Lambda to figure out what's going wrong.

Trace Details

You can easily see spans of selected node and which operation is failed at the right side. If you want to look for your CloudWatch logs, you can navigate to CloudWatch logs by clicking button at right top. By clicking "Invocation" link at top right, you can go to invocation of that Lambda function executed in current trace.

How to configure your serverless system for distributed tracing?

For each environment you can visit out documentation to configure distributed tracing: Java, Python, NodeJS, .NET and Go.