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