構文
引数
db_name- TimeSeries テーブルが存在するデータベースの名前。time_series_table- TimeSeries テーブルの名前。promql_query- PromQL 構文で記述されたクエリ。start_time- 評価範囲の開始時刻。ミリ秒またはそれより細かい精度で指定します。end_time- 評価範囲の終了時刻。ミリ秒またはそれより細かい精度で指定します。step- 評価時刻をstart_timeからend_timeまで (両端を含む) 順に進める際のステップ。
戻り値
この関数は、パラメータpromql_query に渡されたクエリの結果型に応じて、異なるカラムを返します。
値は、TimeSeries テーブル内の値の型にかかわらず、常に
Float64 になります。タイムスタンプのスケール S はテーブル内のタイムスタンプのスケールと同じですが、
3 (ミリ秒) を下回ることはありません。タイムゾーン TZ は、start_time と end_time がいずれも同じタイムゾーンの DateTime 型または DateTime64 型である場合はそのタイムゾーンになり、
それ以外の場合はテーブル内のタイムスタンプのタイムゾーンになります。
TimeSeries テーブルのバージョンが 2 以前の場合、samples カラムの名前は time_series になります。
PromQL でサポートされている機能
セレクタ
インスタントセレクタ、範囲セレクタ、ラベルマッチャー (=, !=, =~, !~) 、offset 修飾子、@ タイムスタンプ修飾子、サブクエリ。
関数
注:
histogram_quantile は、従来のヒストグラムバケット (le ラベルで識別) に対して線形補間を使用します。ネイティブヒストグラムはサポートされていません。phi (quantile level) 引数は定数スカラーである必要があります。histogram_quantile(time() / 1000, ...) のようにステップごとに変化する式は受け付けられず、NOT_IMPLEMENTED 例外になります。
注: min_of(a, b) と max_of(a, b) は、2つのスカラー値のうち、それぞれ小さい方または大きい方を返します。どちらの引数もスカラーである必要があります。
注: 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、mad_over_time は Prometheus のExperimental関数です (Prometheus では --enable-feature=promql-experimental-functions で有効化されます) 。ClickHouse では、このフラグを必要とせずに評価されます。
演算子
on()/ignoring() および group_left()/group_right() 修飾子付きの、算術 (+, -, *, /, %, ^, atan2) 、比較 (オプションの bool を付けた ==, !=, <, >, <=, >=) 二項演算子。
on()/ignoring() 修飾子付きの論理集合演算子 and、or、および unless。
単項演算子 + と -。
集計演算子
sum, avg, min, max, count, count_values, stddev, stdvar, group, quantile, topk, bottomk, limitk — オプションで by() または without() 修飾子を指定できます。