Skip to main content
Evaluates a prometheus query using data from a TimeSeries table.

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, use now() as evaluation_time.

Returned value

The function returns different columns depending on the result type of the query passed to parameter promql_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.

Example

Last modified on September 30, 2026