prometheus监控中,对于采集过来的数据统一称为metrics数据
metrics是一种对采样数据的总称(metrics并不代表某一种具体的数据格式 是一种对于度量计算单位的抽象)
metrics数据类型
Gauges
最简单的度量指标,只有一个简单的返回值,或者叫瞬时状态,例如我们度量一个待处理队列中任务的个数
更简单的例子
例如:假如我们要监控硬盘容量或者内存的使用量,那么我们就应该使用Gauges的metrics格式来度量
因为硬盘的容量或者内存的使用量是随着时间的推移不断瞬时变化的
这种变化没有规律,当前是多少采集回来的就是多少
既不能肯定是一直持续增长也不能肯定是一直降低
是多少就是多少 这种就是Gauges使用类型的代表
CPU的上下浮动就是采集使用Gauges形式的
如图是CPU浮动
Counters
Counter就是计数器,从数据量0开始累积 在理想状态下只能是永远增长不会降低
举个例子
比如用户访问量
Histogram
Histogram近似百分百估算值
比如Http响应时间
使用一段时间内总的平均值会出现偏差
通过Histogram 可以分别统计出全部用户的响应时间
可以很清晰看到我们当前系统中处于基本正常状态的有多少百分百的用户
k/v数据格式
对于采集回来的数据,必须要以一种具体的数据格式供我们查看和使用
当一个exporter被安装和运行在监控服务器上以后使用curl命令可以返回数据
大多数exporter下载之后就提供了启动命令,一般直接运行带上一定参数就可以了
node_exporter
pushgateway
反向推送
为什么需要pushgateway
- exporter虽然采集的数据已经很丰富了,但是我们依然需要很多自制的监控数据非格式化的 自定制的
- exporter由于数据采集量大,其实很多数据或者说大部分数据在监控中用不到,用pushgateway定义一项数据节约资源
- 一个新定义的pushgateway远远比开发一个全新的exporter简单快速
- exporter虽然已经很丰富,但是依然有很多我们需要采集的形式,exporter无法提供,或者说expoter还不支持,使用pushgateway可以任意灵活而且极快