Observability is the ability for a system to provide data into the behavior of systems, along with the context with which to analyze that data. Highly observable systems enable engineers to troubleshoot and debug unknown issues that were not predicted in advance. Observable systems correlate multiple different sources of data: logs, metrics, traces, software commits into a useful context that can be used for debugging.
As cloud-native applications grow in complexity, more "unknown unknown" issues arise. The process of instrumenting code and attempting to reproduce bugs seen in production is tedious and frequently results in failure. Thus, architecting observability directly into systems and applications is crucial to ensure that issues can be debugged.