Introduced in: v26.9.0
Aggregate function that takes time series data as pairs of timestamps and values and calculates the PromQL quantile_over_time function on a regular time grid described by start timestamp, end timestamp and step. For each point on the grid the samples for calculating the quantile are considered within the specified time window. The quantile is computed using the R-7 (inclusive) method, like quantileExactInclusive. NaN samples are not skipped the way quantileExactInclusive skips them: like in Prometheus they are kept and sorted before every real value, so a window of [1, NaN, 2] has median 1, and a window whose samples are all NaN gives NaN.
The quantile level follows the samples as the last argument: either one number used at every grid point, or an array with one number per grid point. It must be the same in every row. Like in Prometheus, a level below 0 gives -Inf, a level above 1 gives +Inf and a NaN level gives NaN for every grid point whose window has samples.
:::note
This function is in private preview, enable it by setting enable_time_series_aggregate_functions=true.
:::
Syntax
timeSeriesQuantileToGrid(start_timestamp, end_timestamp, grid_step, staleness)(timestamp, value, phi)
timeSeriesQuantileToGrid(start_timestamp, end_timestamp, grid_step, staleness)(samples, phi)Arguments
timestamp— Timestamp of the sample. Can be individual values or arrays.UInt32orDateTimeorDateTime64orArray(UInt32)orArray(DateTime)orArray(DateTime64)value— Value of the time series corresponding to the timestamp. Can be individual values or arrays.Float*orArray(Float*)samples— Samples of the time series passed as an array of tuples(timestamp, value), where the tuple elements have the timestamp and value types listed above. An alternative to passing the timestamps and the values as two separate arguments.Array(Tuple(T1, T2))phi— Quantile level, normally in the range [0, 1]: either one number for the whole grid or an array with one number per grid point. Must be the same in every row.Float*orUInt8/16/32/64orInt8/16/32/64orArray(Float*)orArray(UInt8/16/32/64)orArray(Int8/16/32/64)
Returned value
Returns the phi-quantile of values on the specified grid. The returned array contains one value for each time grid point. The value is NULL if there are no samples within the window for a particular grid point. Array(Nullable(Float64))