What is Monitoring?


我很習慣追尋字面上意思的本質問題,『監控』一詞是我這幾年追得很緊的詞,索性就深入分析其意義。

生活中的『監、控』 (updated 2018/07/10)

颱風來之前,要知道颱風狀況,氣象局要先蒐集來自 量測 的資訊,量測則要有相關設備、技術、部署量測站,包含風速、雨量、氣壓 … 等。有了量測資料,最後這些資料會蒐集到氣象局的電腦,經過運算、整理,最後呈現出 觀測 資訊,也就是 衛星雲圖。有了量測資訊、提供了觀測的衛星雲圖,才有指標、或者依據時間趨勢,才有所謂 預測

如下圖是 2018/07/10 的颱風衛星雲圖:

下圖是 2018/07/11 的風力預測:

依據上述衛星雲圖、預測資訊,所以理性的來說:2018/07/11 未達到上班標準

套用在軟體系統,就是要先有 Log、經過蒐集、儲存、分析,最後呈現出圖表。有了指標 指標 (Metric),就可以依照狀況設定 臨界值 (Threshold),然後超過就可以有 Actions

套用颱風的情境就是:

  • 指標 (Metric):暴風級數
  • 臨界值 (Threshold):10 級
  • 動作 (Action):停止上班上課

政府根據指標、臨界值做決策,也就是 Action 要怎麼做。

有趣的事:2018/07/10 新北市、台北市是不同調的 XDD

中文的 監、控 我認為是 Observability + Monitoring,底下是更細目的說文解字,還有技術的實踐。

『監、控』說文解字

『監控』兩個字的意義在 淺談系統監控與 CloudWatch 的應用 有過介紹,這個筆記只是說得更細而已,請參閱以下的 Slide:

監控的實踐技術:Amazon CloudWatch

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

CloudWatch 的概念是把監控對象當作黑箱,透過 Log 的資訊觀測系統狀況。

使用 Log 監控跟 APM 的差異

  • Log 監控像是 (CloudWatch) 是把監控對象用 黑箱 策略分析,產生指標、圖表、預警。
  • APM (Application Performance Management) 是把監控對象用 白箱 的策略來做,直接在應用程式塞入 Inspector 擷取 Runtime 的資訊。有點像是在 IDE 做 上 Step-in/out、查看記憶體、Process 等狀態。

APM 的實踐技術:

  • AWS 有 X-Ray
  • Azure 有 Application Insight

延伸閱讀

參考資料


Comments