MetricsQL 構文リファレンス¶
現在、Guanceのダッシュボードでは、MetricsQL 言語を使用して Prometheus メトリクスをクエリできます。
MetricsQL は、VictoriaMetrics によって開発された PromQL 構文の拡張言語です。ほとんどの場合、MetricsQL は PromQL のクエリと互換性がありますが、PromQL の直感的でない部分や不便な部分を拡張・最適化しています。この記事では、互換性の設計の詳細について説明しています。
ほとんどの場合、理解している PromQL 構文のままクエリを実行しても問題ありません。gauge データの p95 を計算したい場合や、topk が正確な数の系列を返すようにしたい場合など、複雑な問題に直面したときは、以下の構文リファレンスを参照して解決策を探してください。
MetricsQL と PromQL 構文の主な違いは以下の通りです。
- MetricsQL は、ルックバックウィンドウ内の前のポイントを考慮します。これは rate や increase などの範囲関数に適用されます。これにより、ユーザーが
increase(metric[$__interval])クエリに対して期待する正確な結果を返すことができます(Prometheus がこのようなクエリに対して不完全な結果を返すのとは対照的です)。 - MetricsQL は範囲関数の結果を推測しません。これにより、PromQL のこの問題が解決されます。PromQL と MetricsQL における rate および increase の計算の技術的詳細については、この問題のコメントを参照してください。
- MetricsQL は、
step値が収集間隔より小さい rate に対して、期待される非空の応答を返します。これにより、Grafana で表示される問題が解決されます。また、このブログ記事も参照してください。 - MetricsQL は、
scalar型とラベルなしのinstant vectorを同じものとして扱います。これらの型の微妙な違いがユーザーを混乱させることが多いからです。詳細については、該当する Prometheus ドキュメントを参照してください。 - MetricsQL は出力からすべての
NaN値を削除します。そのため、(-1)^0.5のようなクエリは MetricsQL では空の結果を返しますが、PromQL では一連のNaN値を返します。フロントエンドはNaN値に対して線や点を描画しないため、最終的な結果は MetricsQL と PromQL のどちらでも同じであることに注意してください。 - MetricsQL は、元の時系列の意味を変更しない関数を適用した後、メトリクス名を保持します。例えば、min_over_time(foo) や round(foo) は結果に
fooメトリクス名を保持します。詳細については、この問題を参照してください。
また、Guanceで使用する際は、元の MetricsQL との違いに注意してください。
- measurement の選択をサポートします。メトリクス名の前に measurement をコロンで区切って指定する必要があります(例:
increase(measurement:metric[1m]))。measurement を指定しない場合、クエリのパフォーマンスが著しく低下します。 - Guanceの UI では、現在
stepを手動で設定できません。stepは時間範囲と表示密度に基づいて自動計算されます。 - Guanceの UI は現在、ヒートマップタイプのグラフ表示をサポートしていません。これにより、ヒストグラムの表示効果に影響を与える可能性があります。
この記事の内容は主に https://docs.victoriametrics.com/MetricsQL.html の翻訳に基づいています。日本語訳に疑義がある場合は、原文を参照して読むこともできます。
機能一覧¶
MetricsQL には以下の機能が含まれます。
- 角括弧内のルックバックウィンドウを省略できます。MetricsQL は、グラフの構築に使用される
stepに基づいて、自動的に後方参照するウィンドウを選択します。以下のクエリは MetricsQL で有効です:rate(node_network_receive_bytes_total)。Grafana で使用する場合、rate(node_network_receive_bytes_total[$__interval])と同等です。 - 集約関数は任意の数の引数を受け取ることができます。例えば、
avg(q1, q2, q3)はq1、q2、q3の各ポイントの平均値を返します。 - @修飾子 はクエリ内の任意の場所に配置できます。例えば、
sum(foo) @ end()は、選択された時間範囲[start ... end]のendタイムスタンプにおけるsum(foo)の値を計算します。 - 任意のサブ式を @修飾子 として使用できます。例えば、
foo @ (end() - 1h)は、選択された時間範囲[start ... end]のend - 1hタイムスタンプでfooを計算します。 - offset、角括弧内のルックバックウィンドウ、および サブクエリ 内の
step値は、[Ni]構文を使用して現在のステップを参照できます。Grafana では$__interval値とも呼ばれます。例えば、rate(metric[10i] offset 5i)は、過去 10 ステップ分をカバーし、5 ステップ分のオフセットを持つ 1 秒あたりのレートを返します。 - offset はクエリ内の任意の場所に配置できます。例えば、
sum(foo) offset 24h。 - 角括弧内のルックバックウィンドウと offset は小数値にできます。例えば、
rate(node_network_receive_bytes_total[1.5m] offset 0.5d)。 - 期間のサフィックスはオプションです。サフィックスを省略した場合、期間は秒単位となります。例えば、
rate(m[300] offset 1800)はrate(m[5m]) offset 30mと同等です。 - 期間はクエリ内の任意の場所に配置できます。例えば、
sum_over_time(m[1h]) / 1hはsum_over_time(m[1h]) / 3600と同等です。 - 数値には
K、Ki、M、Mi、G、Gi、T、Tiのサフィックスを付けることができます。例えば、8Kは8000に相当し、1.2Miは1.2*1024*1024に相当します。 - すべてのリスト(ラベルフィルター、関数引数、式など)の末尾にカンマを付けることができます。例えば、以下のクエリは有効です:
m{foo="bar",}、f(a, b,)、WITH (x=y,) x。これにより、複数行のクエリのメンテナンスが容易になります。 - メトリクス名とラベル名には任意の Unicode 文字を使用できます。例えば、
температура{город="Киев"}は MetricsQL 式です。 - メトリクス名とラベル名にはエスケープ文字を含めることができます。例えば、
foo\\-bar{baz\\=aa="b"}は有効な式です。これは、値bを持つラベルbaz=aaを持つ、名前foo-barの時系列を返します。また、以下のエスケープシーケンスもサポートされています。\\xXX(XXはエスケープする ASCII 文字の 16 進数表現)\\uXXXX(XXXXはエスケープする Unicode 文字の 16 進数表現)
- 集約関数は、オプションの
limit Nサフィックスをサポートし、出力系列の数を制限します。例えば、sum(x) by (y) limit 3は、集約後の出力時系列数を 3 に制限します。その他の時系列はすべて削除されます。 - histogram_quantile はオプションの第 3 引数
boundsLabelを受け入れます。この場合、推定パーセンタイルのlower境界とupper境界を返します。詳細については、この問題を参照してください。 default二項演算子。q1 default q2は、q1のギャップをq2の対応する値で埋めます。if二項演算子。q1 if q2は、q2に値が存在しないq1の値を削除します。ifnot二項演算子。q1 ifnot q2は、q2に値が存在するq1の値を削除します。WITHテンプレート。この機能は、複雑なクエリの作成と管理を簡素化します。 WITH templates playground で試すことができます。- 文字列リテラルは連結できます。これは
WITHテンプレートで便利です:WITH (commonPrefix="long_metric_prefix_") {__name__=commonPrefix+"suffix1"} / {__name__=commonPrefix+"suffix2"}。 keep_metric_names修飾子は、すべての ロールアップ関数 および 変換関数 に適用できます。この修飾子は、関数の結果からメトリクス名が削除されるのを防ぎます。これらのドキュメントを参照してください。
keep_metric_names¶
デフォルトでは、元の時系列の意味を変更する関数を適用した後、メトリクス名は削除されます。異なる名前を持つ複数の時系列に関数を適用する場合、これにより「重複時系列」エラーが発生する可能性があります。このエラーは、関数に keep_metric_names 修飾子を適用することで解決できます。
例えば、rate({__name__=~"foo|bar"}) keep_metric_names は、返される時系列に foo と bar のメトリクス名を保持します。
MetricsQL 関数¶
MetricsQL は以下の関数を提供します。
ロールアップ関数¶
ロールアップ関数(範囲関数またはウィンドウ関数とも呼ばれる)は、指定されたルックバックウィンドウ上で 元のサンプル に対してロールアップ計算を実行します。シリーズセレクター に適用されます。例えば、avg_over_time(temperature[24h]) は、過去 24 時間の元のサンプルの平均温度を計算します。
その他の詳細:
- ロールアップ関数を使用してグラフを構築する場合、グラフ上の各ポイントは独立してロールアップを計算します。例えば、
avg_over_time(temperature[24h])グラフの各ポイントは、過去 24 時間の平均温度を示します。ポイント間の間隔は、フロントエンドから渡されるstepクエリパラメータによって設定されます。 - 指定された シリーズセレクター が複数の時系列を返す場合、返された各系列に対してロールアップ計算が個別に実行されます。
- 角括弧内にルックバックウィンドウが指定されていない場合、MetricsQL は自動的にルックバックウィンドウをグラフ上のポイント間の間隔(
stepクエリパラメータ(/api/v1/query_range で指定)、Grafana の$__interval値、または MetricsQL の1i期間)に設定します。例えば、rate(http_requests_total)はrate(http_requests_total[$__interval])と同等です。MetricsQL では、rate(http_requests_total[1i])とも同等です。 - MetricsQL の各 シリーズセレクター は、ロールアップ関数でラップする必要があります。そうしないと、計算が実行される前に自動的に default_rollup に変換されます。例えば、
foo{bar="baz"}は、計算が実行される前に自動的にdefault_rollup(foo{bar="baz"}[1i])に変換されます。 - シリーズセレクター 以外のものがロールアップ関数に渡された場合、内部の引数は自動的に サブクエリ に変換されます。
- すべてのロールアップ関数は、オプションの
keep_metric_names修飾子を受け入れます。この修飾子が設定されている場合、関数は結果にメトリクス名を保持します。これらのドキュメントを参照してください。
暗黙的なクエリ変換 も参照してください。
サポートされているロールアップ関数の一覧¶
absent_over_time¶
absent_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内に元のサンプルが存在しない場合は 1 を返します。それ以外の場合は空の結果を返します。
この関数は PromQL でサポートされています。 present_over_time も参照してください。
aggr_over_time¶
aggr_over_time(("rollup_func1","rollup_func2",...), series_selector[d]) は ロールアップ関数 です。指定された シリーズセレクター 内の各時系列に対して、リストされたすべての rollup_func* を個別に計算します。rollup_func* には任意のロールアップ関数を含めることができます。例えば、aggr_over_time(("min_over_time","max_over_time","rate"), m[d]) は、m[d] の min_over_time、max_over_time、rate を計算します。
ascent_over_time¶
ascent_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d における元のサンプル値の上昇を計算します。計算は、返された各時系列に対して個別に実行されます。
この関数は、GPS トラッキングにおける高度の増加を追跡するのに便利です。結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
descent_over_time も参照してください。
avg_over_time¶
avg_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d における元のサンプル値の平均を計算します。指定された シリーズセレクター から返された各時系列ごとに計算されます。
この関数は PromQL でサポートされています。 median_over_time も参照してください。
changes¶
changes(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内の元のサンプルの変更回数を計算します。指定された シリーズセレクター から返された各時系列ごとに計算されます。Prometheus の changes() とは異なり、指定されたルックバックウィンドウ d の前の最後のサンプルの変更を考慮します。詳細については、この記事を参照してください。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。 changes_prometheus も参照してください。
changes_prometheus¶
changes_prometheus(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内の元のサンプルの変更回数を計算します。指定された シリーズセレクター から返された各時系列ごとに計算されます。Prometheus とは異なり、指定されたルックバックウィンドウ d の前の最後のサンプルの変更を考慮しません。詳細については、この記事を参照してください。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。 changes も参照してください。
count_eq_over_time¶
count_eq_over_time(series_selector[d], eq) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で eq に等しい元のサンプルの数をカウントします。指定された シリーズセレクター から返された各時系列ごとに計算されます。結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
count_over_time も参照してください。
count_gt_over_time¶
count_gt_over_time(series_selector[d], gt) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で gt より大きい元のサンプルの数をカウントします。指定された シリーズセレクター から返された各時系列ごとに計算されます。結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
count_over_time も参照してください。
count_le_over_time¶
count_le_over_time(series_selector[d], le) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で le 以下の元のサンプルの数をカウントします。指定された シリーズセレクター から返された各時系列ごとに計算されます。結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
count_over_time も参照してください。
count_ne_over_time¶
count_ne_over_time(series_selector[d], ne) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で ne に等しくない元のサンプルの数をカウントします。指定された シリーズセレクター から返された各時系列ごとに計算されます。結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
count_over_time も参照してください。
count_over_time¶
count_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上での元のサンプルの数をカウントします。指定された シリーズセレクター から返された各時系列ごとに計算されます。結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。 count_le_over_time、count_gt_over_time、count_eq_over_time、count_ne_over_time も参照してください。
decreases_over_time¶
decreases_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で元のサンプル値が減少した回数を計算します。指定された シリーズセレクター から返された各時系列ごとに計算されます。結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
increases_over_time も参照してください。
default_rollup¶
default_rollup(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上の最後の元のサンプル値を返します。指定された シリーズセレクター から返された各時系列ごとに計算されます。
delta¶
delta(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内の最後のサンプルと最初のサンプルの差を計算します。指定された シリーズセレクター から返された各時系列ごとに計算されます。MetricsQL の delta() 関数の動作は、Prometheus の delta() 関数の動作とは若干異なります。詳細については、この記事を参照してください。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。 increase および delta_prometheus も参照してください。
delta_prometheus¶
delta_prometheus(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内の最初と最後のサンプルの差を計算します。指定された シリーズセレクター から返された各時系列ごとに計算されます。
delta_prometheus() の動作は、Prometheus の delta() 関数の動作に近いものです。詳細については、この記事を参照してください。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
delta も参照してください。
deriv¶
deriv(series_selector[d]) は ロールアップ関数 です。指定された シリーズセレクター から返された各時系列の 1 秒あたりの導関数を、線形回帰を使用して計算します。
結果のメトリクス名は削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。 deriv_fast および ideriv も参照してください。
deriv_fast¶
deriv_fast(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内の最初と最後の元のサンプルを使用して、各時系列の 1 秒あたりの導関数を計算します。
結果のメトリクス名は削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
descent_over_time¶
descent_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内の元のサンプル値の下降を計算します。計算は、返された各時系列に対して個別に実行されます。
この関数は、GPS トラッキングにおける高度の損失を追跡するのに便利です。
結果のメトリクス名は削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
ascent_over_time も参照してください。
distinct_over_time¶
distinct_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内の各時系列における、異なる元のサンプル値の数を返します。
結果のメトリクス名は削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
duration_over_time¶
duration_over_time(series_selector[d], max_interval) は ロールアップ関数 です。指定された シリーズセレクター がルックバックウィンドウ d 内に存在する期間(秒単位)を返します。各系列内の隣接するサンプル間の間隔が max_interval を超えないことが期待されます。超えた場合、そのような間隔はギャップと見なされ、計算されません。
結果のメトリクス名は削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
first_over_time¶
first_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内の各時系列の最初の元のサンプル値を返します。
last_over_time および tfirst_over_time も参照してください。
geomean_over_time¶
geomean_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内の元のサンプルの幾何平均を計算します。計算は、返された各時系列に対して個別に実行されます。
結果のメトリクス名は削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
histogram_over_time¶
histogram_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内の元のサンプルに対して VictoriaMetrics ヒストグラム を計算します。これは、指定された シリーズセレクター 内の各時系列に対して個別に計算されます。生成されたヒストグラムは、histogram_quantile に渡して複数の gauge のパーセンタイルを計算するのに便利です。例えば、以下のクエリは過去 24 時間の各国の平均気温を計算します:
histogram_quantile(0.5, sum(histogram_over_time(temperature[24h])) by (vmrange,country))。
hoeffding_bound_lower¶
hoeffding_bound_lower(phi, series_selector[d]) は ロールアップ関数 です。範囲 [0...1] 内の指定された phi に対する下限 Hoeffding の不等式 を計算します。
hoeffding_bound_upper も参照してください。
hoeffding_bound_upper¶
hoeffding_bound_upper(phi, series_selector[d]) は ロールアップ関数 です。範囲 [0...1] 内の指定された phi に対する上限 Hoeffding の不等式 を計算します。
hoeffding_bound_lower も参照してください。
holt_winters¶
holt_winters(series_selector[d], sf, tf) は ロールアップ関数 です。指定された平滑化係数 sf とトレンド係数 tf を使用して、指定されたルックバックウィンドウ d 上の元のサンプルの Holt-Winters 値(二重指数平滑化 としても知られる)を計算します。sf と tf は両方とも範囲 [0...1] 内である必要があります。シリーズセレクター は gauge タイプ の時系列を返すことが期待されます。
この関数は PromQL でサポートされています。 range_linear_regression も参照してください。
idelta¶
idelta(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内の各時系列における、最後の 2 つの元のサンプル間の差を計算します。
結果のメトリクス名は削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。 delta も参照してください。
ideriv¶
ideriv(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上の最後の 2 つの元のサンプルに基づいて、各時系列の 1 秒あたりの導関数を計算します。計算は、指定された シリーズセレクター から返された各時系列に対して個別に実行されます。
結果のメトリクス名は削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
deriv も参照してください。
increase¶
increase(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内の各時系列の増加量を計算します。シリーズセレクター は counter タイプ の時系列を返すことが期待されます。
Prometheus とは異なり、結果の計算時に指定されたルックバックウィンドウ d の前の最後のサンプルを考慮します。詳細については、この記事を参照してください。
結果のメトリクス名は削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。 increase_pure、increase_prometheus、delta も参照してください。
increase_prometheus¶
increase_prometheus(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内の各時系列の増加量を計算します。シリーズセレクター は counter タイプ の時系列を返すことが期待されます。結果の計算時に、Prometheus とは異なり、指定されたルックバックウィンドウ d の前の最後のサンプルを考慮しません。詳細については、この記事を参照してください。
結果のメトリクス名は削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
increase_pure および increase も参照してください。
increase_pure¶
increase_pure(series_selector[d]) は ロールアップ関数 です。increase と同じですが、以下の点が異なります。counter は常に 0 から始まると仮定します。一方、increase は最初の値が大きすぎる場合、その値を無視します。
increases_over_time¶
increases_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内の各時系列における、元のサンプル値の増加回数を計算します。
結果のメトリクス名は削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
decreases_over_time も参照してください。
integrate¶
integrate(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d に基づいて、指定された シリーズセレクター から返された各時系列上の元のサンプルの積分を計算します。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
irate¶
irate(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d に基づいて、指定された シリーズセレクター から返された各時系列上の最後の 2 つの元のサンプルの瞬間的な 1 秒あたりの増加率を計算します。series_selector は counter タイプの時系列を返すことが期待されます。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。 rate および rollup_rate も参照してください。
lag¶
lag(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上の最後のサンプルと現在のポイントのタイムスタンプとの間の期間(秒単位)を返します。指定された シリーズセレクター から返された各時系列に対して個別に計算されます。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
lifetime および duration_over_time も参照してください。
last_over_time¶
last_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で、指定された シリーズセレクター から返された各時系列の最後の元のサンプル値を返します。
この関数は PromQL でサポートされています。 first_over_time および tlast_over_time も参照してください。
lifetime¶
lifetime(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上の最後のサンプルと最初のサンプルの間の期間(秒単位)を返します。指定された シリーズセレクター から返された各時系列に対して個別に計算されます。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
duration_over_time および lag も参照してください。
mad_over_time¶
mad_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で、指定された シリーズセレクター から返された各時系列の元のサンプルの 中央絶対偏差 を計算します。
max_over_time¶
max_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で、指定された シリーズセレクター から返された各時系列の元のサンプルの最大値を計算します。
この関数は PromQL でサポートされています。 tmax_over_time も参照してください。
median_over_time¶
median_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で、指定された シリーズセレクター から返された各時系列の元のサンプルの中央値を計算します。
avg_over_time も参照してください。
min_over_time¶
min_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で、指定された シリーズセレクター から返された各時系列の元のサンプルの最小値を計算します。
この関数は PromQL でサポートされています。 tmin_over_time も参照してください。
mode_over_time¶
mode_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上の元のサンプルの 最頻値 を計算します。指定された シリーズセレクター から返された各時系列に対して個別に計算されます。元のサンプル値は離散的であることが期待されます。
predict_linear¶
predict_linear(series_selector[d], t) は ロールアップ関数 です。線形補間を使用して、指定されたルックバックウィンドウ d 上の元のサンプル値から t 秒後の値を予測します。予測値は、指定された シリーズセレクター から返された各時系列に対して個別に計算されます。
この関数は PromQL でサポートされています。 range_linear_regression も参照してください。
present_over_time¶
present_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上に少なくとも 1 つの元のサンプルが存在する場合は 1 を返します。それ以外の場合は空の結果を返します。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。
quantile_over_time¶
quantile_over_time(phi, series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で、指定された シリーズセレクター から返された各時系列の phi 分位数を計算します。phi 値は範囲 [0...1] 内である必要があります。
この関数は PromQL でサポートされています。 quantiles_over_time も参照してください。
quantiles_over_time¶
quantiles_over_time("phiLabel", phi1, ..., phiN, series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で、指定された シリーズセレクター から返された各時系列の phi* 分位数を計算します。この関数は、各 phi* に対して個別の時系列を返し、ラベル {phiLabel="phi*"} が付加されます。phi* 値は範囲 [0...1] 内である必要があります。
quantile_over_time も参照してください。
range_over_time¶
range_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で、指定された シリーズセレクター から返された各時系列の値の範囲を計算します。例えば、max_over_time(series_selector[d]) - min_over_time(series_selector[d]) を計算します。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
rate¶
rate(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で、指定された シリーズセレクター から返された各時系列の平均 1 秒あたりの増加率を計算します。series_selector は counter タイプの時系列を返すことが期待されます。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。 irate および rollup_rate も参照してください。
rate_over_sum¶
rate_over_sum(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で、指定された シリーズセレクター から返された各時系列の元のサンプルの合計の 1 秒あたりのレートを計算します。これらの計算は各時系列に対して個別に実行されます。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
resets¶
resets(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で、指定された シリーズセレクター から返された各時系列のカウンターリセット回数を返します。series_selector は counter タイプの時系列を返すことが期待されます。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。
rollup¶
rollup(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上の元のサンプルの min、max、avg 値を計算し、追加のラベル rollup="min"、rollup="max"、rollup="avg" を付けて時系列で返します。これらの値は、指定された シリーズセレクター から返された各時系列に対して個別に計算されます。
オプションの第 2 引数 "min"、"max"、または "avg" を渡すと、1 つの計算結果のみを保持し、ラベルは追加されません。
rollup_candlestick¶
rollup_candlestick(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で open、high、low、close 値(OHLC としても知られる)を計算し、追加のラベル rollup="open"、rollup="high"、rollup="low"、rollup="close" を付けて時系列で返します。これらの計算は、指定された シリーズセレクター から返された各時系列に対して個別に実行されます。この関数は金融アプリケーションに非常に便利です。
オプションの第 2 引数 "min"、"max"、または "avg" を渡すと、1 つの計算結果のみを保持し、ラベルは追加されません。
rollup_delta¶
rollup_delta(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で隣接する元のサンプル間の差を計算し、計算された差の min、max、avg 値を、追加のラベル rollup="min"、rollup="max"、rollup="avg" を付けて時系列で返します。これらの計算は、指定された シリーズセレクター から返された各時系列に対して個別に実行されます。
オプションの第 2 引数 "min"、"max"、または "avg" を渡すと、1 つの計算結果のみを保持し、ラベルは追加されません。
生成されたロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
rollup_increase も参照してください。
rollup_deriv¶
rollup_deriv(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で隣接する元のサンプルの 1 秒あたりの導関数を計算し、計算された 1 秒あたりの導関数の min、max、avg 値を、追加のラベル rollup="min"、rollup="max"、rollup="avg" を付けて時系列で返します。これらの計算は、指定された シリーズセレクター から返された各時系列に対して個別に実行されます。
オプションの第 2 引数 "min"、"max"、または "avg" を渡すと、1 つの計算結果のみを保持し、ラベルは追加されません。
生成されたロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
rollup_increase¶
rollup_increase(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で隣接する元のサンプル間の増加量を計算し、計算された増加量の min、max、avg 値を、追加のラベル rollup="min"、rollup="max"、rollup="avg" を付けて時系列で返します。これらの計算は、指定された シリーズセレクター から返された各時系列に対して個別に実行されます。
オプションの第 2 引数 "min"、"max"、または "avg" を渡すと、1 つの計算結果のみを保持し、ラベルは追加されません。
生成されたロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。 rollup_delta も参照してください。
rollup_rate¶
rollup_rate(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ内で隣接する元のサンプルの 1 秒あたりの変化率を計算し、計算された 1 秒あたりの変化率の min、max、avg 値を、追加のラベル rollup="min"、rollup="max"、rollup="avg" を付けて時系列で返します。
この記事 を参照して、
rollup_rate()をいつ使用するかを理解してください。
オプションの第 2 引数 "min"、"max"、または "avg" を渡すと、1 つの計算結果のみを保持し、ラベルは追加されません。
これらの計算は、指定された シリーズセレクター から返された各時系列に対して実行されます。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
rollup_scrape_interval¶
rollup_scrape_interval(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ内で隣接する元のサンプル間の間隔(秒単位)を計算し、計算された間隔の min、max、avg 値を、追加のラベル rollup="min"、rollup="max"、rollup="avg" を付けて時系列で返します。
これらの計算は、指定された シリーズセレクター から返された各時系列に対して実行されます。
オプションの第 2 引数 "min"、"max"、または "avg" を渡すと、1 つの計算結果のみを保持し、ラベルは追加されません。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。 scrape_interval も参照してください。
scrape_interval¶
scrape_interval(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ内の元のサンプル間の平均間隔(秒単位)を計算します。指定された シリーズセレクター から返された各時系列ごとに計算されます。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
rollup_scrape_interval も参照してください。
share_gt_over_time¶
share_gt_over_time(series_selector[d], gt) は ロールアップ関数 です。指定されたルックバックウィンドウ内で gt より大きい元のサンプルの割合(範囲 [0...1] 内)を返します。指定された シリーズセレクター から返された各時系列に対して個別に計算されます。
この関数は SLI と SLO の計算に使用されます。例:share_gt_over_time(up[24h], 0) - 過去 24 時間のサービス可用性を返します。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
share_le_over_time も参照してください。
share_le_over_time¶
share_le_over_time(series_selector[d], le) は ロールアップ関数 です。指定されたルックバックウィンドウ内で le 以下の元のサンプルの割合(範囲 [0...1] 内)を返します。指定された シリーズセレクター から返された各時系列に対して個別に計算されます。
この関数は SLI と SLO の計算に使用されます。例:share_le_over_time(memory_usage_bytes[24h], 100*1024*1024) は、過去 24 時間にメモリ使用量が 100MB 以下であった時系列値の割合を返します。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
share_gt_over_time も参照してください。
stale_samples_over_time¶
stale_samples_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内で、指定された シリーズセレクター に一致する各時系列の stale markers の数を計算します。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
stddev_over_time¶
stddev_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内で、指定された シリーズセレクター から返された各時系列の元のサンプルの標準偏差を計算します。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。 stdvar_over_time も参照してください。
stdvar_over_time¶
stdvar_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内で、指定された シリーズセレクター から返された各時系列の元のサンプルの標準分散を計算します。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。 stddev_over_time も参照してください。
sum_over_time¶
sum_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内で、指定された シリーズセレクター から返された各時系列の元のサンプル値の合計を計算します。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。
sum2_over_time¶
sum2_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内で、指定された シリーズセレクター から返された各時系列の元のサンプル値の二乗和を計算します。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
timestamp¶
timestamp(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内で、指定された シリーズセレクター から返された各時系列の最後の元のサンプルのタイムスタンプ(秒単位)を返します。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。 timestamp_with_name も参照してください。
timestamp_with_name¶
timestamp_with_name(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内で、指定された シリーズセレクター から返された各時系列の最後の元のサンプルのタイムスタンプ(秒単位)を返します。
結果のロールアップのメトリクス名は保持されます。
timestamp も参照してください。
tfirst_over_time¶
tfirst_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内で、指定された シリーズセレクター から返された各時系列の最初の元のサンプルのタイムスタンプ(秒単位)を返します。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
first_over_time も参照してください。
tlast_change_over_time¶
tlast_change_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 内で、指定された シリーズセレクター から返された各時系列の最後の変更のタイムスタンプを返します。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
last_over_time も参照してください。
tlast_over_time¶
tlast_over_time(series_selector[d]) は ロールアップ関数 です。timestamp のエイリアスです。
tlast_change_over_time も参照してください。
tmax_over_time¶
tmax_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で最大値を持つ元のサンプルのタイムスタンプ(秒単位)を返します。指定された シリーズセレクター から返された各時系列に対して個別に計算されます。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
max_over_time も参照してください。
tmin_over_time¶
tmin_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上で最小値を持つ元のサンプルのタイムスタンプ(秒単位)を返します。指定された シリーズセレクター から返された各時系列に対して個別に計算されます。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
min_over_time も参照してください。
zscore_over_time¶
zscore_over_time(series_selector[d]) は ロールアップ関数 です。指定されたルックバックウィンドウ d 上の元のサンプルの z-score を返します。指定された シリーズセレクター から返された各時系列に対して個別に計算されます。
結果のロールアップからメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
zscore および range_trim_zscore も参照してください。
変換関数¶
変換関数は、ロールアップ結果 の変換を計算します。例えば、abs(delta(temperature[24h])) は、ロールアップから返された各時系列の各ポイントの絶対値を計算します。
追加の詳細:
- 変換関数が直接 シリーズセレクター に適用された場合、変換の計算前に自動的に default_rollup() 関数が適用されます。例えば、
abs(temperature)は暗黙的にabs(default_rollup(temperature[1i]))に変換されます。 - すべての変換関数は、オプションの keep_metric_names 修飾子を受け入れます。設定されている場合、関数は結果の時系列からメトリクス名を削除しません。これらのドキュメントを参照してください。
暗黙的なクエリ変換 も参照してください。
サポートされている変換関数の一覧¶
abs¶
abs(q) は 変換関数 です。q によって返された各時系列の各ポイントの絶対値を計算します。
この関数は PromQL でサポートされています。
absent¶
absent(q) は 変換関数 です。q にポイントがない場合は 1 を返します。それ以外の場合は空の結果を返します。
この関数は PromQL でサポートされています。 absent_over_time も参照してください。
acos¶
acos(q) は 変換関数 です。q によって返された各時系列の各ポイントの 逆余弦 を返します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
acosh¶
acosh(q) は 変換関数 です。q によって返された各時系列の各ポイントの 逆双曲線余弦 を返します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。 cosh も参照してください。
asin¶
asin(q) は 変換関数 です。q によって返された各時系列の各ポイントの 逆正弦 を返します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
asinh¶
asinh(q) は 変換関数 です。q によって返された各時系列の各ポイントの 逆双曲線正弦 を返します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。 sinh も参照してください。
atan¶
atan(q) は 変換関数 です。q によって返された各時系列の各ポイントの 逆正接 を返します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。 tan も参照してください。
atanh¶
atanh(q) は 変換関数 です。q によって返された各時系列の各ポイントの 逆双曲線正接 を返します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。 tanh も参照してください。
bitmap_and¶
bitmap_and(q, mask) は 変換関数 です。q から返された各時系列の各ポイント v に対して、ビット演算 v & mask を計算します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
bitmap_or¶
bitmap_or(q, mask) は 変換関数 です。q から返された各時系列の各ポイント v に対して、ビット演算 v | mask を計算します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
bitmap_xor¶
bitmap_xor(q, mask) は 変換関数 です。q から返された各時系列の各ポイント v に対して、ビット演算 v ^ mask を計算します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
buckets_limit¶
buckets_limit(limit, buckets) は 変換関数 です。ヒストグラムバケット の数を指定された limit に制限します。
prometheus_buckets および histogram_quantile も参照してください。
ceil¶
ceil(q) は 変換関数 です。q によって返された各時系列の各ポイントを最も近い整数に切り上げます。
clamp¶
clamp(q, min, max) は 変換関数 です。指定された min および max 値を使用して、q によって返された各時系列の各ポイントをクランプします。
この関数は PromQL でサポートされています。 clamp_min および clamp_max も参照してください。
clamp_max¶
clamp_max(q, max) は 変換関数 です。q によって返された各時系列の各ポイントを指定された max 値以下にクランプします。
clamp_min¶
clamp_min(q, min) は 変換関数 です。q によって返された各時系列の各ポイントを指定された min 値以上にクランプします。
cos¶
cos(q) は 変換関数 です。q によって返された各時系列の各ポイント v に対して cos(v) を返します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。 sin も参照してください。
cosh¶
cosh(q) は 変換関数 です。q によって返された各時系列の各ポイントの 双曲線余弦 を返します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。 acosh も参照してください。
day_of_month¶
day_of_month(q) は 変換関数 です。q によって返された各時系列の各ポイントの月内の日付を返します。q は Unix タイムスタンプを返すことが期待されます。戻り値は範囲 [1...31] 内です。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。
day_of_week¶
day_of_week(q) は 変換関数 です。q によって返された各時系列の各ポイントの曜日を返します。q は Unix タイムスタンプを返すことが期待されます。戻り値は範囲 [0...6] 内で、0 は日曜日、6 は土曜日を示します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。
days_in_month¶
days_in_month(q) は 変換関数 です。q によって返された各時系列の各ポイントで識別される月の日数を返します。q は Unix タイムスタンプを返すことが期待されます。戻り値は範囲 [28...31] 内です。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。
deg¶
deg(q) は 変換関数 です。q によって返された各時系列の各ポイントをラジアンから度に変換します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。 rad も参照してください。
end¶
end() は 変換関数 です。最後のポイントの Unix タイムスタンプ(秒単位)を返します。これは、/api/v1/query_range に渡される end クエリパラメータです。
exp¶
exp(q) は 変換関数 です。q によって返された各時系列の各ポイントに対して e^v を計算します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。 ln も参照してください。
floor¶
floor(q) は 変換関数 です。q によって返された各時系列の各ポイントを最も近い整数に切り捨てます。
histogram_avg¶
histogram_avg(buckets) は 変換関数 です。指定された buckets の平均値を計算します。複数の時系列にわたる指定された時間範囲の平均値の計算に使用できます。例えば、histogram_avg(sum(histogram_over_time(response_time_duration_seconds[5m])) by (vmrange,job)) は、過去 5 分間の各 job の平均応答時間を返します。
histogram_quantile¶
histogram_quantile(phi, buckets) は 変換関数 です。指定された ヒストグラムバケット 上の phi-パーセンタイル を計算します。phi は範囲 [0...1] 内である必要があります。例えば、histogram_quantile(0.5, sum(rate(http_request_duration_seconds_bucket[5m]) by (le)) は、過去 5 分間の全リクエストの中央リクエスト持続時間を返します。
この関数はオプションの第 3 引数 boundsLabel を受け入れます。この場合、指定された boundsLabel ラベルを持つ推定パーセンタイルの lower 境界と upper 境界を返します。詳細については、この問題を参照してください。
複数のヒストグラム上で パーセンタイル を計算する場合、すべての入力ヒストグラムは同じ境界を持つバケットを持っている必要があります。つまり、同じ le または vmrange ラベルセットを持っている必要があります。それ以外の場合、返される結果は無効になる可能性があります。詳細については、この問題を参照してください。
この関数は PromQL でサポートされています(
boundLabel引数を除く)。 histogram_quantiles、histogram_share、quantile も参照してください。
histogram_quantiles¶
histogram_quantiles("phiLabel", phi1, ..., phiN, buckets) は 変換関数 です。指定された ヒストグラムバケット 上で指定された phi*-分位数を計算します。phi* 引数は範囲 [0...1] 内である必要があります。例えば、histogram_quantiles('le', 0.3, 0.5, sum(rate(http_request_duration_seconds_bucket[5m]) by (le))。計算された各分位数は、対応する {phiLabel="phi*"} ラベルを持つ個別の時系列で返されます。
histogram_quantile も参照してください。
histogram_share¶
histogram_share(le, buckets) は 変換関数 です。buckets 内で le 以下の割合(範囲 [0...1] 内)を計算します。この関数は SLI と SLO の計算に便利です。histogram_quantile の逆です。
この関数はオプションの第 3 引数 boundsLabel を受け入れます。この場合、指定された boundsLabel ラベルを持つ推定割合の lower 境界と upper 境界を返します。
histogram_stddev¶
histogram_stddev(buckets) は 変換関数 です。指定された buckets の標準偏差を計算します。
histogram_stdvar¶
histogram_stdvar(buckets) は 変換関数 です。複数の時系列にわたる指定された時間範囲の標準偏差の計算に使用でき、指定された buckets の標準分散を計算します。例えば、histogram_stdvar(sum(histogram_over_time(temperature[24])) by (vmrange,country)) は、過去 24 時間の各国の温度の標準偏差を返します。
hour¶
hour(q) は 変換関数 です。q によって返された各時系列の各ポイントの時間を返します。q は Unix タイムスタンプを返すことが期待されます。戻り値は範囲 [0...23] 内です。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
PromQL でサポートされています。
interpolate¶
interpolate(q) は 変換関数 です。q から返された各時系列の前後の非空ポイントから計算された線形補間値を使用して、ギャップを埋めます。
keep_last_value および keep_next_value も参照してください。
keep_last_value¶
keep_last_value(q) は 変換関数 です。返された各時系列の最後の非空ポイントの値を使用してギャップを埋めます。
keep_next_value および interpolate も参照してください。
keep_next_value¶
keep_next_value(q) は 変換関数 です。返された各時系列の次の非空ポイントの値を使用してギャップを埋めます。
keep_last_value および interpolate も参照してください。
limit_offset¶
limit_offset(limit, offset, q) は 変換関数 です。q から返された offset 個の時系列をスキップし、その後、各グループに対して最大 limit 個の残りの時系列を返します。
これにより、
qの時系列に対する単純なページネーションが可能になります。 limitk も参照してください。
ln¶
ln(q) は 変換関数 です。q によって返された各時系列の各ポイントに対して ln(v) を計算します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
log2¶
log2(q) は 変換関数 です。q によって返された各時系列の各ポイントに対して log2(v) を計算します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
log10¶
log10(q) は 変換関数 です。q によって返された各時系列の各ポイントに対して log10(v) を計算します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
minute¶
minute(q) は 変換関数 です。q によって返された各時系列の各ポイントの分を返します。q は Unix タイムスタンプを返すことが期待されます。戻り値は範囲 [0...59] 内です。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
PromQL でサポートされています。
month¶
month(q) は 変換関数 です。q によって返された各時系列の各ポイントの月を返します。q は Unix タイムスタンプを返すことが期待されます。戻り値は範囲 [1...12] 内で、1 は 1 月、12 は 12 月を示します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
PromQL でサポートされています。
now¶
now() は 変換関数 です。現在のタイムスタンプを秒単位で浮動小数点値として返します。
time も参照してください。
pi¶
PromQL でサポートされています。
rad¶
rad(q) は 変換関数 です。q によって返された各時系列の各ポイントを度からラジアンに変換します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
PromQL でサポートされています。 deg も参照してください。
prometheus_buckets¶
prometheus_buckets(buckets) は 変換関数 です。vmrange ラベルを持つ VictoriaMetrics ヒストグラムバケット を、le ラベルを持つ Prometheus ヒストグラムバケットに変換します。
histogram_quantile および buckets_limit も参照してください。
rand¶
rand(seed) は 変換関数 です。一様分布で範囲 [0...1] の疑似乱数を返します。オプションの seed は疑似乱数生成器のシードとして使用できます。
rand_normal および rand_exponential も参照してください。
rand_exponential¶
rand_exponential(seed) は 変換関数 です。指数分布 に従う疑似乱数を返します。オプションの seed は疑似乱数生成器のシードとして使用できます。
rand および rand_normal も参照してください。
rand_normal¶
rand_normal(seed) は 変換関数 です。正規分布 に従う疑似乱数を返します。オプションの seed は疑似乱数生成器のシードとして使用できます。
rand および rand_exponential も参照してください。
range_avg¶
range_avg(q) は 変換関数 です。q によって返された各時系列のポイントの平均値を計算します。
range_first¶
range_first(q) は 変換関数 です。q によって返された各時系列の最初のポイントの値を返します。
range_last¶
range_last(q) は 変換関数 です。q によって返された各時系列の最後のポイントの値を返します。
range_linear_regression¶
range_linear_regression(q) は 変換関数 です。選択された時間範囲内で、q によって返された各時系列の 単純線形回帰 を計算します。この関数は容量計画と予測に便利です。
range_mad¶
range_mad(q) は 変換関数 です。q によって返された各時系列のポイント間の 中央絶対偏差 を計算します。
mad および mad_over_time も参照してください。
range_max¶
range_max(q) は 変換関数 です。q によって返された各時系列のポイント間の最大値を計算します。
range_median¶
range_median(q) は 変換関数 です。q によって返された各時系列のポイント間の中央値を計算します。
range_min¶
range_min(q) は 変換関数 です。q によって返された各時系列のポイント間の最小値を計算します。
range_normalize¶
range_normalize(q1, ...) は 変換関数 です。q1,... によって返された時系列の値を範囲 [0...1] に正規化します。この関数は、異なる値範囲を持つ時系列を関連付けるのに便利です。
share も参照してください。
range_quantile¶
range_quantile(phi, q) は 変換関数 です。q によって返された各時系列の phi 分位数を返します。phi は範囲 [0...1] 内である必要があります。
range_stddev¶
range_stddev(q) は 変換関数 です。選択された時間範囲内で、q によって返された各時系列の 標準偏差 を計算します。
range_stdvar¶
range_stdvar(q) は 変換関数 です。選択された時間範囲内で、q によって返された各時系列の 標準分散 を計算します。
range_sum¶
range_sum(q) は 変換関数 です。q によって返された各時系列のポイントの合計を計算します。
range_trim_outliers¶
range_trim_outliers(k, q) は 変換関数 です。range_median(q) から k*range_mad(q) よりも遠いポイントを削除します。例えば、以下のクエリと同等です:q ifnot (abs(q - range_median(q)) > k*range_mad(q))。
range_trim_spikes および range_trim_zscore も参照してください。
range_trim_spikes¶
range_trim_spikes(phi, q) は 変換関数 です。q によって返された時系列から、最大の phi パーセンテージのスパイクを削除します。phi は範囲 [0..1] 内である必要があります。0 は 0%、1 は 100% を示します。
range_trim_outliers および range_trim_zscore も参照してください。
range_trim_zscore¶
range_trim_zscore(z, q) は 変換関数 です。range_avg(q) から z*range_stddev(q) よりも遠いポイントを削除します。例えば、以下のクエリと同等です:q ifnot (abs(q - range_avg(q)) > z*range_avg(q))。
range_trim_outliers および range_trim_spikes も参照してください。
range_zscore¶
range_zscore(q) は 変換関数 です。q によって返されたポイントの z-score を計算します。例えば、以下のクエリと同等です:(q - range_avg(q)) / range_stddev(q)。
remove_resets¶
remove_resets(q) は 変換関数 です。q によって返された時系列からカウンターリセットを削除します。
round¶
round(q, nearest) は 変換関数 です。q によって返された各時系列の各ポイントを nearest の倍数に丸めます。nearest が省略された場合、最も近い整数に丸められます。
ru¶
ru(free, max) は 変換関数 です。指定された free リソースと max リソースから、範囲 [0%...100%] 内のリソース使用率を計算します。例えば、ru(node_memory_MemFree_bytes, node_memory_MemTotal_bytes) は node_exporter メトリクスのメモリ使用率を返します。
running_avg¶
running_avg(q) は 変換関数 です。q によって返された各時系列の実行平均を計算します。
running_max¶
running_max(q) は 変換関数 です。q によって返された各時系列の実行最大値を計算します。
running_min¶
running_min(q) は 変換関数 です。q によって返された各時系列の実行最小値を計算します。
running_sum¶
running_sum(q) は 変換関数 です。q によって返された各時系列の実行合計を計算します。
scalar¶
scalar(q) は 変換関数 です。q が単一の時系列のみを含む場合、q を返します。それ以外の場合は何も返しません。
この関数は PromQL でサポートされています。
sgn¶
sgn(q) は 変換関数 です。q によって返された各時系列の各ポイントに対して、v > 0 の場合は 1、v < 0 の場合は -1、v == 0 の場合は 0 を返します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は PromQL でサポートされています。
sin¶
sin(q) は 変換関数 です。q によって返された各時系列の各ポイント v に対して sin(v) を返します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は MetricsQL でサポートされています。 cos も参照してください。
sinh¶
sinh(q) は 変換関数 です。q によって返された各時系列の各ポイントの 双曲線正弦 を返します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は MetricsQL でサポートされています。 cosh も参照してください。
tan¶
tan(q) は 変換関数 です。q によって返された各時系列の各ポイント v に対して tan(v) を返します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は MetricsQL でサポートされています。 atan も参照してください。
tanh¶
tanh(q) は 変換関数 です。q によって返された各時系列の各ポイントの 双曲線正接 を返します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
この関数は MetricsQL でサポートされています。 atanh も参照してください。
smooth_exponential¶
smooth_exponential(q, sf) は 変換関数 です。指定された平滑化係数 sf を使用して、q によって返された各時系列のポイントを平滑化します。
sort¶
sort(q) は 変換関数 です。q によって返された各時系列の最後のポイントの昇順で系列をソートします。
この関数は PromQL でサポートされています。 sort_desc および sort_by_label も参照してください。
sort_desc¶
sort_desc(q) は 変換関数 です。q によって返された各時系列の最後のポイントの降順でソートします。
PromQL でサポートされています。 sort および sort_by_label も参照してください。
sqrt¶
sqrt(q) は 変換関数 です。q によって返された各時系列の各ポイントの平方根を計算します。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
PromQL でサポートされています。
start¶
start() は 変換関数 です。最初のポイントの Unix タイムスタンプ(秒単位)を返します。
これは、/api/v1/query_range に渡される start クエリパラメータです。
step¶
step() は 変換関数 です。ポイント間のステップ幅(間隔)(秒単位)を返します。これは、/api/v1/query_range に渡される step クエリパラメータです。
time¶
time() は 変換関数 です。各返されるポイントの Unix タイムスタンプを返します。
timezone_offset¶
timezone_offset(tz) は 変換関数 です。UTC に対する指定されたタイムゾーン tz のオフセット(秒単位)を返します。これは、日時関連の関数と組み合わせて使用すると便利です。例えば、day_of_week(time()+timezone_offset("America/Los_Angeles")) は、America/Los_Angeles タイムゾーンの曜日を返します。
特別な Local タイムゾーンを使用して、VictoriaMetrics が実行されているホストに設定されたタイムゾーンのオフセットを返すことができます。
サポートされているタイムゾーンのリスト を参照してください。
ttf¶
ttf(free) は 変換関数 です。free リソースを使い果たすまでの時間(秒単位)を推定します。例えば、ttf(node_filesystem_avail_byte) はストレージ容量を使い果たすまでの時間を返します。この関数は容量計画に役立つ可能性があります。
union¶
union(q1, ..., qN) は 変換関数 です。q1、...、qN から返された時系列の和集合を返します。union 関数名は省略できます。以下のクエリは同等です:union(q1, q2) と (q1, q2)。
各 q* クエリは、一意のラベルセットを持つ時系列を返すことが期待されます。そうでない場合、同じラベルセットを持つ系列のうち最初の時系列のみが返されます。各 q* クエリに一意のラベルセットを提供するには、alias および label_set 関数を使用します。
vector¶
vector(q) は 変換関数 です。q を返します。MetricsQL では何もしません。
PromQL でサポートされています。
year¶
year(q) は 変換関数 です。q によって返された各時系列の各ポイントの年を返します。q は Unix タイムスタンプを返すことが期待されます。
結果の系列からメトリクス名が削除されます。メトリクス名を保持するには、keep_metric_names 修飾子を追加してください。
PromQL でサポートされています。
ラベル操作関数¶
ラベル操作関数は、選択された ロールアップ結果 に対してラベル操作を実行するために使用されます。
その他の詳細:
- ラベル操作関数が直接 シリーズセレクター に適用された場合、ラベル変換の実行前に自動的に default_rollup() 関数が適用されます。例えば、
alias(temperature, "foo")は暗黙的にalias(default_rollup(temperature[1i]), "foo")に変換されます。
暗黙的なクエリ変換 も参照してください。
サポートされているラベル操作関数の一覧¶
alias¶
alias(q, "name") は、q のすべての時系列に指定された name を設定する ラベル操作関数 です。例えば、alias(up, "foobar") は up 系列を foobar 系列にリネームします。
drop_common_labels¶
drop_common_labels(q1, ...., qN) は、q1, ..., qN から返された時系列から共通の label="value" ペアを削除する ラベル操作関数 です。
label_copy¶
label_copy(q, "src_label1", "dst_label1", ..., "src_labelN", "dst_labelN") は、src_label* のラベル値を q によって返されたすべての時系列の dst_label* にコピーする ラベル操作関数 です。src_label が空の場合、対応する dst_label は変更されません。
label_del¶
label_del(q, "label1", ..., "labelN") は、q によって返されたすべての時系列から指定された label* を削除する ラベル操作関数 です。
label_join¶
label_join(q, "dst_label", "separator", "src_label1", ..., "src_labelN") は、src_label* の値を指定された separator で連結し、結果を dst_label に格納する ラベル操作関数 です。これは q によって返された各時系列に対して個別に実行されます。例えば、label_join(up{instance="xxx",job="yyy"}, "foo", "-", "instance", "job") は、xxx-yyy というラベル値を foo ラベルに格納します。
この関数は PromQL でサポートされています。
label_keep¶
label_keep(q, "label1", ..., "labelN") は、q によって返されたすべての時系列から、リストされた label* ラベルのみを保持し、その他をすべて削除する ラベル操作関数 です。
label_lowercase¶
label_lowercase(q, "label1", ..., "labelN") は、q によって返されたすべての時系列において、指定された label* ラベルの値を小文字に変換する ラベル操作関数 です。
label_map¶
label_map(q, "label", "src_value1", "dst_value1", ..., "src_valueN", "dst_valueN") は、q によって返されたすべての時系列の label 値を src_* から dst* にマッピングする ラベル操作関数 です。
label_match¶
label_match(q, "label", "regexp") は、指定された regexp に一致しない label を持つ時系列を q から削除する ラベル操作関数 です。この関数は、各入力系列に対して複数の時系列を返す可能性がある Rollup のような関数の後に便利です。
label_mismatch も参照してください。
label_mismatch¶
label_mismatch(q, "label", "regexp") は、指定された regexp に一致する label を持つ時系列を q から削除する ラベル操作関数 です。この関数は、各入力系列に対して複数の時系列を返す可能性がある Rollup のような関数の後に便利です。
label_match も参照してください。
label_move¶
label_move(q, "src_label1", "dst_label1", ..., "src_labelN", "dst_labelN") は、src_label* のラベル値を q によって返されたすべての時系列の dst_label* に移動する ラベル操作関数 です。src_label が空の場合、対応する dst_label は変更されません。
label_replace¶
label_replace(q, "dst_label", "replacement", "src_label", "regex") は、指定された regex を src_label に適用し、regex が src_label に一致した場合に replacement を dst_label に格納する ラベル操作関数 です。replacement には、$1、$2 などの正規表現キャプチャグループへの参照を含めることができます。これらの参照は、対応する正規表現キャプチャに置き換えられます。例えば、label_replace(up{job="node-exporter"}, "foo", "bar-$1", "job", "node-(.+)") は、bar-exporter というラベル値を foo ラベルに格納します。
この関数は PromQL でサポートされています。
label_set¶
label_set(q, "label1", "value1", ..., "labelN", "valueN") は、q によって返されたすべての時系列に {label1="value1", ..., labelN="valueN"} ラベルを設定する ラベル操作関数 です。
label_transform¶
label_transform(q, "label", "regexp", "replacement") は、指定された label 内のすべての regexp の出現を指定された replacement に置き換える ラベル操作関数 です。
label_uppercase¶
label_uppercase(q, "label1", ..., "labelN") は、q によって返されたすべての時系列において、指定された label* ラベルの値を大文字に変換する ラベル操作関数 です。
label_lowercase も参照してください。
label_value¶
label_value(q, "label") は、q によって返された各時系列に対して、指定された label の数値を取得する ラベル操作関数 です。
例えば、label_value(foo, "bar") が foo{bar="1.234"} に適用された場合、値 1.234 を持つ時系列 foo{bar="1.234"} を返します。数値以外のラベル値の場合、関数はデータを返しません。
sort_by_label¶
sort_by_label(q, label1, ... labelN) は、指定されたラベルセットで昇順に系列をソートする ラベル操作関数 です。例えば、sort_by_label(foo, "bar") は、foo 系列をラベル bar の値でソートします。
sort_by_label_desc および sort_by_label_numeric も参照してください。
sort_by_label_desc¶
sort_by_label_desc(q, label1, ... labelN) は、指定されたラベルセットで降順に系列をソートする ラベル操作関数 です。例えば、sort_by_label(foo, "bar") は、foo 系列をラベル bar の値でソートします。
sort_by_label および sort_by_label_numeric_desc も参照してください。
sort_by_label_numeric¶
sort_by_label_numeric(q, label1, ... labelN) は、数値ソート を使用して、指定されたラベルセットで昇順に系列をソートする ラベル操作関数 です。例えば、foo 系列が 1、101、15、2 という値を持つ bar ラベルを持つ場合、sort_by_label_numeric(foo, "bar") は、bar ラベル値の順序 1、2、15、101 で系列を返します。
sort_by_label_numeric_desc および sort_by_label も参照してください。
sort_by_label_numeric_desc¶
sort_by_label_numeric_desc(q, label1, ... labelN) は、数値ソート を使用して、指定されたラベルセットで降順に系列をソートする ラベル操作関数 です。例えば、foo 系列が 1、101、15、2 という値を持つ bar ラベルを持つ場合、sort_by_label_numeric(foo, "bar") は、bar ラベル値の順序 101、15、2、1 で系列を返します。
sort_by_label_numeric および sort_by_label_desc も参照してください。
集約関数¶
集約関数は、ロールアップ結果 のグループの集約を計算します。
追加の詳細:
- デフォルトでは、単一のグループを使用して集約が行われます。
byおよびwithout修飾子でグループ化ラベルを指定することにより、複数の独立したグループを設定できます。例えば、count(up) by (job)は、ロールアップ結果 をjobラベル値でグループ化し、各グループ内で count 集約関数を個別に計算します。一方、count(up) without (instance)は、count 集約関数を計算する前に、ロールアップ結果 をinstance以外のすべてのラベルでグループ化します。byおよびwithout修飾子には複数のラベルを指定できます。 - 集約関数が直接 シリーズセレクター に適用された場合、集約の計算前に自動的に default_rollup() 関数が適用されます。例えば、
count(up)は暗黙的にcount(default_rollup(up[1i]))に変換されます。 - 集約関数は任意の数の引数を受け取ります。例えば、
avg(q1, q2, q3)はq1、q2、q3の各ポイントの平均値を返します。 - 集約関数は、オプションの
limit Nサフィックスをサポートし、出力グループの数を制限するために使用できます。例えば、sum(x) by (y) limit 3は、集約されたグループ数を 3 に制限します。その他のグループはすべて無視されます。
暗黙的なクエリ変換 も参照してください。
サポートされている集約関数の一覧¶
any¶
any(q) by (group_labels) は 集約関数 です。q から返された時系列から、各 group_labels に対して 1 つの系列を返します。
group も参照してください。
avg¶
avg(q) by (group_labels) は 集約関数 です。q の時系列の各 group_labels に対する平均値を返します。集約は、同じタイムスタンプを持つポイントのグループごとに個別に計算されます。
この関数は PromQL でサポートされています。
bottomk¶
bottomk(k, q) は 集約関数 です。q のすべての時系列から、最小値を持つ k 個のポイントを返します。集約は、同じタイムスタンプを持つポイントのグループごとに個別に計算されます。
この関数は PromQL でサポートされています。 topk も参照してください。
bottomk_avg¶
bottomk_avg(k, q, "other_label=other_value") は 集約関数 です。q の中で平均値が最小の k 個の時系列を返します。オプションの other_label=other_value 引数が設定されている場合、残りの時系列の合計と指定されたラベルを返します。例えば、bottomk_avg(3, sum(process_resident_memory_bytes) by (job), "job=other") は、平均値が最小の 3 つの時系列と、残りをすべて含む {job="other"} ラベルを持つ時系列を返します。
topk_avg も参照してください。
bottomk_last¶
bottomk_last(k, q, "other_label=other_value") は 集約関数 です。q の中で最後の値が最小の k 個の時系列を返します。オプションの other_label=other_value 引数が設定されている場合、残りの時系列の合計と指定されたラベルを返します。例えば、bottomk_max(3, sum(process_resident_memory_bytes) by (job), "job=other") は、最大値が最小の 3 つの時系列と、残りをすべて含む {job="other"} ラベルを持つ時系列を返します。
topk_last も参照してください。
bottomk_max¶
bottomk_max(k, q, "other_label=other_value") は 集約関数 です。q の中で最大値が最小の k 個の時系列を返します。オプションの other_label=other_value 引数が設定されている場合、残りの時系列の合計と指定されたラベルを返します。例えば、bottomk_max(3, sum(process_resident_memory_bytes) by (job), "job=other") は、最大値が最小の 3 つの時系列と、残りをすべて含む {job="other"} ラベルを持つ時系列を返します。
topk_max も参照してください。
bottomk_median¶
bottomk_median(k, q, "other_label=other_value") は 集約関数 です。q の中で中央値が最小の k 個の時系列を返します。オプションの other_label=other_value 引数が設定されている場合、残りの時系列の合計と指定されたラベルを返します。例えば、bottomk_median(3, sum(process_resident_memory_bytes) by (job), "job=other") は、中央値が最小の 3 つの時系列と、残りをすべて含む {job="other"} ラベルを持つ時系列を返します。
topk_median も参照してください。
bottomk_min¶
bottomk_min(k, q, "other_label=other_value") は 集約関数 です。q の中で最小値が最小の k 個の時系列を返します。オプションの other_label=other_value 引数が設定されている場合、残りの時系列の合計と指定されたラベルを返します。例えば、bottomk_min(3, sum(process_resident_memory_bytes) by (job), "job=other") は、最小値が最小の 3 つの時系列と、残りをすべて含む {job="other"} ラベルを持つ時系列を返します。
topk_min も参照してください。
count¶
count(q) by (group_labels) は 集約関数 です。q の非空ポイントの各 group_labels に対する数を返します。集約は、同じタイムスタンプを持つポイントのグループごとに個別に計算されます。
この関数は PromQL でサポートされています。
count_values¶
count_values("label", q) は 集約関数 です。同じ値を持つポイントの数をカウントし、各初期値を持つ追加の label を持つ時系列にカウントを格納します。集約は、同じタイムスタンプを持つポイントのグループごとに個別に計算されます。
この関数は PromQL でサポートされています。
distinct¶
distinct(q) は 集約関数 です。同じタイムスタンプを持つ各グループの一意の値の数を計算します。
geomean¶
geomean(q) は 集約関数 です。同じタイムスタンプを持つ各グループの幾何平均を計算します。
group¶
group(q) by (group_labels) は 集約関数 です。q によって返された時系列の各 group_labels に対して 1 を返します。
この関数は PromQL でサポートされています。 any も参照してください。
histogram¶
histogram(q) は集約関数です。同じタイムスタンプを持つ各ポイントグループに対して、VictoriaMetrics ヒストグラムを計算します。大量の時系列をヒートマップで可視化するために使用されます。詳細については、この記事を参照してください。
histogram_over_timeおよびhistogram_quantileも参照してください。
limitk¶
limitk(k, q) by (group_labels) は集約関数です。各 group_labels 内で q によって返された時系列から、最大 k 個の時系列を返します。返される時系列のセットは、呼び出し間で一定です。
limit_offsetも参照してください。
mad¶
mad(q) by (group_labels) は集約関数です。q によって返されたすべての時系列の各 group_labels に対する中央絶対偏差を計算します。集約は、同じタイムスタンプを持つ各ポイントグループに対して個別に計算されます。
range_mad、mad_over_time、outliers_mad、stddevも参照してください。
max¶
max(q) by (group_labels) は集約関数です。q によって返されたすべての時系列の各 group_labels に対する最大値を返します。集約は、同じタイムスタンプを持つ各ポイントグループに対して個別に計算されます。
PromQL でサポートされています。
median¶
median(q) by (group_labels) は集約関数です。q によって返されたすべての時系列の各 group_labels に対する中央値を返します。集約は、同じタイムスタンプを持つ各ポイントグループに対して個別に計算されます。
min¶
min(q) by (group_labels) は集約関数です。q によって返されたすべての時系列の各 group_labels に対する最小値を返します。集約は、同じタイムスタンプを持つ各ポイントグループに対して個別に計算されます。
PromQL でサポートされています。
mode¶
mode(q) by (group_labels) は集約関数です。q によって返されたすべての時系列の各 group_labels に対する最頻値を返します。集約は、同じタイムスタンプを持つ各ポイントグループに対して個別に計算されます。
outliers_mad¶
outliers_mad(tolerance, q) は集約関数です。q の中で、中央絶対偏差(MAD)× tolerance の範囲外に少なくとも 1 つのポイントを持つ時系列を返します。例えば、median(q)-mad(q) より低い、または median(q)+mad(q) より高いポイントを少なくとも 1 つ持つ時系列を返します。
outlierskおよびmadも参照してください。
outliersk¶
outliersk(k, q) は集約関数です。q によって返された時系列から、最大の標準偏差(つまり外れ値)を持つ最大 k 個の時系列を返します。
outliers_madも参照してください。
quantile¶
quantile(phi, q) by (group_labels) は集約関数です。q によって返されたすべての時系列の各 group_labels に対する phi 分位数を計算します。phi は範囲 [0...1] 内である必要があります。集約は、同じタイムスタンプを持つ各ポイントグループに対して個別に計算されます。
PromQL でサポートされています。
quantilesおよびhistogram_quantileも参照してください。
quantiles¶
quantiles("phiLabel", phi1, ..., phiN, q) は集約関数です。q によって返されたすべての時系列の phi* 分位数を計算し、{phiLabel="phi*"} ラベルを持つ時系列で返します。phi* は範囲 [0...1] 内である必要があります。集約は、同じタイムスタンプを持つ各ポイントグループに対して個別に計算されます。
quantileも参照してください。
share¶
share(q) by (group_labels) は集約関数です。各タイムスタンプの各非負ポイントに対して、範囲 [0..1] 内の割合を返し、各 group_labels の割合の合計が 1 になるようにします。
この関数は、ヒストグラムバケット の割合を範囲 [0..1] に正規化するために使用されます:
range_normalize も参照してください。
stddev¶
stddev(q) by (group_labels) は 集約関数 です。q によって返されたすべての時系列の各 group_labels に対する標準偏差を計算します。集約は、同じタイムスタンプを持つ各ポイントグループに対して個別に計算されます。
この関数は PromQL でサポートされています。
stdvar¶
stdvar(q) by (group_labels) は 集約関数 です。q によって返されたすべての時系列の各 group_labels に対する標準分散を計算します。集約は、同じタイムスタンプを持つ各ポイントグループに対して個別に計算されます。
この関数は PromQL でサポートされています。
sum¶
sum(q) by (group_labels) は 集約関数 です。q によって返されたすべての時系列の各 group_labels に対する合計を返します。集約は、同じタイムスタンプを持つ各ポイントグループに対して個別に計算されます。
この関数は PromQL でサポートされています。
sum2¶
sum2(q) by (group_labels) は 集約関数 です。q によって返されたすべての時系列の各 group_labels に対する二乗和を計算します。集約は、同じタイムスタンプを持つ各ポイントグループに対して個別に計算されます。
topk¶
topk(k, q) は 集約関数 です。q によって返されたすべての時系列から、最大値を持つ上位 k 個のポイントを返します。集約は、同じタイムスタンプを持つ各ポイントグループに対して個別に計算されます。
この関数は PromQL でサポートされています。 bottomk も参照してください。
topk_avg¶
topk_avg(k, q, "other_label=other_value") は 集約関数 です。q の中で平均値が最大の上位 k 個の時系列を返します。オプションの other_label=other_value 引数が設定されている場合、残りの時系列の合計と指定されたラベルを返します。例えば、topk_avg(3, sum(process_resident_memory_bytes) by (job), "job=other") は、平均値が最大の 3 つの時系列と、残りをすべて含む {job="other"} ラベルを持つ時系列を返します。
bottomk_avg も参照してください。
topk_last¶
topk_last(k, q, "other_label=other_value") は 集約関数 です。q の中で最後の値が最大の上位 k 個の時系列を返します。オプションの other_label=other_value 引数が設定されている場合、残りの時系列の合計と指定されたラベルを返します。例えば、topk_max(3, sum(process_resident_memory_bytes) by (job), "job=other") は、最大値が最大の 3 つの時系列と、残りをすべて含む {job="other"} ラベルを持つ時系列を返します。
bottomk_last も参照してください。
topk_max¶
topk_max(k, q, "other_label=other_value") は 集約関数 です。q の中で最大値が最大の上位 k 個の時系列を返します。オプションの other_label=other_value 引数が設定されている場合、残りの時系列の合計と指定されたラベルを返します。例えば、topk_max(3, sum(process_resident_memory_bytes) by (job), "job=other") は、最大値が最大の 3 つの時系列と、残りをすべて含む {job="other"} ラベルを持つ時系列を返します。
bottomk_max も参照してください。
topk_median¶
topk_median(k, q, "other_label=other_value") は 集約関数 です。q の中で中央値が最大の上位 k 個の時系列を返します。オプションの other_label=other_value 引数が設定されている場合、残りの時系列の合計と指定されたラベルを返します。例えば、topk_median(3, sum(process_resident_memory_bytes) by (job), "job=other") は、中央値が最大の 3 つの時系列と、残りをすべて含む {job="other"} ラベルを持つ時系列を返します。
bottomk_median も参照してください。
topk_min¶
topk_min(k, q, "other_label=other_value") は 集約関数 です。q の中で最小値が最大の上位 k 個の時系列を返します。オプションの other_label=other_value 引数が設定されている場合、残りの時系列の合計と指定されたラベルを返します。例えば、topk_min(3, sum(process_resident_memory_bytes) by (job), "job=other") は、最小値が最大の 3 つの時系列と、残りをすべて含む {job="other"} ラベルを持つ時系列を返します。
bottomk_min も参照してください。
zscore¶
zscore(q) by (group_labels) は 集約関数 です。q によって返されたすべての時系列の各 group_labels に対する z-score 値を返します。集約は、同じタイムスタンプを持つ各ポイントグループに対して個別に計算されます。この関数は、関連する時系列グループ内の外れ値を検出するために使用されます。
zscore_over_time および range_trim_zscore も参照してください。
サブクエリ¶
MetricsQL は PromQL サブクエリをサポートし、拡張しています。詳細については、この記事 を参照してください。シリーズセレクター の形式ではない ロールアップ関数 は、すべてサブクエリを形成します。複数層のロールアップ関数は、暗黙的なクエリ変換 によって暗黙的に変換される場合があります。例えば、delta(sum(m)) は暗黙的に delta(sum(default_rollup(m[1i]))[1i:1i]) に変換されるため、ネストされた default_rollup と delta を含むサブクエリになります。
MetricsQL は以下のようにサブクエリを実行します。
- 外部ロールアップ関数の
step値を使用して、内部ロールアップ関数を計算します。例えば、式max_over_time(rate(http_requests_total[5m])[1h:30s])の場合、内部関数rate(http_requests_total[5m])はstep=30sで計算されます。計算結果のデータポイントはstepに揃えられます。 - フロントエンドから渡された
step値を使用して、内部ロールアップ関数の結果に対して外部ロールアップ関数を計算します。
暗黙的なクエリ変換¶
計算を開始する前に、MetricsQL は入力クエリに対して以下の暗黙的な変換を実行します。
-
ロールアップ関数 内で角括弧内のルックバックウィンドウが欠落している場合、自動的に
[1i]が追加されます。[1i]は、/api/v1/query_range に渡されるstep値を示します。Grafana では$__intervalとも呼ばれます。例えば、rate(http_requests_count)は自動的にrate(http_requests_count[1i])に変換されます。 -
ロールアップ関数でラップされていないすべてのシリーズセレクターは、自動的に
default_rollup関数でラップされます。例えば: -
サブクエリ 内で角括弧内の
stepが欠落している場合、自動的に1iステップが追加されます。例えば、avg_over_time(rate(http_requests_total[5m])[1h])は自動的にavg_over_time(rate(http_requests_total[5m])[1h:1i])に変換されます。 -
ロールアップ関数 に シリーズセレクター 以外が渡された場合、自動的に
1iルックバックウィンドウと1iステップを持つ サブクエリ が形成されます。例えば、rate(sum(up))は自動的にrate((sum(default_rollup(up[1i])))[1i:1i])に変換されます。