promQL 使用函数标签信息丢失
Q:配置告警规则的 promQL 使用函数标签信息丢失指标怎么办?
A:
promQL 中有一些聚合函数和操作符可能会导致丢失样本的详细信息。这主要是因为聚合函数和操作符会对数据进行汇总、计算或过滤,从而产生新的统计结果。(调试时,可以在即时查询用这个 promQL 查询下,看看返回什么数据)。
为避免丢失详细标签信息,可以考虑以下方法:
- <aggr-op> [without|by] (<label list>) ,例如
avg by(product) (http_response_response_time)
, 通过包含 without 或 by 子句来保留不同维度的标签将多个序列聚合成单个瞬时向量。 - <aggregation>_over_time(),例如
avg_over_time(http_response_response_time[1h])
或avg_over_time(http_response_response_time[1h:5m])
(子查询),通过一个区间向量,分别聚合每个时间序列的范围,并返回瞬时向量。