Syntax
Arguments
db_name- The name of the database where a TimeSeries table is located.time_series_table- The name of a TimeSeries table.promql_query- A query written in PromQL syntax.evaluation_time- The evaluation timestamp, with millisecond or finer precision. To evaluate a query at the current time, usenow()asevaluation_time.
Returned value
The function returns different columns depending on the result type of the query passed to parameterpromql_query:
The values are always
Float64 regardless of the type of the values in the TimeSeries table. The scale S of the timestamps is the scale
of the timestamps in the table, but not less than 3 (milliseconds). The time zone TZ is the time zone of evaluation_time if it has
type DateTime or DateTime64 with a time zone, otherwise it is the time zone of the timestamps in the table.
The samples column is named time_series if the TimeSeries table has version 2 or earlier.
Supported PromQL Features
Selectors
Instant selectors, range selectors, label matchers (=, !=, =~, !~), offset modifiers, @ timestamp modifiers, and subqueries.
Functions
Note:
histogram_quantile uses linear interpolation on classic histogram buckets (identified by the le label). Native histograms are not supported. The phi (quantile level) argument must be a constant scalar. Expressions that vary per step, such as histogram_quantile(time() / 1000, ...), are rejected with a NOT_IMPLEMENTED exception.
Note: min_of(a, b) and max_of(a, b) return the smaller or larger of two scalar values. Both arguments must be scalars.
Note: min_of, max_of, ts_of_min_over_time, ts_of_max_over_time, ts_of_last_over_time, first_over_time, ts_of_first_over_time and mad_over_time are experimental functions in Prometheus (enabled there with --enable-feature=promql-experimental-functions); ClickHouse evaluates them without requiring that flag.
Operators
Arithmetic (+, -, *, /, %, ^, atan2) and comparison (==, !=, <, >, <=, >= with optional bool) binary operators, with on()/ignoring() and group_left()/group_right() modifiers.
Logical set operators and, or, and unless, with on()/ignoring() modifiers.
Unary operators + and -.
Aggregation Operators
sum, avg, min, max, count, count_values, stddev, stdvar, group, quantile, topk, bottomk, limitk — with optional by() or without() modifiers.