Monitoring vs Observability


這篇文章 討論關於 “Monitoring vs Observability” 的差異。

Observability 我把他想成是科學方法的 量測 (Measurement) 』,也就是健康檢查報告上的指標定義以及數據蒐集。健康檢查報告上的各項『指標』不是憑空捏造出來,而是透過各種實驗方法、理論分析,最後定義出數據與單位,反映出人體『健康』與否的依據。

系統的角度就是經過量測的數據與單位,才能被作為分析、決策用途,產生監控行為,也就是 Monitor、Alert、後續的自動化等。

量測的方法最簡單就是取樣 (Sampling),例如我在 淺談系統監控與 CloudWatch 的應用 提到 nginx connection 的 metric,資料來源就是透過另外開發的程式,定期取樣系統資料,例如每十秒採樣一次,最後統計出指標的圖表資訊,類似的還有系統的開檔數目 (ulimit)。

每一種應用程式都會有不同的指標,每種指標都要透過方法或者工具取樣,這個過程叫做 Observability,之後根據這些資訊所做的動作,都叫做 Monitoring or Controller

Observability in DevOps

我覺得系統就是要先量測 (Observe),就像是要知道一個人是否健康,健康報告要知道有哪一些指標。找指標是要透過科學方法與實驗的,是需要專業器材與工具量出數據、單位。系統要找出這些東西,從 Log、或 Sampling 產生。

有這些東西,才有所謂 Monitor -> 根據數據講故事,或者做判斷,這個判斷的動作叫做 Alert。有數據可以透過方法論 (ML/AI) 作出分析、甚至是決策,最後才會有 Actions ,也就是控制 (Controller)。

所以後來在 Ops 的 Pipeline 理,我都改用 Observability。

註:英文用詞後來從 Observation 改用 Observability or Observing

Amazon CloudWatch - Observability and Monitoring

這是我在做 CloudWatch 教育訓練時整理的 Slide,技術就是以 CloudWatch 為主,本質性就是在討論『監、控』

延伸閱讀

參考資料


Comments