What is Monitoring?
我很習慣追尋字面上意思的本質問題,『監控』一詞是我這幾年追得很緊的詞,索性就深入分析其意義。
Updated 2023/07/19: 本文收錄在個人著作 《SRE 實踐與開發平台指南》 - 2023/08 上市
生活中的『監、控』 (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
延伸閱讀
- Monitoring vs Observability
- 淺談系統監控與 CloudWatch 的應用 - AWS User Group Taiwan
- AWS Certified SysOps Administrator - Associate 準備心得
- What is Ops?
- 自動化 XXX 的陷阱
- 思考本質、實踐、想像力、教育
- Software Development Lifecycle
- 看板導入 - 軟體開發與維運
- 警急事件 (Emergency Response)
- What is Automation?
- Ops as Code using Serverless
- 個人著作《SRE 實踐與開發平台指南》 (2023/08 上市)
參考資料
- SRE - Ch12 Effective Troubleshooting
- Automatic Control#Open-loop and closed-loop (feedback) control
- AWS Summit Series 2016: Big Data Architectural Patterns and Best Practices on AWS
- Process control
- 系統思考