PromQL 是 Prometheus 的查询语言。它允许进行多种操作,包括聚合,切片和切块,预测和连接
表达式类型
在 Prometheus 表达式的表达语言中,一个表达式或子表达式可以计算为以下四种类型之一:
- instant vector(瞬时/即时向量):一组时间序列,每个时间序列包含一个样本,所有数据样本共享相同的时间戳。
- Range vector(范围向量/区间向量):一组时间序列,其中包含每个时间序列随时间变化的一系列数据点
- Scalar(标量):一个简单的数字浮点值
- String(字符串):一个简单的字符串值。目前未使用
瞬时向量
promhttp_metric_handler_requests_total
过滤
promhttp_metric_handler_requests_total{code=”200”, instance=”49.232.138.70:9100”, job=”cloud2”}
promhttp_metric_handler_requests_total{code=”200”, method!=”GET”}
count(promhttp_metric_handler_requests_total)
区间向量
加入了时间选择的范围,单位: s,m,h,d,w,y
promhttp_metric_handler_requests_total{code=”200”, method!=”GET”}[5m]
区间范围内的平均增长速率
rate(promhttp_metric_handler_requests_total{code=”200”, method!=”GET”}[5m])
只取最后两个样本数据来计算增长速率, rate 假如有某几个样本数据非常高,平均数据会被拉高,irate 更适合于绘制易变、快速变化的计数器
irate(promhttp_metric_handler_requests_total{code=”200”, method!=”GET”}[5m])
指标类型
- Couter 计数器 只增不减
服务的请求数,错误发生的次数,系统启动时间
- Gauge 是可以任意上下波动数值的指标类型
进程数量,内存使用率,并发请求的数量
- Histogram 直方图类型
- Summary 汇总类型