ログと可観測性

PromQL整形グラフを見る前に式を確かめる

クエリを貼って構文を調べ、ラベルの確認にはサンプル照合、正規表現にはRE2モードを使います。時系列クエリは実行しません。

PromQL整形

PromQL式

結果

ブラウザー内で処理します。Prometheusへの接続やクエリ送信はありません。

設定

式を入力するか、例を読み込んでください。

ダッシュボードに系列が出ない原因は構文にもラベルにもあります。PromQL整形なら、式が読めるかどうかと、手元の例にセレクターが一致するかを分けて調べられます。

元のクエリは入力欄に残ります。整形はパーサーが認識した境界の空白だけを変えるため、アラートに戻す前に差分を確認できます。

PromQL整形を使う理由

構文、ラベル、正規表現の結果を混同しないための三つの入口です。

選択された系列を例で確認

PromQL整形は純粋なベクトルセレクターを貼り付けたメトリクス行に適用します。status=~"5.."なら500と503が一致し、200が外れる様子をその場で確かめられます。

ベクトルセレクターがstatusとjobのラベルで二つのメトリクス例を選び、一つを除外する図

RE2の完全一致を使う

JavaScript正規表現で代用せず、RE2でラベル値全体を照合します。PromQL整形は先読みや後方参照を成功扱いせず、コンパイルエラーを返します。

RE2パターンが値全体の500に一致し、部分一致だけの1500を除外する図

迷いやすい三つの確認

完全な式とサンプル照合では対象が違います。

01

式全体の構文を先に調べる

PromQLモードで括弧や関数の入れ子を確認します。誤りは行と列で示し、推測で修復した結果は出力しません。

02

セレクターだけを抜き出す

サンプル照合にはhttp_requests_total{job="api"}のような式を入力します。メトリクスを1行ずつ貼り付け、末尾の数値は照合に使いません。

03

正規表現は値全体で試す

RE2モードで値を1行ずつ試します。5..は500に一致しますが、1500の一部だけには一致しません。

このページで分かること

クエリの形と、手元のラベル例への一致を別々に示します。

構文解析と整形結果

PromQLクエリを解析して構造ツリーと保守的な整形結果を表示します。構文エラーや古い結果はコピーできません。

ラベルセレクターの照合

=、!=、=~、!~を組み合わせて各サンプルを判定します。欠けたラベルは空文字列として扱い、不一致のラベル名を示します。

RE2による値の検査

PromQL正規表現はRE2です。JavaScript固有の構文を受け入れず、各行の値が全体として一致するかを確認します。

使う前に知りたい制限

構文が通っても、実際のメトリクスが存在するとは限りません。

実データは取得しない
PromQL整形はPrometheusやTSDBに接続せず、グラフ、実際の値、系列数を返しません。対象環境のメトリクス名も確認できません。
サンプルには純粋なセレクターだけ
rate()、sum by、結合や範囲クエリはサンプル上で計算しません。完全な式はPromQLモードで解析してください。
無効な結果は出力しない
RE2が拒否したパターンや構文エラーを推測で直しません。入力変更後も、再検査が終わるまでコピーとダウンロードは無効です。

PromQL整形についての質問

実際に検索される正規表現や集約の語を手掛かりにしています。

PromQLとは何ですか?

Prometheusの時系列を選択・集約するためのクエリ言語です。PromQL整形はそのテキストの構文を調べますが、データベースでクエリを実行しません。

PromQLの正規表現は部分一致ですか?

いいえ。ラベルのRE2正規表現は値全体に適用されます。5..なら500は一致し、1500は一致しません。

sum byの結果をここで確認できますか?

構文構造は表示できますが、集約値の計算には実際の時系列が必要です。サンプル照合は純粋なセレクターに限定しています。

label_replaceはサンプルのラベルを書き換えますか?

書き換えません。関数の構文は解析できますが、時系列に対する関数評価は行いません。

unlessで系列を除外できますか?

unlessを含む完全な式の構文は確認できます。除外後の系列を求める処理はPrometheus側で実行してください。

PromQLの境界例を見つけましたか?

PromQL整形で式を確認

PromQL整形は構文、貼り付けたサンプル、RE2正規表現を別の結果として示します。アラートへ移す前の確認に使えます。

入力が変わると古い結果は出力できません。新しい検査の完了を待ってください。