式全体の構文を先に調べる
PromQLモードで括弧や関数の入れ子を確認します。誤りは行と列で示し、推測で修復した結果は出力しません。
ログと可観測性
クエリを貼って構文を調べ、ラベルの確認にはサンプル照合、正規表現にはRE2モードを使います。時系列クエリは実行しません。
ブラウザー内で処理します。Prometheusへの接続やクエリ送信はありません。
式を入力するか、例を読み込んでください。
ダッシュボードに系列が出ない原因は構文にもラベルにもあります。PromQL整形なら、式が読めるかどうかと、手元の例にセレクターが一致するかを分けて調べられます。
元のクエリは入力欄に残ります。整形はパーサーが認識した境界の空白だけを変えるため、アラートに戻す前に差分を確認できます。
構文、ラベル、正規表現の結果を混同しないための三つの入口です。
PromQL整形は純粋なベクトルセレクターを貼り付けたメトリクス行に適用します。status=~"5.."なら500と503が一致し、200が外れる様子をその場で確かめられます。
JavaScript正規表現で代用せず、RE2でラベル値全体を照合します。PromQL整形は先読みや後方参照を成功扱いせず、コンパイルエラーを返します。
完全な式とサンプル照合では対象が違います。
PromQLモードで括弧や関数の入れ子を確認します。誤りは行と列で示し、推測で修復した結果は出力しません。
サンプル照合にはhttp_requests_total{job="api"}のような式を入力します。メトリクスを1行ずつ貼り付け、末尾の数値は照合に使いません。
RE2モードで値を1行ずつ試します。5..は500に一致しますが、1500の一部だけには一致しません。
クエリの形と、手元のラベル例への一致を別々に示します。
PromQLクエリを解析して構造ツリーと保守的な整形結果を表示します。構文エラーや古い結果はコピーできません。
=、!=、=~、!~を組み合わせて各サンプルを判定します。欠けたラベルは空文字列として扱い、不一致のラベル名を示します。
PromQL正規表現はRE2です。JavaScript固有の構文を受け入れず、各行の値が全体として一致するかを確認します。
構文が通っても、実際のメトリクスが存在するとは限りません。
実際に検索される正規表現や集約の語を手掛かりにしています。
Prometheusの時系列を選択・集約するためのクエリ言語です。PromQL整形はそのテキストの構文を調べますが、データベースでクエリを実行しません。
いいえ。ラベルのRE2正規表現は値全体に適用されます。5..なら500は一致し、1500は一致しません。
構文構造は表示できますが、集約値の計算には実際の時系列が必要です。サンプル照合は純粋なセレクターに限定しています。
書き換えません。関数の構文は解析できますが、時系列に対する関数評価は行いません。
unlessを含む完全な式の構文は確認できます。除外後の系列を求める処理はPrometheus側で実行してください。
PromQLの境界例を見つけましたか?