prometheus的数据类型介绍
Prometheus操作指南 -- http://www.mianshigee.com/tutorial/prometheus-book/readme.md
prometheus的数据类型介绍 -- https://blog.csdn.net/polo2044/article/details/83277299
简介
Prometheus将所有采集到的样本数据以时间序列(time-series)的方式保存在内存数据库中,并定时保存在硬盘上。时间序列中的每一个样本由以下三部分组成。
- 指标(metric): metric name和描述当前样本特征的labelsets组成,参考格式如
{ - 时间截(timestamp):一个精确到毫秒的时间截;
- 样本值(value):一个float64的浮点类型数据表示当前的样本值。
特点
- 多维数据模型,包含key/value标识标签的时间序列数据;
- PromQL,一种灵活的查询语言 ,内置的函数可以让我们快速运算得到我们想要的结果;
- 不依赖分布式存储,默认是本地存储,也可以选择远程读写;
- 通过http请求拉取(pull)exporter数据;
- 也可以通过网关(gateway)推送(push)数据;
- 配置可以通过服务发现或静态配置发现监控目标;
- 多种图形和仪表板支持模式,特别是grafana的支持,让我们可以快速完成好看的图表。
四种指标类型
- counters
计数器,从0开始累积,理想情况永远的增长趋势。比如每天用户访问量,从1 一直累加到10000,最多某分钟保持不变。(当然 这个是分时间段的,在第二天又是从1开始。可以通过数学计算强制填坑)
- gauges
最简单的度量指标,只有一个简单的返回值(瞬时状态)。衡量队列中的任务个数。当监控硬盘的容量、内存的使用量。随时间的推移,不断的、没有规则变化的数据。特点:没有规律、采集回来多少就是多少。
- Histograms
比例性估算数值,统计数据的分布情况,代表的是近似的百分比估算数值。比如http请求中的响应时间,代表依次http请求中的总共花费时间。这个数据一般在nginx访问日志中会存储这个数值。如果我们想监控用户的访问时间,结果会发现这类数据会分为几个区段,基本符合正态分布图。通过这种图,就可以针对特别慢的用户,进行排查原因,或者过长的时间进行报警。或者一天时间中,某几分钟因为系统的原因,访问时间变的特别慢,我们想通过监控对这段时间出现问题的时候,及时报警出来。histogram类型会分别统计出全部用户的响应时间的各个区段的个数,可以很轻松的知道,当前我们系统中,处于正常状态的用户,有多少百分比用户。
Prometheus表达式语言数据类型
1、瞬时向量(Instant vector) 一组时间序列,每个时间序列包含单个样本,它们共享相同的时间戳。也就是说,表达式的返回值中只会包含该时间序列中的最新的一个样本值。而相应的这样的表达式称之为瞬时向量表达式。
2、区间向量(Range vector) - 一组时间序列,每个时间序列包含一段时间范围内的样本数据。
3、标量(Scalar) - 一个浮点型的数据值。
4、字符串(String) - 一个简单的字符串值。