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