構文
引数
db_name- TimeSeries テーブルが存在するデータベースの名前。time_series_table- TimeSeries テーブルの名前。promql_query- PromQL 構文で記述されたクエリ。start_time- 評価範囲の開始時刻。end_time- 評価範囲の終了時刻。step- 評価時刻をstart_timeからend_timeまで (両端を含む) 順に進める際のステップ。
戻り値
promql_query に渡されたクエリの結果タイプに応じて、返されるカラムが異なります。
| 結果タイプ | 結果カラム | 例 |
|---|---|---|
| vector | tags Array(Tuple(String, String)), timestamp TimestampType, value ValueType | prometheusQuery(mytable, ‘up’) |
| matrix | tags Array(Tuple(String, String)), time_series Array(Tuple(TimestampType, ValueType)) | prometheusQuery(mytable, ‘up[1m]‘) |
| scalar | scalar ValueType | prometheusQuery(mytable, ‘1h30m’) |
| string | string String | prometheusQuery(mytable, ‘“abc”‘) |
PromQL でサポートされている機能
セレクタ
=, !=, =~, !~) 、offset 修飾子、@ タイムスタンプ修飾子、サブクエリ。
関数
| カテゴリ | 関数 |
|---|---|
| 範囲 | rate, irate, delta, idelta, last_over_time |
| 数学 | abs, sgn, floor, ceil, sqrt, exp, ln, log2, log10, rad, deg |
| 三角関数 | sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh |
| DateTime | day_of_week, day_of_month, days_in_month, day_of_year, minute, hour, month, year |
| 型 | scalar, vector |
| ヒストグラム | histogram_quantile |
| その他 | time, pi |
histogram_quantile は、従来のヒストグラムバケット (le ラベルで識別) に対して線形補間を使用します。ネイティブヒストグラムはまだサポートされておらず、phi (quantile level) 引数は現時点では定数スカラーである必要があります。histogram_quantile(time() / 1000, ...) のようにステップごとに変化する式は受け付けられず、NOT_IMPLEMENTED エラーになります。
演算子
on()/ignoring() および group_left()/group_right() 修飾子付きの、すべての算術 (+, -, *, /, %, ^) 、比較 (オプションの bool を付けた ==, !=, <, >, <=, >=) 、および論理 (and, or, unless) 二項演算子。
単項演算子 + と -。
集計演算子
sum, avg, min, max, count, stddev, stdvar, group, quantile, topk, bottomk, limitk — オプションで by() または without() 修飾子を指定できます。
現時点では count_values はサポートされていません。