PromQL(Prometheus Query Language)是 Prometheus 的查询语言,常用函数包括:
聚合函数:
sum()- 求和avg()- 平均值max()- 最大值min()- 最小值count()- 计数count_values()- 统计各值出现次数
时间函数:
rate()- 计算指标在时间窗口内的平均增长率irate()- 计算瞬时增长率(更敏感)increase()- 计算时间窗口内的增量delta()- 计算差值
数学函数:
abs()- 绝对值ceil()- 向上取整floor()- 向下取整round()- 四舍五入exp()- 指数ln()- 自然对数
预测函数:
predict_linear()- 基于线性回归预测未来值
示例查询:
promql# 计算 QPS rate(http_requests_total[5m]) # 计算内存使用率 sum(container_memory_usage_bytes) / sum(container_spec_memory_limit_bytes) * 100 # 预测磁盘空间何时耗尽 predict_linear(node_filesystem_avail_bytes[1h], 3600*24) < 0
注意事项:
rate()和irate()只能用于 Counter 类型- 时间窗口选择影响结果准确性
- 使用
by子句进行分组聚合