Serverless is distributed by its nature, and it is hard to understand the serverless architectures by only checking functions. Seeing visually your architecture can help at great extent to discover the errors in your serverless stack. Thundra can discover your architecture and show all interactions between your resources such as DynamoDB, Redis, SQS and your lambda function.
Architecture page consists of following sections:
Architectures are drawn according to your projects, so you need to select your project to view your serverless architecture.
You can customize your architecture view using filters. When you hover on Filters button in architecture page, options will be displayed.
Show Labels is selected by default and it shows labels on vertices. Specifically, for lambda vertices, you can see the function name and the average duration of invocations.
Show Metrics setting show more information about the interaction between Lambda function and other resources. Without clicking on edges, you can see the count and duration between your function and resources at a glance.
Old AWS Icons setting comes as selected by default to show your serverless architecture with old icons. AWS announced new icons very recently. Uncheck this setting in order to see the new icons in your architecture.
Export PNG exports your architecture image in png format.
Time slider helps you figure out changes in your architecture. For example, if you add a new function to your project, you can easily detect changes and compare it with previous architectures. You need to just change the focus to some specific time slice and play with the start and end time to see the effect of the change you make. New nodes and edges will appear/disappear and you will be able to track the health change with your introduction of new features.
If there is a configuration for a lambda and any violation occurs to access any resources, block or violated icons displayed on resource icons.
Red block icon - Access to that resource is blocked by Thundra due to security configuration.
Yellow block icon - Access to that resources is allowed however it violates a security configuration.
You can click on the edges to get detail about the interaction between vertices. Edges are colored as green, yellow, orange and red according to the health of the interaction. Health is defined as the ratio of the non-erroneous interactions over all interactions. An edge is:
Green if the health is more than 90%.
Yellow if the health is between 70% and 90%.
Orange** if the health is between 50% and 70%.
Red if the health is less than 50%.
You can see detailed information about an interaction between two resources by clicking on the edge between them. When you click on edges, a panel showing the details are opened on the right of the screen, and the edge is turned to gray. Detail panel has the following items:
The summary section that gives quick info about the interaction.
The count chart that shows the trend and spikes in the interaction in terms of frequency.
Duration chart that shows the trend and spikes in the interaction in terms of average, 95th and 99th percentile.
Invocation table that lists every single invocation in which the selected interaction is taking place.
In summary, some superficial details about the interaction between your Lambda function and resource are given. You can also compare those metrics with the previous period in terms of percentage.
Invocation Count is the number of interactions that occurred between the function and the resource
Error is the number of erroneous interactions that occurred between the function and the resource
Avg Duration shows the average duration of interactions that occurred between the function and the resource
99th Duration shows the 99th percentile duration of interactions that occurred between the function and the resource
Health is the ratio of health interactions to the all interactions that occurred between the function and the resource
Count chart visualizes healthy and erroneous interactions between your function and resource. Specifically, if your function makes some calls to the DynamoDB table, somehow if the interaction fails due to throttles or outages, you will be able to see those interactions with this graph. (this interaction is same with span duration in trace chart, at a glance you can see…. etc)
Duration chart helping you see average, p95 and p99 durations between your function and resource.
Invocation List contains start time of your invocation, duration and interaction duration between your function and resource. Invocations are listed descending order by their durations.