聊聊什么是監控系統之后續
本文轉載自微信公眾號「虞大膽的嘰嘰喳喳」,作者 虞大膽 。轉載本文請聯系虞大膽的嘰嘰喳喳公眾號。
什么是指標
傳統監控系統認為指標是附屬物,但指標實際上用來反映環境的狀態、可用性、性能。
指標是軟件或硬件組件屬性度量,為了讓指標有價值,我們會跟蹤其狀態,通常就是記錄一段時間內的數據點,數據點包含值、時間戳、其他一些屬性,數據點的集合就是時間序列。
以固定時間(顆粒度)間隔收集數據,顆粒度越大就容易錯過細節,時間序列是這些數據點按時間順序排列的集合。
1:指標類型
- 測量型,這種類型是上下增減的數字,比如CPU負載。
- 計數型,這種類型隨著時間增加而不會減少的數字,比如uptime運行時間。
- 直方圖,數據分組,比如某個桶中的數值大小。
2:指標聚合
指標有的時候需要經過一些數學轉換,通常指標聚合在一起才有意義,更能識別趨勢,比如單臺web流量下降的趨勢比不上所有web流量的下降幅度。
(1)平均值
平均值不能反映真實情況,比如高峰和低谷會被平均值掩蓋。
(2)中間數
中間數處在所有數值的正中心,50%的數值位于它前面,而另外50%位于它后面。它的缺點和平均值一樣,不能反映真實情況。
(3)標準差
用于衡量數據集的變化或分布,標準差為0表示大部分數據接近平均值,標準差越大表示數據越分散。
正態分布也稱之為經驗法則,但如果數據不是正態分布,最終的標準差可能會誤導你。
(4)百分數
這個最有意義,比如99% API響應時間小于100毫秒,代表整體性能不錯,而我們要解決的就是剩余的1%。
監控方法論
1:USE:側重于主機監控
概括為每個資源(比如CPU),檢查使用率(資源忙于工作的平均時間,一般是百分比)、飽和度(資源排隊工作的指標,無法再處理額外的工作,通用用隊列長度表示)、錯誤(資源錯誤時間的計數)。
2:Google四個黃金指標
專注于應用程序級的監控。
- 延遲,服務請求花費的時間
- 流量,比如QPS
- 錯誤,請求失敗的速率
- 飽和度,應用程序受限的資源(比如IO)
每個指標都可用于監控,延遲大報警,QPS超過閾值報警,錯誤率太高報警,受限的資源越高報警。
警報和通知
警報在達到閾值時會觸發,但觸發不代表通知,所以這是兩個過程。
警報在于準確,否則就沒有意義了,同時報警信息也要有上下文(此時知道應該干些什么了),考慮:
- 那些問題需要通知
- 誰需要被告之
- 如何告之
- 多久告之一次
- 何時停止告之以及何時升級到其他人
可視化
數據可視化是一門非常強大的分析和解釋技術,也是一種牛逼的學習工具。
- 清晰地顯示數據
- 引發思考
- 避免數據扭曲
- 使數據集保持一致
- 允許更改顆粒度而不影響理解