関数

一部の関数にはデフォルトの引数があります。たとえば、year(v=vector(time()) instant-vector)です。これは、インスタントベクトルである引数vが1つあり、それが指定されていない場合は、式vector(time())の値がデフォルトになることを意味します。

実験的なネイティブヒストグラムに関する注意事項

  • ネイティブヒストグラムの取り込みは、フィーチャーフラグを介して有効にする必要があります。ネイティブヒストグラムがTSDBに取り込まれていない限り、すべての関数は通常どおりに動作します。
  • ドキュメントでネイティブヒストグラムを明示的に言及していない関数(下記参照)は、ヒストグラムサンプルを無視します。
  • すでにネイティブヒストグラムで動作する関数は、将来的にその動作が変更される可能性があります。
  • 関数が複数のネイティブヒストグラム間で同じバケットレイアウトを必要とする場合、それらは適切に自動的に変換されます。(現在サポートされているバケットスキーマでは、これは常に可能です。)

abs()

abs(v instant-vector)は、すべてのサンプル値をその絶対値に変換した入力ベクトルを返します。

absent()

absent(v instant-vector)は、渡されたベクトルに要素(浮動小数点数またはネイティブヒストグラム)がある場合は空のベクトルを返し、渡されたベクトルに要素がない場合は値1の1要素ベクトルを返します。

これは、特定のメトリクス名とラベルの組み合わせに対して時系列が存在しない場合にアラートを出すのに役立ちます。

absent(nonexistent{job="myjob"})
# => {job="myjob"}

absent(nonexistent{job="myjob",instance=~".*"})
# => {job="myjob"}

absent(sum(nonexistent{job="myjob"}))
# => {}

最初の2つの例では、absent()は1要素の出力ベクトルのラベルを入力ベクトルから導き出すことに賢く対応しようとします。

absent_over_time()

absent_over_time(v range-vector)は、渡された範囲ベクトルに要素(浮動小数点数またはネイティブヒストグラム)がある場合は空のベクトルを返し、渡された範囲ベクトルに要素がない場合は値1の1要素ベクトルを返します。

これは、特定のメトリクス名とラベルの組み合わせに対して、特定の期間、時系列が存在しない場合にアラートを出すのに役立ちます。

absent_over_time(nonexistent{job="myjob"}[1h])
# => {job="myjob"}

absent_over_time(nonexistent{job="myjob",instance=~".*"}[1h])
# => {job="myjob"}

absent_over_time(sum(nonexistent{job="myjob"})[1h:])
# => {}

最初の2つの例では、absent_over_time()は1要素の出力ベクトルのラベルを入力ベクトルから導き出すことに賢く対応しようとします。

ceil()

ceil(v instant-vector)は、v内のすべての要素のサンプル値を、v以上の最も近い整数値に切り上げます。

  • ceil(+Inf) = +Inf
  • ceil(±0) = ±0
  • ceil(1.49) = 2.0
  • ceil(1.78) = 2.0

changes()

入力時系列ごとに、changes(v range-vector)は、提供された時間範囲内でその値が変更された回数をインスタントベクトルとして返します。

clamp()

clamp(v instant-vector, min scalar, max scalar)は、v内のすべての要素のサンプル値を、下限がmin、上限がmaxになるようにクランプします。

特殊なケース

  • min > maxの場合、空のベクトルを返します。
  • minまたはmaxNaNの場合、NaNを返します。

clamp_max()

clamp_max(v instant-vector, max scalar)は、v内のすべての要素のサンプル値を、上限がmaxになるようにクランプします。

clamp_min()

clamp_min(v instant-vector, min scalar)は、v内のすべての要素のサンプル値を、下限がminになるようにクランプします。

day_of_month()

day_of_month(v=vector(time()) instant-vector)は、UTCで指定された各時間の月の日にちを返します。返される値は1から31です。

day_of_week()

day_of_week(v=vector(time()) instant-vector)は、UTCで指定された各時間の曜日を返します。返される値は0から6で、0は日曜日などを意味します。

day_of_year()

day_of_year(v=vector(time()) instant-vector)は、UTCで指定された各時間の年の日を返します。返される値は、うるう年でない場合は1から365、うるう年の場合は1から366です。

days_in_month()

days_in_month(v=vector(time()) instant-vector)は、UTCで指定された各時間の月の日数を返します。返される値は28から31です。

delta()

delta(v range-vector)は、範囲ベクトルv内の各時系列要素の最初と最後の値の差を計算し、指定されたデルタと等価なラベルを持つインスタントベクトルを返します。デルタは、範囲ベクトルセレクターで指定された時間範囲全体をカバーするように外挿されるため、サンプル値がすべて整数であっても、整数でない結果を取得することが可能です。

次の例の式は、現在と2時間前のCPU温度の差を返します。

delta(cpu_temp_celsius{host="zeus"}[2h])

deltaは、ネイティブヒストグラムに対して、各コンポーネント(観測の合計とカウント、バケット)が、vの最初と最後のネイティブヒストグラムのそれぞれのコンポーネントの差である新しいヒストグラムを計算することで動作します。ただし、範囲内で浮動小数点数とネイティブヒストグラムサンプルの混合を含むv内の各要素は、結果ベクトルから欠落します。

deltaは、ゲージのように動作するコンポーネント(いわゆるゲージヒストグラム)を持つゲージおよびネイティブヒストグラムでのみ使用する必要があります。

deriv()

deriv(v range-vector)は、単純線形回帰を使用して、範囲ベクトルv内の時系列の1秒あたりの微分を計算します。計算を実行するには、範囲ベクトルに少なくとも2つのサンプルが必要です。範囲ベクトルで+Infまたは-Infが見つかった場合、計算された傾きとオフセットの値はNaNになります。

derivはゲージでのみ使用する必要があります。

exp()

exp(v instant-vector)は、v内のすべての要素の指数関数を計算します。特別なケースは

  • Exp(+Inf) = +Inf
  • Exp(NaN) = NaN

floor()

floor(v instant-vector)は、v内のすべての要素のサンプル値を、v以下の最も近い整数値に切り捨てます。

  • floor(+Inf) = +Inf
  • floor(±0) = ±0
  • floor(1.49) = 1.0
  • floor(1.78) = 1.0

histogram_avg()

この関数は、実験的な機能であるネイティブヒストグラムでのみ動作します。この関数の動作は、Prometheusの将来のバージョンで変更される可能性があり、PromQLから削除される可能性もあります。

histogram_avg(v instant-vector)は、ネイティブヒストグラムに格納されている観測値の算術平均を返します。ネイティブヒストグラムではないサンプルは無視され、返されたベクトルには表示されません。

以下に示すように、histogram_avgを使用して、ネイティブヒストグラムからの5分間の平均リクエスト時間を計算します。

histogram_avg(rate(http_request_duration_seconds[5m]))

これは、次のクエリと同等です

  histogram_sum(rate(http_request_duration_seconds[5m]))
/
  histogram_count(rate(http_request_duration_seconds[5m]))

histogram_count()histogram_sum()

どちらの関数も、実験的な機能であるネイティブヒストグラムでのみ動作します。これらの関数の動作は、Prometheusの将来のバージョンで変更される可能性があり、PromQLから削除される可能性もあります。

histogram_count(v instant-vector)は、ネイティブヒストグラムに格納されている観測の数を返します。ネイティブヒストグラムではないサンプルは無視され、返されたベクトルには表示されません。

同様に、histogram_sum(v instant-vector)は、ネイティブヒストグラムに格納されている観測の合計を返します。

ネイティブヒストグラムから観測頻度(この場合は「1秒あたりのリクエスト数」に相当)を計算するには、以下のようにhistogram_countを使用します。

histogram_count(rate(http_request_duration_seconds[10m]))

histogram_fraction()

この関数は、実験的な機能であるネイティブヒストグラムでのみ動作します。この関数の動作は、Prometheusの将来のバージョンで変更される可能性があり、PromQLから削除される可能性もあります。

ネイティブヒストグラムの場合、histogram_fraction(lower スカラー, upper スカラー, v インスタントベクター)は、指定された下限値と上限値の間にある観測の推定割合を返します。ネイティブヒストグラムではないサンプルは無視され、返されるベクターには表示されません。

例えば、次の式は、過去1時間に200ms以下で完了したHTTPリクエストの割合を計算します。

histogram_fraction(0, 0.2, rate(http_request_duration_seconds[1h]))

推定の誤差は、基になるネイティブヒストグラムの解像度と、指定された境界がヒストグラムのバケット境界にどれだけ密接に一致しているかによって異なります。

+Inf-Infは有効な境界値です。例えば、上記の式にあるヒストグラムに負の観測が含まれている場合(リクエスト時間ではあり得ないはずですが)、0.2以下のすべての観測を含めるための適切な下限値は0ではなく-Infになります。

指定された境界が包括的か排他的かは、指定された境界が基になるネイティブヒストグラムのバケット境界と正確に一致する場合にのみ関係します。この場合、動作はヒストグラムのスキーマ定義によって異なります。現在サポートされているスキーマはすべて、正の値については包括的な上限境界と排他的な下限境界を備えています(負の値については逆になります)。境界が正確に一致しない場合、関数は線形補間を使用して割合を推定します。結果として生じる不確実性により、境界が包括的か排他的かは無関係になります。

histogram_quantile()

histogram_quantile(φ スカラー, b インスタントベクター)は、従来のヒストグラムまたはネイティブヒストグラムからφ-クォンタイル(0 ≤ φ ≤ 1)を計算します。(φ-クォンタイルと、(従来の)ヒストグラムメトリックタイプの一般的な使用方法の詳細な説明については、ヒストグラムとサマリーを参照してください。)

ネイティブヒストグラムは実験的な機能であることに注意してください。ネイティブヒストグラムを扱う場合のこの関数の動作は、今後のPrometheusのバージョンで変更される可能性があります。

bの浮動小数点サンプルは、1つまたは複数の従来のヒストグラムの各バケットにおける観測数と見なされます。各浮動小数点サンプルには、ラベル値がバケットの包括的な上限を示すleラベルが必要です。(そのようなラベルのない浮動小数点サンプルは、警告なしに無視されます。)その他のラベルとメトリック名は、各従来のヒストグラムに属するバケットを識別するために使用されます。ヒストグラムメトリックタイプは、自動的に_bucketサフィックスと適切なラベルを持つ時系列を提供します。

bのネイティブヒストグラムサンプルは、クォンタイルを計算するために、それぞれ個別のヒストグラムとして扱われます。

命名の衝突が発生しない限り、bには従来のヒストグラムとネイティブヒストグラムの混合を含めることができます。

クォンタイル計算の時間ウィンドウを指定するには、rate()関数を使用します。

例:ヒストグラムメトリックがhttp_request_duration_secondsという名前である場合(したがって、従来のヒストグラムのバケットのメトリック名はhttp_request_duration_seconds_bucketになります)。過去10分間のリクエスト時間の90パーセンタイルを計算するには、http_request_duration_secondsが従来のヒストグラムの場合、次の式を使用します。

histogram_quantile(0.9, rate(http_request_duration_seconds_bucket[10m]))

ネイティブヒストグラムの場合は、代わりに次の式を使用します。

histogram_quantile(0.9, rate(http_request_duration_seconds[10m]))

クォンタイルは、http_request_duration_secondsの各ラベルの組み合わせについて計算されます。集計するには、rate()関数の周りにsum()集計演算子を使用します。従来のヒストグラムを処理するためにhistogram_quantile()leラベルが必要であるため、by句に含める必要があります。次の式は、従来のヒストグラムのjobごとの90パーセンタイルを集計します。

histogram_quantile(0.9, sum by (job, le) (rate(http_request_duration_seconds_bucket[10m])))

ネイティブヒストグラムを集計する場合、式は次のように簡略化されます。

histogram_quantile(0.9, sum by (job) (rate(http_request_duration_seconds[10m])))

すべての従来のヒストグラムを集計するには、leラベルのみを指定します。

histogram_quantile(0.9, sum by (le) (rate(http_request_duration_seconds_bucket[10m])))

ネイティブヒストグラムを使用すると、by句なしで、通常どおりにすべてを集計できます。

histogram_quantile(0.9, sum(rate(http_request_duration_seconds[10m])))

histogram_quantile()関数は、バケット内の線形分布を仮定してクォンタイル値を補間します。

bに観測がない場合、NaNが返されます。φ < 0の場合は、-Infが返されます。φ > 1の場合は、+Infが返されます。φ = NaNの場合は、NaNが返されます。

以下は、従来のヒストグラムにのみ関係します。bに2つ未満のバケットが含まれている場合、NaNが返されます。最高のバケットには+Infの上限が必要です。(それ以外の場合は、NaNが返されます。)クォンタイルが最高のバケットにある場合、2番目に高いバケットの上限が返されます。そのバケットの上限が0より大きい場合、最低のバケットの下限は0であると想定されます。その場合、通常の線形補間がそのバケット内で適用されます。それ以外の場合、最低のバケットにあるクォンタイルの場合、最低のバケットの上限が返されます。

ヒストグラムに格納された推定最小値を取得するには、histogram_quantile(0, v インスタントベクター)を使用できます。

ヒストグラムに格納された推定最大値を取得するには、histogram_quantile(1, v インスタントベクター)を使用できます。

従来のヒストグラムのバケットは累積的です。したがって、次の状態が常に当てはまるはずです。

  • バケット内のカウントは、単調に増加します(厳密に非減少)。
  • 連続する2つのバケットの上限の間で観測がない場合、それらの2つのバケットのカウントは等しくなります。

ただし、浮動小数点数の精度に関する問題(例えば、sum(rate(...))でバケットを計算することによって導入されたわずかなずれ)や無効なデータによって、これらの仮定に違反する可能性があります。その場合、histogram_quantileは意味のある結果を返すことができません。問題を軽減するために、histogram_quantileは、連続するバケット間のごくわずかな相対的な差は浮動小数点数の精度の誤差が原因で発生していると仮定し、それらを無視します。(2つのバケット間の差を無視するしきい値は、両方のバケットの合計の1兆分の1(1e-12)です。)さらに、この調整後も非単調なバケットカウントがある場合は、単調性を強制するために前のバケットの値に増やされます。後者は、入力データに実際の問題があることを示す証拠であるため、「histogram_quantileへの入力は単調性のために修正する必要がありました」という情報注釈でフラグが立てられます。この注釈が表示された場合は、無効なデータのソースを見つけて削除する必要があります。

histogram_stddev()histogram_stdvar()

どちらの関数も、実験的な機能であるネイティブヒストグラムでのみ動作します。これらの関数の動作は、Prometheusの将来のバージョンで変更される可能性があり、PromQLから削除される可能性もあります。

histogram_stddev(v インスタントベクター)は、観測値が存在するバケットの幾何平均に基づいて、ネイティブヒストグラムにおける観測値の推定標準偏差を返します。ネイティブヒストグラムではないサンプルは無視され、返されるベクターには表示されません。

同様に、histogram_stdvar(v インスタントベクター)は、ネイティブヒストグラムにおける観測値の推定標準分散を返します。

holt_winters()

holt_winters(v レンジベクター, sf スカラー, tf スカラー)は、vの範囲に基づいて時系列の平滑化された値を生成します。平滑化係数sfが小さいほど、古いデータがより重視されます。トレンド係数tfが大きいほど、データ内のトレンドがより考慮されます。sftfの両方は0と1の間である必要があります。

holt_wintersは、ゲージでのみ使用する必要があります。

hour()

hour(v=vector(time()) インスタントベクター)は、UTCの指定された各時間の1日の時間を返します。返される値は0〜23です。

idelta()

idelta(v レンジベクター)は、レンジベクターvの最後の2つのサンプル間の差を計算し、指定されたデルタと等価なラベルを持つインスタントベクターを返します。

ideltaは、ゲージでのみ使用する必要があります。

increase()

increase(v レンジベクター)は、レンジベクターの時系列の増加量を計算します。単調性の破れ(ターゲットの再起動によるカウンターのリセットなど)は、自動的に調整されます。増加量は、レンジベクターセレクターで指定された全時間範囲をカバーするように外挿されるため、カウンターが増分を整数で増やした場合でも、整数以外の結果を得ることが可能です。

次の式例は、レンジベクターの時系列ごとに、過去5分間に測定されたHTTPリクエストの数を返します。

increase(http_requests_total{job="api-server"}[5m])

increaseは、各コンポーネント(観測値の合計とカウント、バケット)がvの最初と最後のネイティブヒストグラムのそれぞれのコンポーネント間の増加量である新しいヒストグラムを計算することによって、ネイティブヒストグラムに対して作用します。ただし、範囲内で浮動小数点サンプルとネイティブヒストグラムサンプルの混合を含むvの各要素は、結果ベクターから欠落します。

increaseは、カウンターと、コンポーネントがカウンターのように動作するネイティブヒストグラムでのみ使用する必要があります。これは、rate(v)に指定された時間範囲ウィンドウの秒数を掛けたもののシンタックスシュガーであり、主に人間の可読性のために使用する必要があります。増加量を1秒ごとに一貫して追跡できるように、記録ルールではrateを使用してください。

irate()

irate(v レンジベクター)は、レンジベクターの時系列の増加の1秒あたりの瞬間レートを計算します。これは、最後の2つのデータポイントに基づいています。単調性の破れ(ターゲットの再起動によるカウンターのリセットなど)は、自動的に調整されます。

次の式例は、レンジベクターの時系列ごとに、最新の2つのデータポイントに対して、最大5分前のHTTPリクエストの1秒あたりのレートを返します。

irate(http_requests_total{job="api-server"}[5m])

irateは、変動の激しい高速に動くカウンターをグラフ化する場合にのみ使用する必要があります。レートのわずかな変化によってFOR句がリセットされ、まれなスパイクのみで構成されたグラフは読みにくいため、アラートや低速に動くカウンターにはrateを使用してください。

irate()集計演算子(例えば、sum())または時間を集計する関数(_over_timeで終わる関数)と組み合わせる場合は、必ず最初にirate()を実行し、次に集計してください。そうしないと、ターゲットが再起動したときにirate()がカウンターのリセットを検出できません。

label_join()

vの各時系列について、label_join(v インスタントベクター, dst_label 文字列, separator 文字列, src_label_1 文字列, src_label_2 文字列, ...)は、すべてのsrc_labelのすべての値をseparatorを使用して結合し、結合された値を含むラベルdst_labelを持つ時系列を返します。この関数には任意の数のsrc_labelを含めることができます。

label_joinは、浮動小数点サンプルとヒストグラムサンプルに同じように作用します。

この例では、各時系列に値a,b,cを持つfooラベルが追加されたベクターが返されます。

label_join(up{job="api-server",src1="a",src2="b",src3="c"}, "foo", ",", "src1", "src2", "src3")

label_replace()

v 内の各時系列に対して、label_replace(v instant-vector, dst_label string, replacement string, src_label string, regex string) は、ラベル src_label の値に対して正規表現 regex を照合します。照合した場合、返される時系列のラベル dst_label の値は、入力内の元のラベルと共に、replacement の展開されたものになります。正規表現内のキャプチャグループは、$1$2 などで参照できます。正規表現内の名前付きキャプチャグループは、$name (name はキャプチャグループ名) で参照できます。正規表現が照合しない場合、時系列は変更されずに返されます。

label_replace は、浮動小数点数およびヒストグラムのサンプルに対して同じように動作します。

この例では、ラベル service に値 a:c を、ラベル foo に値 a を持つ時系列を返します。

label_replace(up{job="api-server",service="a:c"}, "foo", "$1", "service", "(.*):.*")

次の例は、前の例と同じ効果があり、名前付きキャプチャグループの使用例を示しています。 label_replace(up{job="api-server",service="a:c"}, "foo", "$name", "service", "(?P<name>.*):(?P<version>.*)")

ln()

ln(v instant-vector) は、v 内のすべての要素の自然対数を計算します。特殊なケースは次のとおりです。

  • ln(+Inf) = +Inf
  • ln(0) = -Inf
  • ln(x < 0) = NaN
  • ln(NaN) = NaN

log2()

log2(v instant-vector) は、v 内のすべての要素の二項対数を計算します。特殊なケースは ln と同等です。

log10()

log10(v instant-vector) は、v 内のすべての要素の常用対数を計算します。特殊なケースは ln と同等です。

minute()

minute(v=vector(time()) instant-vector) は、UTC での指定された各時間の時間内の分を返します。返される値は 0 から 59 です。

month()

month(v=vector(time()) instant-vector) は、UTC での指定された各時間の年内の月を返します。返される値は 1 から 12 で、1 は 1 月などを意味します。

predict_linear()

predict_linear(v range-vector, t scalar) は、単純線形回帰を使用して、範囲ベクトル v に基づいて、現在の時間から t 秒後の時系列の値を予測します。計算を実行するには、範囲ベクトルに少なくとも 2 つのサンプルが必要です。範囲ベクトルに +Inf または -Inf が見つかった場合、計算された傾きとオフセット値は NaN になります。

predict_linear はゲージでのみ使用する必要があります。

rate()

rate(v range-vector) は、範囲ベクトル内の時系列の 1 秒あたりの平均増加率を計算します。単調性のブレーク(ターゲットの再起動によるカウンタリセットなど)は自動的に調整されます。また、計算は時間範囲の終端まで外挿されるため、スクレイピングの失敗や、範囲の時間間隔とのスクレイピングサイクルの不完全な整合を考慮できます。

次の式の例は、範囲ベクトル内の時系列ごとに、過去 5 分間に測定された HTTP リクエストの 1 秒あたりのレートを返します。

rate(http_requests_total{job="api-server"}[5m])

rate は、各コンポーネント(観測の合計とカウント、バケット)が v 内の最初と最後のネイティブヒストグラム内のそれぞれのコンポーネント間の増加率である新しいヒストグラムを計算することにより、ネイティブヒストグラムに対して動作します。ただし、範囲内で浮動小数点数とネイティブヒストグラムサンプルの両方を含む v の各要素は、結果のベクトルから欠落します。

rate は、カウンタおよび、コンポーネントがカウンタのように動作するネイティブヒストグラムでのみ使用する必要があります。アラートや、動きの遅いカウンタのグラフ化に最適です。

rate() を集計演算子(例:sum())または時間集計関数(_over_time で終わる関数)と組み合わせる場合は、必ず最初に rate() を実行してから集計してください。そうしないと、ターゲットが再起動したときに rate() でカウンタのリセットを検出できません。

resets()

各入力時系列に対して、resets(v range-vector) は、指定された時間範囲内のカウンタのリセット数をインスタントベクトルとして返します。2 つの連続する浮動小数点数サンプル間の値の減少は、カウンタのリセットとして解釈されます。ネイティブヒストグラムのリセットは、より複雑な方法で検出されます。ゼロバケットを含む任意のバケットの減少、または観測数の減少は、カウンタのリセットを構成しますが、以前に設定されたバケットの消失、バケット解像度の増加、またはゼロバケット幅の減少も構成します。

resets は、カウンタとカウンタのようなネイティブヒストグラムでのみ使用する必要があります。

範囲ベクトルに同じシリーズの浮動小数点数とヒストグラムのサンプルが混在している場合、カウンタのリセットは個別に検出され、それらの数が合計されます。浮動小数点数からヒストグラムサンプルへの変更は、カウンタリセットとはみなされません。各浮動小数点数サンプルは次の浮動小数点数サンプルと比較され、各ヒストグラムは次のヒストグラムと比較されます。

round()

round(v instant-vector, to_nearest=1 scalar) は、v 内のすべての要素のサンプル値を最も近い整数に丸めます。同値の場合は、切り上げによって解決されます。オプションの to_nearest 引数を使用すると、サンプル値を丸める必要がある最も近い倍数を指定できます。この倍数は小数でもかまいません。

scalar()

単一要素の入力ベクトルが与えられた場合、scalar(v instant-vector) は、その単一要素のサンプル値をスカラーとして返します。入力ベクトルに要素が 1 つだけない場合、scalarNaN を返します。

sgn()

sgn(v instant-vector) は、すべてのサンプル値がその符号に変換されたベクトルを返します。符号は次のように定義されます。v が正の場合は 1、v が負の場合は -1、v がゼロに等しい場合は 0 です。

sort()

sort(v instant-vector) は、サンプル値でソートされたベクトル要素を昇順で返します。ネイティブヒストグラムは、観測の合計によってソートされます。

sort は、範囲クエリの結果は常に固定された出力順序を持つため、インスタントクエリの結果にのみ影響することに注意してください。

sort_desc()

sort と同じですが、降順でソートします。

sort と同様に、sort_desc は、範囲クエリの結果は常に固定された出力順序を持つため、インスタントクエリの結果にのみ影響します。

sort_by_label()

この関数は、機能フラグ --enable-feature=promql-experimental-functions を介して有効にする必要があります。

sort_by_label(v instant-vector, label string, ...) は、ラベル値でソートされ、ラベル値が等しい場合はサンプル値でソートされたベクトル要素を昇順で返します。

ラベルによるソート関数は、範囲クエリの結果は常に固定された出力順序を持つため、インスタントクエリの結果にのみ影響することに注意してください。

この関数は、自然ソート順を使用します。

sort_by_label_desc()

この関数は、機能フラグ --enable-feature=promql-experimental-functions を介して有効にする必要があります。

sort_by_label と同じですが、降順でソートします。

ラベルによるソート関数は、範囲クエリの結果は常に固定された出力順序を持つため、インスタントクエリの結果にのみ影響することに注意してください。

この関数は、自然ソート順を使用します。

sqrt()

sqrt(v instant-vector) は、v 内のすべての要素の平方根を計算します。

time()

time() は、1970 年 1 月 1 日 UTC からの秒数を返します。これは実際には現在の時刻ではなく、式が評価される時刻を返すことに注意してください。

timestamp()

timestamp(v instant-vector) は、指定されたベクトルの各サンプルのタイムスタンプを、1970 年 1 月 1 日 UTC からの秒数として返します。ヒストグラムサンプルでも機能します。

vector()

vector(s scalar) は、ラベルのないベクトルとしてスカラー s を返します。

year()

year(v=vector(time()) instant-vector) は、UTC での指定された各時間の年を返します。

<aggregation>_over_time()

次の関数を使用すると、指定された範囲ベクトルの各系列を時間経過で集計し、系列ごとの集計結果を持つインスタントベクトルを返すことができます。

  • avg_over_time(range-vector): 指定された間隔内のすべてのポイントの平均値。
  • min_over_time(range-vector): 指定された間隔内のすべてのポイントの最小値。
  • max_over_time(range-vector): 指定された間隔内のすべてのポイントの最大値。
  • sum_over_time(range-vector): 指定された間隔内のすべての値の合計。
  • count_over_time(range-vector): 指定された間隔内のすべての値のカウント。
  • quantile_over_time(scalar, range-vector): 指定された間隔内の値のφ分位数 (0 ≤ φ ≤ 1)。
  • stddev_over_time(range-vector): 指定された間隔内の値の母集団標準偏差。
  • stdvar_over_time(range-vector): 指定された間隔内の値の母集団標準分散。
  • last_over_time(range-vector): 指定された間隔内の最新のポイント値。
  • present_over_time(range-vector): 指定された間隔内の任意の系列の値 1。

機能フラグ --enable-feature=promql-experimental-functions が設定されている場合、次の追加関数が利用可能です。

  • mad_over_time(range-vector): 指定された間隔内のすべてのポイントの中央絶対偏差。

指定された間隔内のすべての値は、間隔全体で値が等間隔に配置されていない場合でも、集計において同じ重みを持つことに注意してください。

avg_over_timesum_over_timecount_over_timelast_over_time、および present_over_time は、ネイティブヒストグラムを期待どおりに処理します。他のすべての関数は、ヒストグラムサンプルを無視します。

三角関数

三角関数はラジアンで動作します

  • acos(v instant-vector): v 内のすべての要素の逆余弦を計算します(特殊なケース)。
  • acosh(v instant-vector): v 内のすべての要素の逆双曲線余弦を計算します(特殊なケース)。
  • asin(v instant-vector): v 内のすべての要素の逆正弦を計算します(特殊なケース)。
  • asinh(v instant-vector): v 内のすべての要素の逆双曲線正弦を計算します(特殊なケース)。
  • atan(v instant-vector): v 内のすべての要素の逆正接を計算します(特殊なケース)。
  • atanh(v instant-vector): v 内のすべての要素の逆双曲線正接を計算します(特殊なケース)。
  • cos(v instant-vector): v 内のすべての要素の余弦を計算します(特殊なケース)。
  • cosh(v instant-vector): v 内のすべての要素の双曲線余弦を計算します(特殊なケース)。
  • sin(v instant-vector): v 内のすべての要素の正弦を計算します(特殊なケース)。
  • sinh(v instant-vector): v 内のすべての要素の双曲線正弦を計算します(特殊なケース)。
  • tan(v instant-vector): v 内のすべての要素の正接を計算します(特殊なケース)。
  • tanh(v instant-vector): v のすべての要素の双曲線正接を計算します (特殊なケース)。

以下は、度とラジアンを変換するのに役立ちます。

  • deg(v instant-vector): v のすべての要素について、ラジアンを度に変換します。
  • pi(): 円周率を返します。
  • rad(v instant-vector): v のすべての要素について、度をラジアンに変換します。

このドキュメントはオープンソースです。issueを提出したり、プルリクエストを送ることで改善にご協力ください。