PromQL简介
PromQL(Prometheus Query Language)是Prometheus 提供的函数式查询语言,可以查询实时数据和聚合时间序列的数据。在数据可视化和编写告警规则中使用。
PromQL的表达式类型
-
瞬时向量(Instant-Vector) - 一组时间序列,包含相同时间戳的单个样本;
-
例如:
http_requests_total
-
可以通过向 {} 里附加一组标签来进一步过滤:
http_requests_total{group="res"}
-
完全匹配和正则匹配
=
: 选择与提供的字符串完全相同的标签。!=
: 选择与提供的字符串不相同的标签。=~
: 选择正则表达式与提供的字符串(或子字符串)相匹配的标签。!~
: 选择正则表达式与提供的字符串(或子字符串)不匹配的标签
-
-
区间向量(Range-Vector) - 一组时间序列,包含每个时间序列随时间变化的数据点范围,例如:
http_requests_total[5m]
在过去5分钟内指标名称为http_requests_total的所有时序- s - 秒
- m - 分钟
- h - 小时
- d - 天
- w - 周
- y - 年
-
标量(Scalar) - 一个简单的数字浮点值,例如:
count(http_requests_total)
-
字符串(String) - 一个简单的字符串值;
-
时间位移操作:在瞬时向量表达式和区间向量表达式中,都是以时间为基准的:
- 使用offset 可以查询前一段时间的数据
- 如:
rate(http_requests_total[5m] offset 1w)
Prometheus的指标类型
Prometheus有四个指标类型
- Counter:计数器,单调递增;
- Gauge:仪表盘,可增可减的数据;