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) - 一个简单的字符串值。

posted @ 2021-02-24 21:46  dkn  阅读(1299)  评论(0编辑  收藏  举报