阿里巴巴 Sentinel + InfluxDB + Chronograf 實(shí)現(xiàn)監(jiān)控大屏

前言
在上一篇推文中,我們使用時(shí)序數(shù)據(jù)庫 InfluxDb 做了流控?cái)?shù)據(jù)存儲(chǔ),但是數(shù)據(jù)存儲(chǔ)不是目的,分析監(jiān)控預(yù)警才是最終目標(biāo),那么問題來了,如何更好的實(shí)現(xiàn)呢?用過阿里巴巴 Sentinel 控制臺(tái)的小伙伴,是不是覺得它的控制臺(tái)丑爆了,而且只有短短的五厘米,顯然不能滿足大部分人或者場(chǎng)景的使用。
架構(gòu)

工具
- sentinel-dashboard(控制臺(tái),收集數(shù)據(jù))
- Influxdb(時(shí)序數(shù)據(jù)庫,存儲(chǔ)數(shù)據(jù))
- Chronograf (展示控制臺(tái),顯示數(shù)據(jù)并實(shí)現(xiàn)預(yù)警)
安裝
Sentinel 控制臺(tái) 和 時(shí)序數(shù)據(jù)庫 Influxdb 的安裝方式前面已經(jīng)聊過,這里不再贅述,簡(jiǎn)單說下 Chronograf 展示控制臺(tái)的安裝方式,這里推薦使用 Docker 安裝方式。
$ docker run -p 8888:8888 \ -v $PWD:/var/lib/chronograf \ chronograf
安裝成功以后,瀏覽器訪問 http://ip:8888 你應(yīng)該看到一個(gè)歡迎頁面:

然后,自行配置數(shù)據(jù)源,根據(jù)業(yè)務(wù)場(chǎng)景組裝監(jiān)控大屏。
大屏
這里根據(jù) Sentinel 限流組件采集的數(shù)據(jù),組裝了一個(gè)簡(jiǎn)單的監(jiān)控大屏,可以監(jiān)控歷史訪問總量、最近一小時(shí)的訪問量、限流數(shù)以及最近幾分鐘或者幾小時(shí)的訪問曲線等等,相比于阿里演示版是不是瞬間高大上的些許。

總訪問量
SELECT SUM("successQps") AS "總訪問量" FROM "sentinel_log"."autogen"."sentinelInfo"
最近一小時(shí)訪問量
SELECT SUM("successQps") AS "訪問量"
FROM "sentinel_log"."autogen"."sentinelInfo"
WHERE TIME > NOW() - 1h
最近一小時(shí)限流數(shù)
SELECT SUM("blockQps") AS "限流數(shù)"
FROM "sentinel_log"."autogen"."sentinelInfo"
WHERE time > now() - 1h
最近一小時(shí)異常數(shù)
SELECT SUM("exceptionQps") AS "異常數(shù)"
FROM "sentinel_log"."autogen"."sentinelInfo"
WHERE time > now() - 1h
最近一小時(shí)的訪問趨勢(shì)圖(秒級(jí)別)
SELECT SUM("successQps") AS "訪問量"
FROM "sentinel_log"."autogen"."sentinelInfo"
WHERE time > now() - 1h
GROUP BY time(1s)
最近12小時(shí)資源訪問排名
SELECT SUM("successQps") AS "成功qps", SUM("blockQps") AS "限流qps"
FROM "sentinel_log"."autogen"."sentinelInfo"
WHERE time > now() - 12h
GROUP BY resource
預(yù)警
后期我們?cè)?Chronograf 中接入 Kapacitor ,Chronograf會(huì)自動(dòng)打開該Configure Alert Endpoints部分,Kapacitor支持多個(gè)警報(bào)端點(diǎn)/事件處理程序。有興趣的小伙伴也可以在 Sentinel 控制臺(tái)中根據(jù)流控?cái)?shù)據(jù)進(jìn)行更智能化的設(shè)置,比如根據(jù)限流失敗數(shù)以及機(jī)器指標(biāo)動(dòng)態(tài)調(diào)整流控規(guī)則。
小結(jié)
有了她,小哥哥、小姐姐們?cè)僖膊挥脫?dān)心凌晨一點(diǎn)的鬧鐘了,是不是很爽?以上只是冰山一角,目前我們上線的監(jiān)控系統(tǒng)平臺(tái),通過各種第三方組件庫(Telegraf、InfluxDB、Chronograf、Kapacitor、Grafana、Prometheus、Consul、Elasticsearch、Kibana),接入了 1000 臺(tái)服務(wù)器實(shí)時(shí)監(jiān)控,200個(gè)監(jiān)控大屏,上千個(gè)監(jiān)控指標(biāo),每日處理成噸的數(shù)據(jù)。是不是很吊???我唧唧都佩服我自己的想象力。
源碼
https://gitee.com/52itstyle/sentinel-dashboard
參考
https://hub.docker.com/_/chronograf
總結(jié)
以上所述是小編給大家介紹的阿里巴巴 Sentinel + InfluxDB + Chronograf 實(shí)現(xiàn)監(jiān)控大屏,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
Java簡(jiǎn)單實(shí)現(xiàn)農(nóng)夫過河問題示例
這篇文章主要介紹了Java簡(jiǎn)單實(shí)現(xiàn)農(nóng)夫過河問題,簡(jiǎn)單描述了農(nóng)夫過河問題的概念、原理并結(jié)合簡(jiǎn)單實(shí)例形式分析了java解決農(nóng)夫過河問題的相關(guān)操作技巧,需要的朋友可以參考下2017-12-12
IDEA中創(chuàng)建maven項(xiàng)目引入相關(guān)依賴無法下載jar問題及解決方案
這篇文章主要介紹了IDEA中創(chuàng)建maven項(xiàng)目引入相關(guān)依賴無法下載jar問題及解決方案,本文通過圖文并茂的形式給大家分享解決方案,需要的朋友可以參考下2020-07-07
SpringCloud微服務(wù)剔除下線功能實(shí)現(xiàn)原理分析
SpringCloud是一種微服務(wù)的框架,利用它我們可以去做分布式服務(wù)開發(fā),這篇文章主要介紹了SpringCloud微服務(wù)剔除下線功能,需要的朋友可以參考下2022-11-11
帶你一文深入認(rèn)識(shí)Java?String類
這篇文章主要介紹了帶你一文深入認(rèn)識(shí)Java?String類,String 類在Java中是很常用的類,很重要的類,在后續(xù)的學(xué)習(xí)中經(jīng)常會(huì)用到,是后續(xù)學(xué)習(xí)的基礎(chǔ), 文章圍繞主題展開更多詳細(xì)內(nèi)容,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助2022-06-06
Java 中 String,StringBuffer 和 StringBuilder 的區(qū)別及用法
這篇文章主要介紹了Java 中 String,StringBuffer 和 StringBuilder 的區(qū)別及用法的相關(guān)資料,需要的朋友可以參考下2017-03-03
ANSI,Unicode,BMP,UTF等編碼概念實(shí)例講解
這篇文章主要介紹了ANSI,Unicode,BMP,UTF等編碼概念實(shí)例講解,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12

