prometheus

架构

基本概念

数据模型

prometheus把数据当作时间序列进行存储。
每个时间序列通过 metric namekey-value pairs(也叫做 label)标识。

metric name表示需要进行测量的系统指标。
它允许包含ASCII字母,数字,下划线和分号。
正则表示为:[a-zA-Z:][a-zA-Z0-9:]*。

label表示一个系统指标的维度,可以按照这个维度进行查询统计。
Label名字允许包含ASCII字母,数字以及下划线。
正则表示为:[a-zA-Z][a-zA-Z0-9]*。同时,“__”开头的名字系统保留的。
Label值允许任意的Unicode字符

度量类型

Counter

累计统计度量的单个值。适用于只增不减度量,比如累计请求数量。

Gauge

统计度量的单个值。适用于可以增减的度量,比如当前的内存使用情况。

Histogram

统计度量事件发生的次数以及度量值的和。还支持统计小于某个阀值的度量事件发生的次数。

这个度量类型有三个时间序列统计:

Summary

统计度量时间发生的次数以及度量值的和。还支持统计某个百分比内的度量事件发生的次数。

这个度量类型有三个时间序列统计:

Job & Instance

在prometheus里面对监控的对象分成Job和Instance。Instance代表一个监控的实例。比如
一个支付进程。Job代表一个监控的逻辑单位。
比如支付服务,它在多台机器上面部署着,每台机器对应一个Instance。

自动生成的label和时间序列

当prometheus抓取一个目标的时候,会自动生成时间序列以及label,用来标识抓取的目标状态。

label:

时间序列:

← 字符串 增加bug的编程实践 →
存档 关于