首頁>技術>

前言

在上一篇推文中,我們使用時序資料庫 InfluxDb 做了流控資料儲存,但是資料儲存不是目的,分析監控預警才是最終目標,那麼問題來了,如何更好的實現呢?用過阿里巴巴 Sentinel 控制檯的小夥伴,是不是覺得它的控制檯醜爆了,而且只有短短的五釐米,顯然不能滿足大部分人或者場景的使用。

架構

工具sentinel-dashboard(控制檯,收集資料)Influxdb(時序資料庫,儲存資料)Chronograf (展示控制檯,顯示資料並實現預警)安裝

Sentinel 控制檯 和 時序資料庫 Influxdb 的安裝方式前面已經聊過,這裡不再贅述,簡單說下 Chronograf 展示控制檯的安裝方式,這裡推薦使用 Docker 安裝方式。

$ docker run -p 8888:8888 \\ -v $PWD:/var/lib/chronograf \\ chronograf

安裝成功以後,瀏覽器訪問 http://ip:8888 你應該看到一個歡迎頁面:

然後,自行配置資料來源,根據業務場景組裝監控大屏。

大屏

這裡根據 Sentinel 限流元件採集的資料,組裝了一個簡單的監控大屏,可以監控歷史訪問總量、最近一小時的訪問量、限流數以及最近幾分鐘或者幾小時的訪問曲線等等,相比於阿里演示版是不是瞬間高大上的些許。

總訪問量
SELECT SUM("successQps") AS "總訪問量" FROM "sentinel_log"."autogen"."sentinelInfo"

最近一小時訪問量

SELECT SUM("successQps") AS "訪問量"FROM "sentinel_log"."autogen"."sentinelInfo"WHERE TIME > NOW() - 1h

最近一小時限流數

SELECT SUM("blockQps") AS "限流數"FROM "sentinel_log"."autogen"."sentinelInfo"WHERE time > now() - 1h

最近一小時異常數

SELECT SUM("exceptionQps") AS "異常數"FROM "sentinel_log"."autogen"."sentinelInfo"WHERE time > now() - 1h

最近一小時的訪問趨勢圖(秒級別)

SELECT SUM("successQps") AS "訪問量"FROM "sentinel_log"."autogen"."sentinelInfo"WHERE time > now() - 1hGROUP BY time(1s)

最近12小時資源訪問排名

SELECT SUM("successQps") AS "成功qps", SUM("blockQps") AS "限流qps"FROM "sentinel_log"."autogen"."sentinelInfo"WHERE time > now() - 12hGROUP BY resource
預警

後期我們在 Chronograf 中接入 Kapacitor ,Chronograf會自動開啟該Configure Alert Endpoints部分,Kapacitor支援多個警報端點/事件處理程式。有興趣的小夥伴也可以在 Sentinel 控制檯中根據流控資料進行更智慧化的設定,比如根據限流失敗數以及機器指標動態調整流控規則。

最新評論
  • 1 #

    在上一篇推文中,我們使用時序資料庫 InfluxDb 做了流控資料儲存?沒找到這篇文章呢?

  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • fastjson又被發現漏洞,這次危害可導致服務癱瘓