天天看點

如何監控業務的響應速度?Cloud Insight SDK 實踐分享

一直在說 cloud insight 是資料聚合平台,可以用 sdk 和 api 實作業務監控,如今不拿出點實踐人們恐怕是不能信服。那今天本文就先簡單介紹一下 sdk 可以應用在哪些方面,再舉個真實使用者場景來讓大家看看。

首先說一點,通過 sdk 你可以把你想看的任何資料都接在 cloud insight 平台上,例如營運可以把涉及到的使用者資料放上去,讓開發,運維,boss 随時都可以看到自己産品的使用者,如果涉及到多個層次的名額資料(日活,增長,轉化,留存。。。)都有相應的簡單操作;開發可以把自己 build 代碼的次數,送出的次數放上去;銷售也可以把使用者簽單數,簽單額放上去(如果允許的話啊);運維就更不用說了,所有伺服器監控名額都可以放上來。

下面介紹一個業務場景的監控,本執行個體來自真實使用者場景。

監控可用性和響應速度,營運的需求要求每次接口響應控制在0.1-0.5s内。如果超出這個時間就要找到問題,進行優化。

在後端添加 serverid 和處理時間并放到 http header 中,通過 curl 去獲得後端資訊和處理時間,采樣後生成報表。

後來改成通過 nginx 記錄 upstream 的 response time,采樣生成可視化資料。但由于 nginx 日志分布于不同的機器中,收集資料相對來講還是比較麻煩的。

通過 cloud insight sdk 采集資料,通過探針發送這些資料到後端伺服器,後端伺服器對資料進行處理,進行展示。

真正操作起來很簡單,安裝 ci 探針,安裝 python sdk,編輯代碼,調用系統指令,擷取 nginx,php 的響應時間,從幾個響應時間中取最大值傳到 cloud insight 伺服器,探針預設 30s 抓取一次資料,但我們又想每秒統計三次響應最慢的請求,是以寫一個定時執行這個指令的腳本。

部署好後,可以在自定義資料儀表盤上看到應用資料。把這些自定義資料放在一張儀表盤上,後期可以直接打開這個自定義儀表盤來檢視 php 的響應情況,即使是多個不同伺服器中的 nginx 消息也都可以放在一張圖表上,效果如下圖:

如何監控業務的響應速度?Cloud Insight SDK 實踐分享

這樣儀表盤是配置完了,其實還可以設定報警政策,在一些名額超出範圍時觸發報警。

依照平時使用習慣,進入監控界面,首先第一眼就是各個平台概覽,看看是不是都在正常運作,正常情況下圖示都應該是綠色的,如果變成紅色了就點進去看看,上面會有相應報錯。

上述平台如果沒有問題,就進入儀表盤頁面,首先左面是自定義儀表盤,在這就可以檢視之前配置的 php 的響應情況,右面是平台儀表盤,一般你系統監控上什麼就會自動出現相應的元件資訊。

如何監控業務的響應速度?Cloud Insight SDK 實踐分享

點選檢視業務資料的儀表盤,發現了一個 php 響應時間達到 5s 的異常紀錄,檢視 ai(application insight) 的 web 事務(web 事務預設會抓取響應超過 2s 的事務),果然發現一個異常緩慢的事務,通過分析(代碼級監控)确認問題,解決問題。

sdk 是 cloud insight 團隊根據 statsd 進行了修改,友善使用者上傳自定義名額,目前支援的資料格式有 counters gauges 2種,支援的語言有 python ruby nodejs 3 種,其他的 java php 還在開發中。目前使用 sdk 的前提條件為需要安裝 cloud insight agent。agent 的采集周期為 30 s,資料發送周期為 15 s。

我們還将提供 cloud insight api,它擁有更加強大的功能,通過它可以不受任何限制的發送符合 cloud insight 資料格式标準的任意資料,無論本機是否安裝了 cloud insight agent,目前在開發中。

監控伺服器,簡單,一鍵安裝

監控資料庫等元件,簡單,修改配置檔案,重新開機探針

監控業務資料,依舊簡單,使用 sdk

簡單列幾個有意思的 sdk 監控應用:

監控北京空氣品質 監控不同地區 pm2.5

監控閉路電視的硬碟空間 github 上有項目

使用 cloud insight sdk 實作 druid 監控 實作大資料監控

參考文檔:

使用oneapm ci sdk實作業務響應速度監控