在上一篇推文中,咱們使用時序數據庫 InfluxDb
作了流控數據存儲,可是數據存儲不是目的,分析監控預警纔是最終目標,那麼問題來了,如何更好的實現呢?用過阿里巴巴 Sentinel 控制檯的小夥伴,是否是以爲它的控制檯醜爆了,並且只有短短的五釐米,顯然不能知足大部分人或者場景的使用。git
Sentinel 控制檯 和 時序數據庫 Influxdb 的安裝方式前面已經聊過,這裏再也不贅述,簡單說下 Chronograf 展現控制檯的安裝方式,這裏推薦使用 Docker 安裝方式。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() - 1h GROUP BY time(1s)
SELECT SUM("successQps") AS "成功qps", SUM("blockQps") AS "限流qps" FROM "sentinel_log"."autogen"."sentinelInfo" WHERE time > now() - 12h GROUP BY resource
後期咱們在 Chronograf 中接入 Kapacitor ,Chronograf會自動打開該Configure Alert Endpoints部分,Kapacitor支持多個警報端點/事件處理程序。有興趣的小夥伴也能夠在 Sentinel 控制檯中根據流控數據進行更智能化的設置,好比根據限流失敗數以及機器指標動態調整流控規則。架構
有了她,小哥哥、小姐姐們不再用擔憂凌晨一點的鬧鐘了,是否是很爽?以上只是冰山一角,目前咱們上線的監控系統平臺,經過各類第三方組件庫(Telegraf、InfluxDB、Chronograf、Kapacitor、Grafana、Prometheus、Consul、Elasticsearch、Kibana
),接入了 1000 臺服務器實時監控,200個監控大屏,上千個監控指標,每日處理成噸的數據。是否是很吊!?我唧唧都佩服我本身的想象力。工具
https://gitee.com/52itstyle/sentinel-dashboardcode