关于Prometheus
Prometheus是一套开源的监控系统,它将所有信息都存储为时间序列数据;因此实现一种Profiling监控方式,实时分析系统运行的状态、执行时间、调用次数等,以找到系统的热点,为性能优化提供依据。
监控方式

程序代码收集运行数据写入到redis,通过API接口开放给Prometheus,Prometheus定时去抓取接口上的数据,形成时间系数据存入到本地。同时通过promql与开放接口可视化数据到前端。
一、采集运行数据写入到redis
在采集数据之前,先要明白Prometheus所支持的几种数据类型
Counter,统计类数据
Counter作为一种计数类数据类型,常用于接口调用次数、请求总数、当前在线人数等等
Gauge,记录对象或许事物的瞬时值
Gauge是最简单的度量类型,只有一个简单的返回值,他用来记录一些对象或者事物的瞬时值,如CPU使用率、内存使用情况、磁盘空间等。
Histograms,直方图
Histrogram是用来度量数据中值的分布情况,如程序执行时间:0-100ms、100-200ms、200-300ms、>300ms 的分布情况
在使用Prometheus监控之前,先要明白都需要监控哪些项,以及每一中项都应该采用什么数据类型来表示
明白以上类型之后,就可以开始将监控数据项写入到redis。写入的工具可采用开源的prometheus_client_php;github:https://github.com/Jimdo/prometheus_client_php
下载后需要用composer部署其依赖,如果你不知道composer的使用:http://www.phpcomposer.com
以下代码记录一个counter数据
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

