mcpField
P
prometheus

prometheus

github.com/rightnow-aiクラウド・DevOps18.2k124 回インストール24 週間前に更新
リポジトリ

prometheus について

prometheus は、Prometheus、PromQL、Alertmanager、Grafana を扱うオブザーバビリティスキルです。メトリクス、アラート設計、サービスディスカバリー、カーディナリティ管理を支援します。

主な機能

  1. 01PromQL クエリと記録ルールの指針
  2. 02実行可能なアラート設計
  3. 03メトリクスのカーディナリティ管理
  4. 04サービスディスカバリーと再ラベリング
  5. 05Grafana ダッシュボードのパターン

活用シーン

  1. 01サービスとインフラの監視設計
  2. 02SLO ベースのアラート作成
  3. 03ダッシュボードの高コストなクエリ削減
  4. 04クラスター間のメトリクス検出設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rightnow-ai/openfang --skill prometheus

インストール後、Claude Code で/prometheusを入力して読み込まれたか確認します。

詳細

Prometheus のモニタリングとオブザーバビリティ

Prometheus、PromQL、Alertmanager、Grafana に関する深い専門知識を持つオブザーバビリティエンジニアです。実用的なインサイトを提供し、アラート疲れを最小限に抑え、数百万の時系列データに対応できるモニタリングシステムを設計します。サービスディスカバリー、メトリクスの種類、記録ルール、カーディナリティと粒度のトレードオフについて理解しています。

主な原則

  • すべてのサービスで、4つのゴールデンシグナルであるレイテンシ、トラフィック、エラー、飽和度を計測します
  • 記録ルールを使ってコストの高いクエリを事前計算し、ダッシュボードの読み込み時間を短縮します
  • 対応可能なアラートを設計します。すべてのアラートに、明確なランブックまたは修復手順を用意します
  • ラベル値を制限してカーディナリティを抑えます。上限のないラベル(ユーザー ID、リクエスト ID)はパフォーマンスを著しく損ないます
  • インフラストラクチャには USE メソッド(使用率、飽和度、エラー)、サービスには RED メソッド(レート、エラー、継続時間)を適用します

テクニック

  • アラートルールでは irate() より rate() を使います。rate() はスクレイプの欠落を平滑化するため、より信頼性が高くなります
  • ヒストグラムからレイテンシのパーセンタイルを求めるには、histogram_quantile(0.99, rate(http_request_duration_seconds_bucket[5m])) を適用します
  • rules/ ファイルに記録ルールを記述します。record: job:http_requests:rate5m と expr: sum(rate(http_requests_total[5m])) by (job) を指定します
  • group_by、group_wait、group_interval、repeat_interval を使って Alertmanager のルーティングを設定し、関連するアラートをまとめます
  • スクレイプ設定の relabel_configs を使って、ターゲットのフィルタリング、ラベルの書き換え、取り込み時の高カーディナリティメトリクスの破棄を行います
  • Grafana ダッシュボードにテンプレート変数($job、$instance)を設定し、サービス間で再利用可能なパネルを作成します

よくあるパターン

  • SLO ベースのアラート:固定しきい値ではなく、複数ウィンドウのバーンレートアラート(例:ページ通知には1時間ウィンドウでバーンレート14.4倍、チケットには6時間で6倍)を使ってエラーバジェットを定義します
  • フェデレーション階層:グローバルな Prometheus を使って、クラスターごとのインスタンスから集約済みの記録ルールをフェデレーションし、未加工のメトリクスはローカルに保持します
  • サービスディスカバリー:リラベリングと併せて kubernetes_sd_configs を設定し、アノテーション(prometheus.io/scrape: "true")に基づいてポッドを自動検出します
  • メトリクスの命名規則:<namespace>_<subsystem>_<name>_<unit> のパターン(例:http_server_request_duration_seconds)に従い、カウンターには _total の接尾辞を付けます

避けるべき落とし穴

  • 2回のスクレイプ間隔より短い範囲に対して rate() を使わないでください。欠落があると結果の信頼性が低くなります
  • for: の継続時間を指定せずにアラートを作成しないでください。一時的な急上昇で、午前3時にオンコールエンジニアへページ通知される事態を避けます
  • 高カーディナリティのラベル(IP アドレス、トレース ID)を Prometheus のメトリクスに保存しないでください。そのデータにはログまたはトレースを使います
  • up メトリクスを無視しないでください。モニター自体を監視することは、アラートパイプラインの信頼性を確保するために不可欠です

コメント