關(guān)于Prometheus

Prometheus是一套開源的監(jiān)控系統(tǒng),它將所有信息都存儲為時間序列數(shù)據(jù);因此實現(xiàn)一種Profiling監(jiān)控方式,實時分析系統(tǒng)運行的狀態(tài)、執(zhí)行時間、調(diào)用次數(shù)等,以找到系統(tǒng)的熱點,為性能優(yōu)化提供依據(jù)。

監(jiān)控方式

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計算培訓(xùn),高端軟件開發(fā)培訓(xùn),項目經(jīng)理培訓(xùn)

程序代碼收集運行數(shù)據(jù)寫入到redis,通過API接口開放給Prometheus,Prometheus定時去抓取接口上的數(shù)據(jù),形成時間系數(shù)據(jù)存入到本地。同時通過promql與開放接口可視化數(shù)據(jù)到前端。

 

一、采集運行數(shù)據(jù)寫入到redis

在采集數(shù)據(jù)之前,先要明白Prometheus所支持的幾種數(shù)據(jù)類型

 

Counter,統(tǒng)計類數(shù)據(jù)

Counter作為一種計數(shù)類數(shù)據(jù)類型,常用于接口調(diào)用次數(shù)、請求總數(shù)、當(dāng)前在線人數(shù)等等

 

Gauge,記錄對象或許事物的瞬時值

Gauge是最簡單的度量類型,只有一個簡單的返回值,他用來記錄一些對象或者事物的瞬時值,如CPU使用率、內(nèi)存使用情況、磁盤空間等。

 

Histograms,直方圖

Histrogram是用來度量數(shù)據(jù)中值的分布情況,如程序執(zhí)行時間:0-100ms、100-200ms、200-300ms、>300ms 的分布情況

 

在使用Prometheus監(jiān)控之前,先要明白都需要監(jiān)控哪些項,以及每一中項都應(yīng)該采用什么數(shù)據(jù)類型來表示

 

明白以上類型之后,就可以開始將監(jiān)控數(shù)據(jù)項寫入到redis。寫入的工具可采用開源的prometheus_client_php;github:https://github.com/Jimdo/prometheus_client_php 

下載后需要用composer部署其依賴,如果你不知道composer的使用:http://www.phpcomposer.com 

以下代碼記錄一個counter數(shù)據(jù)

 

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計算培訓(xùn),高端軟件開發(fā)培訓(xùn),項目經(jīng)理培訓(xùn)

require __DIR__ . '/../vendor/autoload.php';use Prometheus\CollectorRegistry;use Prometheus\Storage\Redis;

Redis::setDefaultOptions(array('host' => 'master.redis.reg'));$adapter = new Prometheus\Storage\Redis();$registry = new CollectorRegistry($adapter);$counter = $reg
        
		

網(wǎng)友評論