Observability
It would be prudent to start with a clear definition of observability. In other words, it means to be able to notice or discern something. Applied to our focus on software applications, we can be more specific about what we are discern and how we do so: to be able to measure the internal state of a system by its outputs.
In software systems, this is achieved through the enablement of what is commonly referred to as the three pillars of observability:
- Metrics: A series of measurements over time
- Logs: A record of messages describing noticeable events within a system
- Traces: A set of indicators throughout logs that connect a series of related events
At this point, it is worth addressing the critical commentary you will find on the three pillars of observability in more recent online publications. There are indeed some shortcomings of these pillars at a hyper-scale, and thought leaders are evolving beyond them to refine the quality and accuracy of...