3-Prometheus数据
Prometheus 数据
时间序列数据
时间序列数据通常由应用程序本身通过客户端库或称为exporter来作为HTTP端点暴露,由prometheus进行收集,包含指标、时间戳、测量值。
指标:由指标名称和指标的标签组成,<metric name>{<label name>=<label value>, ...}
- metric name:指标名称,由
[a-zA-Z_:][a-zA-Z0-9_:]*
组成 <label name>=<label value>
:标签,键值对,[a-zA-Z_][a-zA-Z0-9_]*
, __ 开头的标签仅内部使用
时间戳:精确到毫秒的时间戳
测量值:一个float64的值
指标类型
Counter
Counter是计数类型。用于累计值,比如请求次数、完成次数。一直增加,不会减少。重启进程后会被重置。可以方便了解事件变化速率。通常指标名称以total为结尾
Gauge
Gauge是测量器类型,是一个实际测量的值,可变大,可变小。比如剩余空间大小、剩余内存大小
Histogram
- 将一段时间范围内的数据进行采样(通常是请求持续时间或响应大小等),并将其计入可配置的存储桶(bucket)中. 后续可通过指定区间筛选样本,也可以统计样本总数,最后一般将数据展示为直方图。
- 对每个采样点值累计和(sum)
- 对采样点的次数累计和(count)
- Histogram不会保存数据采样的值,存储的是区间的样本数统计值
一个Histogram可以理解为是由三个指标组成。<metric name>_bucket{le="上边界"}
:测量值为bucket中小于等于上边界的所有采样点数量<metric name>_sum
:bucket中每个采样点值累计和<metric name>_count
:bucket中采样点数量
实例
在一个时间段中有以上的数据,对应的在指标中展示为
1 | _bucket指标 |
summary
- 在客户端对于一段时间内(默认是10分钟)的每个采样点进行统计,并形成分位图。
- 统计班上所有同学的总成绩(sum)
- 统计班上同学的考试总人数(count)
一个summary指标可以理解为有三个指标组成。<metric name>_bucket{quantile="分位数"}
:百分位数的数值,例如quantile=0.5,即采样点数值的中位数,<metric name>_sum
:每个采样点值累计和<metric name>_count
:采样点数量
实例
有10个采样点数值为{1,2,3,4,5,6,7,8,9,10}
1 | 分位数计算方法 (n+1)y,n为数据个数,y为分位数,值为第几个数,例如要求某个分位数从公式得出值为2.25,则该分位数为第二个数+(第三个数-第二个数)0.25 |
实际数据
截取 http://Prometheus_server:9090/metrics 前面部分数据
每条数据会给出监控指标的解释以及类型
1 | # HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles. 监控指标的含义 |