1. 时序数据
时序数据是基于时间的一系列的数据。它是在一段时间内进行重复测量而获得的观测值的集合。将这些观测值绘制于图形之上,它会有一个数据轴和一个时间轴。下图为黄石公园历年温度数据,这就是一个典型的时序数据:
服务器、应用程序的性能指标,网络流量等每时每刻不断变化的值,这些都是时序数据。
1.1 Prometheus 数据模型
Prometheus 所采集的监控数据均以指标(metric)的形式保存在内置的时间序列数据库当中, 每一条时间序列由指标名称(Metrics Name)以及一组标签(键值对)唯一标识组成,格式为“prometheus_http_requests_total{code="200", handler="/metrics", instance="localhost:9090", job="prometheus"}
- 指标名称:用于描述系统上监控样本的含义,
- 上面的序列中的指标名称为
prometheus_http_requests_total表示当前系统接收到的 prometheus 发送的 HTTP 请求总量; - 支持使用字母、数字、下划线和冒号,且必须能匹配 RE2 规范的正则表达式;
- 上面的序列中的指标名称为
标签:键值型数据,附加在指标名称之上,从而让指标能够支持多纬度特征。通过使用不同标签列表的集合,会形成不同的度量维度实例。
Metrcie_name 和 Lables 组成的时间序列
- 毫秒精度的时间戳 Timestamp
- float64 格式的数据 值 Sample Value
2 PromQL 数据类型
PromQL 表达式支持 4 种数据类型:
- 即时向量(Instant Vector):特定或全部的时间序列集合上,具有相同时间戳的一组样本值称为即时向量;
- 范围向量(Range Vector):特定或全部的时间序列集合上,在指定的同一时间范围内的所有样本值;
- 标量(Scalar):一个浮点型的数据值;
- 字符串(String):支持使用单引号、双引号或反引号进行引用,但反引号中不会对转义字符进行转义;
