Monitoring Vs Observability

Monitoring Vs Observability

Further to my previous post this post makes an attempt to differentiate between observability and monitoring...

Observability and monitoring sound similar words however they are different paradigms. Let's understand both of them under different situations:

If a sub-module/component is not working a monitoring solution will help you identify the failure quickly and take corrective actions. In contrast, a good observability solution will help understand "why" the sub-module/component is not working.

With a good monitoring solution, you will understand when the problem occurred, and with an integrated observability solution, you can immediately focus on "why" the problem happened.

Monitoring helps with "when" and observability helps with the "why". On a side note check out this famous talk from @SimonSinek about the importance of "why".

how-to-find-the-why-of-your-business-story-golden-circle.webp

Another important difference is that monitoring requires you to know what’s important to monitor in advance. Observability lets you determine what’s important by watching how the system performs over time and asking relevant questions about it.

Monitoring requires "known unknowns" and it fails to address complex challenges of "unknown unknowns" of a distributed system.

A more technical definition of observability could be

"Observability is a measure of how well the system’s internal states can be inferred from knowledge of its external outputs."

I hope these examples would have created some contextual boundary between monitoring and observability. Monitoring and observability are distinct concepts that depend on each other.

The next post will discuss about the tools and techniques deployed to make a distributed system observable.