java时序图工具_基于时序数据库,实现百亿级话单实时全景监控分析
背景
隨著流量業(yè)務的高速發(fā)展以及已經到來的5G時代,業(yè)務支撐系統(tǒng)的規(guī)模不斷增大、服務不斷增多,業(yè)務、應用和系統(tǒng)運行性能指標數(shù)據(jù)持續(xù)以指數(shù)級的速度增長,每日計費話單量已突破百億。系統(tǒng)監(jiān)控的實時性、準確性的能力不足成為運維工作的瓶頸。
江蘇移動IT運維團隊以SRE理念為指導,結合實時監(jiān)控“高并發(fā)寫入”、“低查詢延時,高查詢并發(fā)”、“輕量級存儲”等實際訴求,深入研究時序數(shù)據(jù)庫的特性和適用程度,打造符合自身系統(tǒng)運維特點的性能管理平臺,實現(xiàn)百億級話單處理過程的實時全景監(jiān)控分析。
時序庫選型
目前市場較流行的時序數(shù)據(jù)庫產品有Prometheus、Graphite、InfluxDB、OpenTSDB等,我們比對了這些產品的使用范圍、優(yōu)缺點。通過比較,我們發(fā)現(xiàn)Prometheus最適合搭建BOSS運維監(jiān)控系統(tǒng)。單個的Prometheus實例就能實現(xiàn)每秒上百萬的采樣,同時支持對于采集數(shù)據(jù)的快速查詢。Prometheus對于采樣數(shù)據(jù)進行壓縮存儲,16字節(jié)的采樣數(shù)據(jù)平均只需要1.37個字節(jié)的存儲空間,極大減少了存儲資源占用。查詢實時數(shù)據(jù)時,磁盤I/O平均負載小于1%。
性能管理平臺架構設計
本方案中運維人員以Prometheus時序庫為中心,實現(xiàn)與應用相關的所有實時監(jiān)控數(shù)據(jù)的采集、清洗、存儲,并實時展現(xiàn)系統(tǒng)總體和各環(huán)節(jié)、各獨立應用處理性能、趨勢性的預測和智能分析,準確掌握系統(tǒng)運行健康度。
圖1 系統(tǒng)架構1、根據(jù)業(yè)務系統(tǒng)的部署,我們在雙中心各部署一套Prometheus集群。
2、對于系統(tǒng)、應用日志、Java應用我們采用拉取方式采集指標數(shù)據(jù);對于應用、業(yè)務、組件的性能指標數(shù)據(jù)采用推送網關(pushgateway)暫存數(shù)據(jù),然后再由Prometheus拉取的方式采集。
3、為保證實時采集和查詢的高性能,采集prometheus時序庫中保存短期內較近數(shù)據(jù),同時寫入一份到遠程的歷史時序庫中。
4、可視化展示和實時告警通過負載均衡從prometheus和歷史庫中采集數(shù)據(jù)。
適配性改造
在部署和使用過程中我們發(fā)現(xiàn)原生Prometheus存在一些不足,為此我們進行了一些適配改造工作。
1、夯實高可用能力:原生的Prometheus部署都是單點的,不足以保證數(shù)據(jù)可用性,為此我們通過服務注冊的方式實現(xiàn)了Prometheus的高可用性。集群啟動時每個節(jié)點都嘗試獲取鎖,獲取成功的節(jié)點成為主節(jié)點執(zhí)行任務,若主節(jié)點宕機,從節(jié)點獲取鎖成為主節(jié)點并接管服務。
圖2?高可用能力實現(xiàn)方式2、優(yōu)化數(shù)據(jù)存儲方式:在Prometheus節(jié)點上保存短周期數(shù)據(jù)用于告警實時觸發(fā)和展現(xiàn),引入InfluxDB用于實時傳輸并保存長周期的歷史數(shù)據(jù),保證采集數(shù)據(jù)的連續(xù)性并為后續(xù)數(shù)據(jù)挖掘提供資源支撐。
3、自研改造推送網關組件:在實際使用過程中我們發(fā)現(xiàn)推送網關(pushgateway)中的數(shù)據(jù)有較大概率被重復采集到Prometheus中,容易產生錯誤的性能數(shù)據(jù)和誤告警。為此我們在Prometheus的采集方法中增加從pushgateway拉取數(shù)據(jù)后主動刪除數(shù)據(jù)的保障機制,確保數(shù)據(jù)采集的唯一性。
4、拓展集成數(shù)據(jù)展示方式:性能數(shù)據(jù)可視化展示原先采用Grafana原生組件,但是使用過程中發(fā)現(xiàn)插件配置靈活性不足,難以展現(xiàn)多種形式關聯(lián)指標數(shù)據(jù)的情形。因此我們自研了可視化工具,實現(xiàn)涵蓋系統(tǒng)、應用、業(yè)務性能等多維度指標的個性化展示,實時掌控系統(tǒng)健康狀態(tài)。
5、更改時區(qū):原生的Prometheus查詢指標時頁面顯示的指標趨勢圖是根據(jù)GMT時間顯示的,與北京時間相差8小時,為此我們將源碼中獲取時間的方式修改成從本地系統(tǒng)時間獲取,成功解決了該問題。
指標采集范圍
結合實際運維場景及需求,整體指標采集分為兩個方面,性能指標和業(yè)務指標:
指標類別 | 指標采集范圍 |
性能指標 |
|
業(yè)務指標 |
|
實時展示
通過對各類指標數(shù)據(jù)加工匯聚,生成BOSS系統(tǒng)健康度統(tǒng)一視圖, 涵蓋各應用性能、業(yè)務量、各類服務調用量及響應時間等,可以靈活通過多種維度實時展示指標數(shù)據(jù),支持下鉆到具體應用、具體進程性能指標,快速實時掌握第一手運維監(jiān)控數(shù)據(jù),實現(xiàn)“運維監(jiān)控一張圖”,大幅提升系統(tǒng)監(jiān)控和分析效率,有效節(jié)約運維人力資源。圖3 實時全景視圖
趨勢預測及異常檢測
海量的性能時序數(shù)據(jù)是運維的寶貴數(shù)據(jù)資產沉淀,對基礎數(shù)據(jù)進行有效的建模分析和規(guī)劃,輔以合理的算法學習,實現(xiàn)部分場景的智能化分析和監(jiān)測,將大幅提升運維效能,目前已應用于以下運維場景:1、性能預測:通過對應用處理速度的實時監(jiān)控、歷史數(shù)據(jù)比對分析,自動計算應用處理最大速度,實時準確預測完成待處理話單所需時間。
2、業(yè)務趨勢預測:通過對時序庫中存儲大量系統(tǒng)和業(yè)務指標數(shù)據(jù)按天、周、月維度進行平均、加權序時平均、移動平均、加權移動平均、特列統(tǒng)計等分析,預測未來話單處理趨勢、系統(tǒng)資源利用趨勢,為系統(tǒng)容量管理提供合理依據(jù)。
3、異常檢測:通過對數(shù)據(jù)進行環(huán)比分析、同比分析、均值變化分析、相同時間窗口內數(shù)據(jù)的均值和標準差分析、局部數(shù)據(jù)波動分析、周期性特征分析等算法及時發(fā)現(xiàn)業(yè)務處理異常。
圖4 性能預測場景示意
總結與展望
目前性能管理平臺能滿足每秒10萬級的監(jiān)控指標入庫,支撐百億級話單處理過程的實時監(jiān)控。可通過對這些海量數(shù)據(jù)的分析,實現(xiàn)容量、性能、故障的精準定位和預測,并前置性地做好應對措施以規(guī)避問題的產生和蔓延。
該性能平臺已成功應用在BOSS系統(tǒng),未來將進一步總結經驗并持續(xù)改進提升,陸續(xù)向其他業(yè)務支撐領域和管信領域進行推廣。
總結
以上是生活随笔為你收集整理的java时序图工具_基于时序数据库,实现百亿级话单实时全景监控分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java常见关键字解析
- 下一篇: jquery导入数据_Web技术——简单