簡介:監控最佳實踐--redis及業務接口
2020-12-04,客戶側redis集羣版監控DB0 CPU突增至100%,致使數據庫沒法正常服務,經排查客戶側業務上存在2M左右的大key致使DB0阻塞。而且客戶側使用的集羣鏈接方式爲默認proxy模式,以下圖所示,DB0阻塞致使其餘節點也沒法正常服務;處理辦法:客戶側配合切斷大key業務的高頻繁次調用,請求恢復。html
圖1:proxy模式node
這次問題致使客戶側課程報名入口嚴重受損,進而引起深度思考。在使用redis等產品方面的監控報警手段不夠完善,不夠仔細,而且後續再查看業務日誌發現錯誤率已經逐漸增多,直至redis層面表現出來才get到問題所在。針對這次redis的大key問題,給客戶提供了關於大key以及熱點key的分析辦法,並建議完善客戶側監控報警的可讀性以及業務日誌接口的錯誤告警。redis
redis集羣版雲監控指標以下表所示。數據庫
監控項 | 單位 | MetricName | Dimensions | Statistics |
---|---|---|---|---|
平均響應時間 | us | ShardingAvgRt | userId、instanceId、nodeId | Average、Maximum |
鏈接數使用率 | % | ShardingConnectionUsage | userId、instanceId、nodeId | Average、Maximum |
CPU使用率 | % | ShardingCpuUsage | userId、instanceId、nodeId | Average、Maximum |
命中率 | % | ShardingHitRate | userId、instanceId、nodeId | Average、Maximum |
入方向流量 | KByte/s | ShardingIntranetIn | userId、instanceId、nodeId | Average、Maximum |
流入帶寬使用率 | % | ShardingIntranetInRatio | userId、instanceId、nodeId | Average、Maximum |
出方向流量 | KByte/s | ShardingIntranetOut | userId、instanceId、nodeId | Average、Maximum |
流出帶寬使用率 | % | ShardingIntranetOutRatio | userId、instanceId、nodeId | Average、Maximum |
緩存內Key數量 | 個 | ShardingKeys | userId、instanceId、nodeId | Average、Maximum |
最大響應時間 | us | ShardingMaxRt | userId、instanceId、nodeId | Average、Maximum |
內存使用率 | % | ShardingMemoryUsage | userId、instanceId、nodeId | Average、Maximum |
QPS使用率 | % | ShardingQPSUsage | userId、instanceId、nodeId | Average、Maximum |
已用鏈接數 | 個 | ShardingUsedConnection | userId、instanceId、nodeId | Average、Maximum |
內存使用量 | Bytes | ShardingUsedMemory | userId、instanceId、nodeId | Average、Maximum、Sum |
平均每秒訪問次數 | 個 | ShardingUsedQPS | userId、instanceId、nodeId | Average、Maximum |
1.在控制檯選擇對應的實例,進行大key及Hot key分析處理。json
圖2:實例分析緩存
2.利用API接口進行分析大 key以及Hot key。阿里雲
緩存分析與熱點Key查詢可參考文後資料瞭解詳情[1]。spa
建立分組報警規則目前已更新至分組界面。日誌
圖3:建立應用分組htm
圖4:建立報警規則
圖5:設置報警規則
利用sls接入客戶端日誌,能夠經過設定規則創建儀表盤以及實現報警。此方案日誌接入採起logtail方式內網傳輸。
安裝logtail方法可參考文後資料[2]。
登陸日誌服務控制檯,依次建立對應地域的project及logstore。
圖6:project-logstore建立
這次客戶側日誌格式分別爲json、log4j。
選擇json文本日誌>選擇現有機器組>對應logtail配置
圖7:logtail配置
1.設置索引
對於多重json日誌,須要將字段類型更改成json。
圖8:設置索引
2.查詢分析
圖9:查詢分析
選擇正則文本日誌\>選擇現有機器組\>對應logtail配置
1.正則識別首行
圖10:設置自動生成
2.提取字段
圖11: 日誌提取字段
3.設置索引
注意:只對新寫入數據生效。
圖12:設置索引
4.查詢分析
圖13:查詢分析
圖14:儀表盤信息展現
在儀表右上側導航欄中單擊告警,在下拉菜單中選擇建立。
圖15:建立告警
圖16:告警內容設置
關於釘釘機器人的告警內容可參考文後模板[3]進行設置。
[1] 緩存分析與熱點Key查詢:https://help.aliyun.com/document\_detail/184226.html?spm=a2c4g.11186623.6.975.255f3635R5By1i
[2] 安裝Logtail(Linux系統):https://help.aliyun.com/document\_detail/28982.html?spm=a2c4g.11186623.2.5.31a09d7cBfTtvl
[3] 釘釘機器人告警模板:https://help.aliyun.com/document\_detail/91785.html?spm=5176.2020520112.0.dexternal.62b334c0S2Jxx2
咱們是阿里雲智能全球技術服務-SRE團隊,咱們致力成爲一個以技術爲基礎、面向服務、保障業務系統高可用的工程師團隊;提供專業、體系化的SRE服務,幫助廣大客戶更好地使用雲、基於雲構建更加穩定可靠的業務系統,提高業務穩定性。咱們指望可以分享更多幫助企業客戶上雲、用好雲,讓客戶雲上業務運行更加穩定可靠的技術,您可用釘釘掃描下方二維碼,加入阿里雲SRE技術學院釘釘圈子,和更多雲上人交流關於雲平臺的那些事。
本文內容由阿里雲實名註冊用戶自發貢獻,版權歸原做者全部,阿里雲開發者社區不擁有其著做權,亦不承擔相應法律責任。具體規則請查看《阿里雲開發者社區用戶服務協議》和《阿里雲開發者社區知識產權保護指引》。若是您發現本社區中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區將馬上刪除涉嫌侵權內容。