Thundra supports three pillars of observability:
- Audit (Trace): Audits provide end-to-end visibility into requests throughout the entire chain. Audits can be used for identifying which parts of the system have performance bottlenecks, detecting which components of the system lead to errors, and debugging the whole request flow for domain-level bugs.
- Stat (Metric): Stats provide measured or calculated information (mostly numbers) about a particular process or activity in the system over intervals of time—in other words, a time series. A stat can be application/environment specific (CPU stats, memory stats), module/layer specific (cache stats, DynamoDB stats), or domain specific (user stats).
- Log: Logs are an immutable and verbose representation of discrete events that happen over time. Logs are used for debugging, auditing, and analyzing system behavior.
Thundra has the following AWS Lambda specific extension modules:
- thundra-lambda-audit: Provides audit (trace) support on AWS Lambda
- thundra-lambda-stat: Provides stat (metric) support on AWS Lambda
- thundra-lambda-log: Provides log support on AWS Lambda
In this document, we will go through step by step monitoring over a sample “user-get” service which returns requested users.