Skip to main content
一定の評価時刻範囲にわたって、TimeSeriesテーブルのデータを使用してPrometheusクエリを評価します。

構文

引数

  • 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() 修飾子を指定できます。

例