Skip to main content

timeSeriesQuantileToGrid

引入版本:v26.9.0 聚合函数,接收由时间戳和值组成的时间序列数据对,并在由起始时间戳、结束时间戳和步长定义的等间隔时间网格上计算 PromQL quantile_over_time 函数。对于网格上的每个点,会选取指定时间窗口内的样本来计算分位数。分位数采用 R-7 (包含边界) 方法计算,与 quantileExactInclusive 相同。但与 quantileExactInclusive 不同,NaN 样本不会被跳过:与 Prometheus 一致,这些样本会被保留,并排在所有实际值之前。因此,窗口 [1, NaN, 2] 的中位数为 1,而样本全为 NaN 的窗口结果为 NaN。 分位数级别作为最后一个参数,紧跟在样本之后:可以是适用于所有网格点的单个数值,也可以是一个数组,为每个网格点分别提供一个数值。该参数在每一行中都必须相同。与 Prometheus 一致,级别小于 0 时结果为 -Inf,大于 1 时结果为 +Inf;级别为 NaN 时,所有窗口内有样本的网格点结果均为 NaN。
此函数目前处于私有预览阶段,可通过设置 enable_time_series_aggregate_functions=true 启用。
语法
参数
  • start_timestamp — 指定网格的起点。也可以是小数,或包含数字或日期时间文本的字符串。UInt32 或 DateTime 或 DateTime64 或 Float* 或 Decimal* 或 String
  • end_timestamp — 指定网格的终点。也可以是小数,或包含数字或日期时间文本的字符串。UInt32 或 DateTime 或 DateTime64 或 Float* 或 Decimal* 或 String
  • grid_step — 指定网格的步长 (以秒为单位) 。也可以是小数,或包含数字或时长 (如 ’15s’ 或 ‘1m’) 的字符串。UInt32 或 Float* 或 Decimal* 或 String
  • staleness — 指定参与计算的样本的最大“陈旧时间” (以秒为单位) 。陈旧窗口为左开右闭区间。也可以是小数,或包含数字或时长 (如 ’15s’ 或 ‘1m’) 的字符串。UInt32 或 Float* 或 Decimal* 或 String
参数 返回值 返回指定网格上各值的 phi 分位数。返回的数组中,每个时间网格点对应一个值。如果某个网格点的窗口内没有任何样本,则该点的值为 NULL。Array(Nullable(Float64)) 示例
最后修改于 2026年10月14日