1 Monitoring vs Observability
Monitoring and observability are related but distinct. Monitoring watches a system against a predefined set of checks and dashboards: you decide in advance what to measure (CPU, request rate, error count) and you get alerted when those known quantities cross a threshold. It answers questions you already knew to ask.
Observability is a property of a system: how well you can understand its internal state from its external outputs (its telemetry). A highly observable system lets you ask new questions you never anticipated, without shipping new code.
The classic framing is known-unknowns versus unknown-unknowns. Monitoring excels at known-unknowns: "I know disk could fill up, so I watch free space." Observability targets unknown-unknowns: the novel, surprising failure modes of complex distributed systems that you could not have predicted in advance.
They are not opposites. Monitoring is largely a subset of what an observable system enables: you still build dashboards and alerts, but on top of rich, high-cardinality telemetry that supports open-ended exploration.