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 汇总类型