文章目录
- 1. PromQL介绍
- 1.1. 时间序列过滤器
- 1.1.1. 瞬时向量过滤器
- 1.1.2. 区间向量过滤器
- 1.1.3. 时间位移操作
- 1.2. 操作符
- 1.2.1. 算术二元运算符
- 1.2.2. 聚合操作
- 1.3. 常用函数
- 1.3.1. increase
- 1.3.2. irate
- 1.3.3. rate
1. PromQL介绍
Prometheus 提供了一种功能表达式语言 PromQL,允许用户实时选择和汇聚时间序列数据。在gafana中,选择prometheus的数据源之后,在Metrics输入PromQL,语法正确后,图表页面就会显示出监控数据。
在 Prometheus 的表达式语言中,表达式或子表达式包括以下四种类型之一:
- 瞬时向量(Instant vector) - 一组时间序列,每个时间序列包含单个样本,它们共享相同的时间戳。也就是说,表达式的返回值中只会包含该时间序列中的最新的一个样本值。而相应的这样的表达式称之为瞬时向量表达式。
http_requests_total
- 区间向量(Range vector) - 一组时间序列,每个时间序列包含一段时间范围内的样本数据。
http_requests_total[5m]
- 标量(Scalar) - 一个浮点型的数据值。
time()
,sum(http_requests_total)
- 字符串(String) - 一个简单的字符串值。
根用户输入的表达式返回的数据类型是否合法取决于用例的不同,例如:瞬时向量表达式返回的数据类型是唯一可以直接绘制成图表的数据类型。
1.1. 时间序列过滤器
1.1.1. 瞬时向量过滤器
瞬时向量过滤器允许在指定的时间戳内选择一组时间序列和每个时间序列的单个样本值。在最简单的形式中,近指定指标ÿ