IPLOOK 核心網(wǎng)產(chǎn)品除了通過核心網(wǎng)網(wǎng)管中心這種方式進行性能采集和統(tǒng)計分析。還支持使用Prometheus+Grafana的方案進行性能采集和統(tǒng)計分析。下面讓我們看看Prometheus+Grafana究竟如何和IPLOOK核心網(wǎng)一起翩翩起舞!
什么是Prometheus?
Prometheus是由SoundCloud開發(fā)的開源監(jiān)控報警系統(tǒng)和時序列數(shù)據(jù)庫(TSDB)。Prometheus使用Go語言開發(fā),是Google BorgMon監(jiān)控系統(tǒng)的開源版本。
2016年由Google發(fā)起Linux基金會旗下的原生云基金會(Cloud Native Computing Foundation), 將Prometheus納入其下第二大開源項目。
Prometheus目前在開源社區(qū)相當活躍。
Prometheus和Heapster(Heapster是K8S的一個子項目,用于獲取集群的性能數(shù)據(jù)。)相比功能更完善、更全面。Prometheus性能也足夠支撐上萬臺規(guī)模的集群。
圖 1 Prometheus架構(gòu)
Prometheus有哪些特點?
⇒ 多維度數(shù)據(jù)模型。
⇒ 靈活的查詢語言。
⇒ 不依賴分布式存儲,單個服務器節(jié)點是自主的。
⇒ 通過基于HTTP的pull方式采集時序數(shù)據(jù)。
⇒ 可以通過中間網(wǎng)關(guān)進行時序列數(shù)據(jù)推送。
⇒ 通過服務發(fā)現(xiàn)或者靜態(tài)配置來發(fā)現(xiàn)目標服務對象。
⇒ 支持多種多樣的圖表和界面展示,比如Grafana等。
Grafana簡介
Grafana是一個開源的度量分析與可視化套件。純 Javascript 開發(fā)的前端工具,通過訪問庫(如InfluxDB),展示自定義報表、顯示圖表等。大多使用在時序數(shù)據(jù)的監(jiān)控方面,如同Kibana類似。Grafana的UI更加靈活,有豐富的插件,功能強大。
Grafana支持許多不同的數(shù)據(jù)源。每個數(shù)據(jù)源都有一個特定的查詢編輯器,該編輯器定制的特性和功能是公開的特定數(shù)據(jù)來源。
官方支持以下數(shù)據(jù)源:
圖 2 Grafana 頁面展示
IPLOOK 這套方案是怎么工作呢?
圖 3 方案架構(gòu)
這套方案適用于目前IPLOOK開發(fā)的所有EPC以及5GC的網(wǎng)元產(chǎn)品。
在這套方案中,我們的網(wǎng)元相當于 Prometheus 的一個 client 端,在 PrometheusServer 端配置需要抓取數(shù)據(jù)的目標網(wǎng)元IP跟端口,以及抓取數(shù)據(jù)的間隔時間,就能定時從各網(wǎng)元中按照規(guī)定的格式抓取各項KPI數(shù)據(jù),在拿到數(shù)據(jù)后,按照時間存儲到TSDB數(shù)據(jù)庫中。
圖 4 Node Exporter統(tǒng)計的數(shù)據(jù)
以MME模板數(shù)據(jù)展示
圖5 4G NAS移動性管理流程
圖6 服務請求/尋呼流程
圖7 附著/去附著
圖8 跟蹤區(qū)更新流程
圖9 會話相關(guān)流程
使用這套方案有哪些優(yōu)點?
1.減少開發(fā)的周期。在以前的PM統(tǒng)計都是使用我們自己開發(fā)的系統(tǒng),從設(shè)計到整個項目代碼的編寫耗費了大量的時間,在使用這一套框架后我們可以極大縮短開發(fā)周期,而且這套系統(tǒng)十分穩(wěn)定。
2.更便捷的數(shù)據(jù)維護。在這套方案中,所有的PM數(shù)據(jù)都會放到PrometheusServer中進行存儲,使用PromQL語句可以對數(shù)據(jù)進行一些相加、相減、求平均值等操作,我們的網(wǎng)元只需要把數(shù)據(jù)傳送到PrometheusServer中,而且可以讀歷史數(shù)據(jù)進行導入跟導出。
3.擁有酷炫的UI。Granfana提供多種多樣的圖表供開發(fā)者選擇,可以根據(jù)個人喜好設(shè)計出非常漂亮的圖表。而且這些制作出來的模板可以進行導出分享。