What is observability
What it is
Observability is the capability to continuously generate and discover actionable insights based on signals from the system under observation. In other words, observability allows users to understand a system’s state from its external output and take (corrective) action.
Problem it addresses
Computer systems are measured by observing low-level signals such as CPU time, memory, disk space, and higher-level and business signals, including API response times, errors, transactions per second, etc.
The observability of a system has a significant impact on its operating and development costs. Observable systems yield meaningful, actionable data to their operators, allowing them to achieve favorable outcomes (faster incident response, increased developer productivity) and less toil and downtime.
How it helps
Understanding that more information does not necessarily translate into a more observable system is pivotal. In fact, sometimes, the amount of information generated by a system can make it harder to identify valuable health signals from the noise generated by the application. Observability requires the right data at the right time for the right consumer (human or piece of software) to make the right decisions.
What you will find here
This site contains our best practices for observability: what do to, what not to do, and a collection of recipes on how to do them. Most of the content here is vendor agnostic and represents what any good observability solution will provide.
It is important that you consider observability as a solution though and not a product. Observability comes from your practices, and is integral to strong development and DevOps leadership. A well-observed application is one that places observability as a principal of operations, similar to how security must be at the forefront of how you organize a project. Attempting to “bolt-on” observability after the fact is an anti-pattern and meets with less success.
This site is organized into four categories:
- Best practices by solution, such as for dashboarding, application performance monitoring, or containers
- Best practices for the use of different data types, such as for logs or traces
- Best practices for specific AWS tools (though these are largely fungible to other vendor products as well)
- Curated recipes for observability with AWS
This site is based on real world use cases that AWS and our customers have solved for.
Observability is at the heart of modern application development, and a critical consideration when operating distributed systems, such as microservices, or complex applications with many external integrations. We consider it to be a leading indicator of a healthy workload, and we are pleased to share our experiences with you here!