關(guān)于Prometheus

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

監(jiān)控方式

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

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

 

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

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

 

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

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

 

Gauge,記錄對(duì)象或許事物的瞬時(shí)值

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

 

Histograms,直方圖

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

 

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

 

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

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

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

 

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開(kāi)發(fā)培訓(xùn),項(xiàng)目經(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