每個運維監控工具,一般要追蹤數十萬個內部效能指標。學會對哪些事件進行告警以及監控確實需要花費想當長的一段時間。因為,並非所有的指標等級都是一致。因此我們需要摸索出一套簡單的方法,便於管理所有指標,而且簡單易學。以下為我們總結的 datadog 的一些實踐經驗。
首先我們應該了解我們為什麼你要花費心力實現更好的監控? 以下三點為總結的監控目標:
在客戶及老闆覺察之前發現問題
了解系統以及應用的執行狀況
盡可能降低你的壓力水平
在了解目標後,應該清楚各個指標的種類。如你的監控工具追蹤了哪些指標 ? 常見的指標有:cpu 使用量,記憶體使用量,資料庫或 web 請求。指標的種類多種多樣,但是所有指標都可歸入基本的兩大類:工作指標以及資源指標。
工作指標
一般來說工作指標有兩大類:
工作指標測量系統或應用生產的有價值的事物的量。例如,資料庫每秒返回的查詢數量,web 伺服器每秒傳送的網頁數量。因為,資料庫的主要功能在於返回查詢結果,web 伺服器則在於為網頁提供服務。
應用帶來的經濟效益,比如收入。這種指標可以直觀地追蹤應用以及基礎架構的可用性,便於了解其執行效率,因此更加有用。
資源指標
資源是用於生產價值所消耗的事物。因此,資源指標用於測量完成某項工作、生產某些內容所消耗的事物的量。
對於記憶體,磁碟,網頁頻寬等資源的提問也是如此。通常,資源指標會用於容量規劃,而非可用性管理。你若是問「資料庫使用了多少 cpu ?」,這種問題往往無益於判定應用的效用。因為一般的回答是:「 我有足夠的 cpu 」,或者 「 我的 cpu 使用量已經到達極限了 」。
了解了工作指標與資源指標之後,我們可以進一步討論最佳實踐方案。
1.將關鍵指標分為工作或資源指標
審視關鍵指標,尤其是那些是你真正在意的指標。再將它們歸類為工作指標或資源指標。
2.僅為工作指標設定告警
分類完成之後(請務必花時間進行分類,這很重要),你需要確定為哪些指標設定告警。事實上,你應該僅為工作指標設定告警。換言之,你應該為測量系統可用程度的指標設定告警。
不過,給指示應用宕機的首要資源指標設定告警也很有益。比如,磁碟空間是一種資源指標。然而,如果磁碟空間耗盡了,整個應用就無法運轉,因此,為這類指標設定告警也很重要。但是,總體而言,為資源指標設定告警的情況非常罕見。
3.僅為可操作的工作指標設定告警
無法操作的工作指標可以是 web 伺服器每秒服務的 404 頁面數量。該指標之所以無法操作,是因為其完全取決於訪客的行為。如果他們訪問許多不存在的 url,那麼肯定會生成許多 404 頁面。這並不是說**效能不好,而是訪客的行為超出了預期。因此,你不應該為不可操作的工作指標設定告警。例如,對於 web 伺服器而已,可操作的工作指標可以是每秒內無錯誤服務的網頁數量。這之所以是可操作的工作指標,是因為如果 web 伺服器服務的網頁數量為零,**肯定不再執行,而是宕機了。這時候,你必須採取行動了。
4.定期回顧檢查指標與告警
第四點,也可能是最難堅持的一點,是定期地回顧並檢查指標與告警。你可以一周一次,兩周一次,或者乙個月一次,但請一定要在繁忙的任務表中劃出一些時間,與團隊一起進行回顧。
現在,讓我們將這些最佳實踐與前文提到的監控目標結合起來。請注意:將關鍵指標分類為工作指標或資源指標是一切的前提。
1. 在客戶及老闆覺察之前發現問題
僅為工作指標設定告警,可以避免一些無用的告警,從而達到更好的監控結果。
2. 盡可能降低你的壓力水平
僅為可操作的工作指標設定告警,因為你不打算獲得無法控制的告警資訊。
3. 了解系統以及應用的執行狀況
定期回顧並檢查指標與告警,可以對系統的執行狀況與效能趨勢有更深刻的感知,從而方便效能調優。
本文** oneapm 官方部落格
從《迴圈的代價》中學到的
最近在看 演算法競賽入門經典 書中提到迴圈的兩大常見問題,並提出一些建議。第一是算術運算溢位的問題,尤其是n很大而且都是做的乘法的時候。最常見的現象是輸出負值,每步printf也能觀察到。如果換資料型別仍解決不了的話,可能得改演算法了。書中的例子是對最終的取餘 運算作轉化。要計算只包含加法 減法和乘...
我從程式設計面試中學到的
為了實習生職位和全職工作,我做過很多次的面試。當我還在大學主修電腦科學時,學校每個秋季學期都有招聘會,第一輪招聘會在校園裡舉行。我在第一和最後一輪都搞砸過。不過,每次面試後,我都會反思哪些方面我能做的更好,我還會和朋友們做模擬面試,這樣我就能從他們那兒得到更多的面試反饋。不管我們怎麼樣找工作 工作中...
從兩個團隊中學到的
因為面對的是兩個開發專案,做的時間長了,很容易對這兩個開發團隊的流程優劣有個比較。團隊a 大專案,人手充足,開發人員能力跨度從高到低分布均勻,流程較規範,pm很有經驗,比較善於和客戶溝通以及爭取時間。缺點是 的介面容易出現責任模糊的問 題。由於人員互相之間對於別人的流程完全不清楚,一旦出現人手不夠需...