互聯網企業中,隨着機器規模以及業務量的爆發式增加,監控數據逐漸成爲一種大數據,對監控大數據的分析,包括數據採集、數據緩存、數據聚合分析、數據存儲、數據展示等幾個階段。不一樣階段有不一樣的解決方案及支撐工具,而數據展示做爲最終的可視化手段,在整個監控大數據分析過程當中起着舉足輕重的做用,本文分享一下筆者基於Grafana的監控數據鑽取功能應用實踐,供感興趣的同行作參考。數據庫
Grafana做爲一個開源的數據分析展示平臺,其豐富的圖表、靈活的插件、多樣的數據源、快速華麗的展示,總讓作監控數據分析的人愛不釋手,歎爲觀止,能夠說「無Grafana,不監控展示」,關於Grafana的詳細介紹再也不贅述,本文重點探討下Grafana的鑽取功能。緩存
Grafana雖然能夠迅速展示各類監控時序數據,但當數據量比較大時,也會出現性能瓶頸,所以不宜用Grafana直接展示收集到的監控原始數據,而應對監控原始數據作聚合分析,將分析後的摘要數據存儲到時序數據庫中,將監控原始(詳細)數據存儲到NoSQL數據庫中,Grafana只展示監控摘要數據,經過鑽取功能,查看對應的監控詳細數據,從而加速數據展示並對監控數據進行溯源。工具
在Grafana的General標籤頁下內置了兩種鑽取功能:經過連接跳轉到另外一個面板(Type爲dashboard)或者跳轉到自定義的鑽取界面(Type爲absolute),爲了能更精確的控制鑽取聯查結果,咱們通常採用後者。其中Url即要跳轉到的頁面的連接,Title是這個連接的顯示名稱,Url params是傳遞給連接的靜態參數,也能夠設置一些動態參數,好比時間範圍(Include time range)、變量(Include variables)等,連接默認是在當前窗口打開的,也能夠設置在新的窗口打開(Open in new tab)。鑽取設置完畢,會在對應的Panel左上角顯示一個向上的鑽取箭頭,鼠標移動到鑽取箭頭上,會顯示前面定義的Title,點擊該Title,就跳轉到了自定義的鑽取詳情頁面。性能
鑽取詳情頁面,通常先經過列表的方式展示時序數據,推薦使用InfluxDB存儲監控時序數據,查詢InfluxDB中一段時間範圍的時序數據時,會涉及到分頁展示的問題,經過如下方式能夠對InfluxDB進行數據庫端分頁:大數據
1.查詢總條數插件
SELECT COUNT(某一個Filed列) FROM measurement WHERE 時間範圍blog
2.查詢指定頁指定條數flux
假設前臺傳過來的頁數字段是page,每頁條數字段是rows,那麼查詢指定頁指定條數能夠這樣寫:rem
SELECT time,Field列 FROM measurement WHERE 時間範圍 LIMIT rows OFFSET (page - 1)*rows數據分析
經過列表展示時序數據後,能夠繼續鑽取聯查存儲在HBase或ES中監控詳細數據,從而實現經過Grafana快速展示摘要數據,逐步穿透鑽取聯查詳細數據的效果。