Prometheus Rule Builder
DevOps & SRE Telemetry Automation

Prometheus アラートルール&レコーディングルール生成ツール (PromQL) 開発者ガイド

PromQLアラートルール、レコーディングルール、アラートしきい値、ラベル、Runbookアノテーションを視覚的に構築・検証します。

Prometheus 2.x • K8s Operator CRD • Promtool
プリセット:
ルール設定とPromQL
Interactive PromQL Builder Assistant
Label Matchers (e.g. {mode="idle"}):
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 85Live Assistant
Tier: Range Rate Window
Wait before firing
Prometheus 2.42+ anti-flapping
Warning (P2)
:
:
:
# Prometheus Alerting & Recording Rules Specification
# Generated by ToolsAA (100% Client-Side Engine)
groups:
  - name: infrastructure_node_alerts
    interval: 30s
    rules:
      - alert: HostHighCpuLoad
        expr: 100 - (avg by (instance, job) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 85
        for: 5m
        keep_firing_for: 2m
        labels:
          severity: warning
          tier: "infra"
          team: "sre-platform"
        annotations:
          summary: "Host CPU utilization exceeds 85% on {{ $labels.instance }}"
          description: "Node {{ $labels.instance }} (job: {{ $labels.job }}) has had CPU utilization above 85% for 5m. Current load is {{ $value | printf \"%.2f\" }}%."
          runbook_url: "https://runbooks.prometheus-operator.dev/runbooks/general/cpu-high-load/"
          dashboard_url: "https://grafana.internal.net/d/node-exporter-full?var-instance={{ $labels.instance }}"
          action_required: "Investigate noisy-neighbor processes via htop or check autoscaling capacity."
ルールアーキテクチャalert
HostHighCpuLoad

Group: infrastructure_node_alerts | For: 5m

PromQL静的解析Valid
Rate Counter

Range: Windowed | Annotations: 3 vars

エコシステム互換性100% Native
Prometheus 2.x & K8s

kube-prometheus-stack • Alertmanager • promtool

PromQL構文解析と動的生成

メトリックセレクター、レンジウィンドウ、集計関数、比較閾値を含む堅牢なPromQL式を視覚的に構築・検証します。

100% ブラウザ完結プライバシー

サーバー通信やテレメトリ送信は一切発生しません。社内メトリック名、クラスタ構成、Runbookの内部URLはブラウザ内に安全に留まります。

Promtool&Operatorネイティブ対応

Prometheus 2.x標準のルールファイル、kube-prometheus-stack用PrometheusRule CRD、promtool単体テスト仕様(test.yml)を同時出力します。

技術リファレンス&アーキテクチャガイド

Prometheus アラートルール&レコーディングルール生成ツール (PromQL) 開発者ガイド — リファレンスガイド

PromQLアラートルール、レコーディングルール、アラートしきい値、ラベル、Runbookアノテーションを視覚的に構築・検証します。

主要パラメータ&設定項目

ルール種別と識別子 (Rule Type & Identifier)string (alert: / record:)

しきい値違反で発火するアラートルール(`alert: Name`)か、事前計算を行うレコーディングルール(`record: metric:name`)かを定義します。

初期値: HighCpuUsage
PromQL評価式 (`expr`)string (PromQL構文)

評価間隔ごとに実行され、アラート条件判定または新しい時系列メトリックの計算を行うPromQLクエリ式。

初期値: 100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 85
保留持続時間 (`for`)duration文字列 (例: 5m, 10m, 1h)

一時的な急激スパイクによる誤検知を防ぐため、アラート条件を満たし続けた際に「Pending(保留中)」から「Firing(発火中)」へ遷移するまでの継続時間。

初期値: 5m
ルーティングラベル (`labels`)キー・値マップ

Alertmanagerによる通知ルーティング、グループ化、サイレンス、重要度(severity)判定に使用されるメタデータ。

初期値: severity: warning, team: sre
詳細アノテーション (`annotations`)キー・値マップ (Goテンプレート対応)

アラートの要約、詳細メッセージ、Runbook(対応手順書)URLなどの人間向け情報。`{{ $labels.instance }}` や `{{ $value }}` 等のGoテンプレート変数を展開可能。

初期値: summary: "High CPU load on {{ $labels.instance }}"

プロの活用テクニック&推奨設定

高負荷クエリはレコーディングルールで事前集計

広範囲のrate計算(例: `rate(http_requests_total[1h])`)や重い集約演算は、`level:metric:operations` 形式で命名したレコーディングルールで事前集約しておくことで、Grafanaダッシュボード表示やアラート評価の負荷を大幅に削減できます。

アノテーション内の数値をGoテンプレートフィルタで整形

通知本文に 0.85231999999 のような生の小数を表示させず、`{{ $value | humanizePercentage }}` や `{{ $value | printf "%.2f" }}` などのテンプレートフィルタを活用して可読性の高い通知を配信しましょう。

メトリックの特性に応じた適切な `for` 時間の設定

CPUやメモリ、GC休止などの変動しやすいリソースには `for: 5m`〜`15m` を設定してアラートのバタつき(Flapping)を防止し、外形監視(Blackbox exporter)などの死活監視には `for: 1m` などの短い値を設定します。

CI/CDパイプラインでの `promtool` 静的検証の自動化

本番環境へ反映する前に、デプロイパイプライン内で `promtool check rules rules.yml` を実行して、YAML構文ミスや無効なPromQL式、テンプレート参照エラーを未然に防止してください。

よくあるトラブルと解決策

アラートが `Pending` 状態のまま `Firing` に遷移しない

評価期間中にメトリックが一時的でもしきい値を下回っていないか確認してください。一度でも条件を満たさない評価サイクルが発生すると、保留時間のカウントはゼロにリセットされます。また、Prometheusの `evaluation_interval` が `for` 期間より十分短いかも確認してください。

「template: rule: function not defined」というテンプレート構文エラーが発生する

Prometheusのアノテーションで利用できるGoテンプレート関数は組み込みのもの(`humanize`, `humanize1024`, `humanizeDuration`, `humanizePercentage`, `title`, `toUpper`, `toLower` 等)に限定されています。未定義関数を削除し、変数参照が `$labels.key` または `$value` になっているか確認してください。

対象のサーバーやプロセスが完全に停止した際にアラートが発火しない

ターゲットが停止してメトリックの送信が途絶えると、`http_requests_total > 100` などの通常クエリは空のベクター(結果なし)を返すためアラートが発火しません。プロセスの完全停止検知には `absent(up{job="api"}) == 1` や `up{job="api"} == 0` を使用したルールを別途定義してください。

よくある質問 (FAQ)

Prometheusのアラートルールとレコーディングルールの違いは何ですか?▼

アラートルールはPromQL式を評価し、一定時間条件が成立した場合にAlertmanagerへ通知イベントを送信します。レコーディングルールは高負荷なPromQL式を定期実行して計算結果を新しい時系列メトリックとしてTSDBに保存します。

ルール定義のラベルとメトリック由来のラベルの優先順位はどうなりますか?▼

ルールの `labels` ブロックで指定したラベルは、メトリックから抽出された既存ラベルとマージされます。同一ラベル名で衝突が発生した場合、ルール側で明示的に定義したラベル値が優先されて上書きされます。

アラートルールの `expr` 内でPromQLのサブクエリを使用できますか?▼

構文上は `rate(http_requests_total[5m])[30m:1m]` のようなサブクエリを使用可能ですが、評価ごとのCPU・メモリ負荷が非常に高くなります。通常は内部のrate式をレコーディングルールとして事前に計算しておく設計が推奨されます。

Prometheusルールに対する単体テスト(ユニットテスト)はどのように記述しますか?▼

Prometheus公式の `promtool test rules test.yml` を使用します。モックの時系列データとタイムスタンプを定義し、特定の評価ステップでアラートが `pending` または `firing` になっているかをアサーションできます。

推奨されるルールグループ(Rule Group)の分割設計方針はありますか?▼

サービス名、チーム名、または障害ドメイン単位でルールグループを分割するのがベストプラクティスです(例: `groups: - name: node_exporter_alerts`)。グループごとに独立した評価間隔(`interval`)を設定することも可能です。

関連するおすすめ開発ツール

すべてのツール →
GraphQL SDLからTypeScriptリゾルバー型生成ツール 開発者ガイドdeveloper

GraphQL SDL(スキーマ定義言語)から、完全な型安全性を備えたTypeScriptリゾルバーインターフェース、引数型、コンテキスト型を自動生成します。

ツールを開く→
cURL to C# 変換ツール (.NET HttpClient, RestSharp & Flurl) 開発者ガイドdeveloper

コマンドラインの cURL リクエストを、.NET HttpClient、RestSharp、Flurl.Http を用いた実用的な C# コードへ高精度に変換。非同期処理や接続プーリングのベストプラクティスに対応。

ツールを開く→
cURLからJavaへの変換ガイド(Java 11+ HttpClient、OkHttp & Spring WebClient)developer

cURLコマンドを標準のjava.net.http.HttpClient、OkHttp3、Spring WebClientのプロダクション品質なJavaコードへ瞬時に変換します。

ツールを開く→
JSON から XML Schema (XSD) 定義ジェネレーター 開発者ガイドdeveloper

サンプルJSONからXMLスキーマ定義(XSD)の型構造、複合要素(complexType)、属性、出現頻度(minOccurs/maxOccurs)を高精度に自動推論。

ツールを開く→
インタラクティブ .gitignore ファイル生成ツール (Node, Python, Go, Rust, Java) 開発者ガイドdeveloper

OS、IDE、および50以上の主要プログラミング言語の除外ルールを組み合わせ、包括的な .gitignore テンプレートを瞬時に生成します。

ツールを開く→
Crontab構文&Quartzスケジュール式 チートシートdeveloper

5フィールドPOSIX規格および6フィールドQuartz形式のcron式完全リファレンス。特殊マクロ、実行周期計算、多重起動防止策を徹底解説。

ツールを開く→