Understanding Observability
Observability is a measure of how much you can infer the inner workings of a closed system through external information. This is a very wide definition. This includes, for example, knowing that a server is at least switched on because you receive a response code of some kind rather than a network error. A more purposeful example would be a "heartbeat" endpoint or page, often implemented and called regularly to check that a service is up and responding. This can help you diagnose simple issues, but it's unlikely to help with issues such as a database being intermittently available.
Observability in a software context is said to depend on three pillars: logs, metrics, and traces. We will discuss these in the subsequent sections.
Logs
Logs are system records of event occurrences such as the arrival of a request or completion of some process. This is the most easily and commonly introduced form of observability. They are often recorded in plaintext format—most software...