mcpField
P
prometheus-api

prometheus-api

github.com/julianobarbosaクラウド・DevOps1459 回インストール2 日前に更新
リポジトリ

prometheus-api について

HTTP API 経由で Prometheus 監視システムを照会するスキルで、クエリとヘルスチェック用のスクリプトも含みます。メトリクス、ターゲット、アラート、システム状態の確認に利用できます。

主な機能

  1. 01即時クエリと範囲クエリ
  2. 02時系列、ラベル、メタデータの検索
  3. 03ターゲット、アラート、ルールの確認
  4. 04Prometheus ステータスエンドポイントへのアクセス
  5. 05クエリとヘルスチェックのスクリプト

活用シーン

  1. 01特定時点のメトリクス確認
  2. 02期間内のメトリクス値の追跡
  3. 03アクティブなターゲットとアラートの確認
  4. 04Prometheus のランタイムと TSDB 状態の確認

インストール

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

$npx skills add https://github.com/julianobarbosa/claude-code-skills --skill prometheus-api

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
api_reference.md
promql_functions.md
scripts/
prom_health.py
prom_metadata.py
prom_query.py

詳細

Prometheus API スキル

/api/v1 の HTTP API を使って Prometheus 監視システムにクエリします。

クイックリファレンス

インスタントクエリ
curl 'http://<prometheus>:9090/api/v1/query?query=<promql>&time=<timestamp>'
レンジクエリ
curl 'http://<prometheus>:9090/api/v1/query_range?query=<promql>&start=<ts>&end=<ts>&step=<duration>'

レスポンス形式

すべてのレスポンスは JSON を返します。

{
  "status": "success" | "error",
  "data": <result>,
  "errorType": "<string>",
  "error": "<string>",
  "warnings": ["<string>"]
}

HTTP コード:400(不正なパラメーター)、422(式のエラー)、503(タイムアウト)。

クエリエンドポイント

エンドポイント目的主なパラメーター
/api/v1/queryインスタントクエリquery、time、timeout、limit
/api/v1/query_rangeレンジクエリquery、start、end、step、timeout、limit
/api/v1/format_queryPromQL の整形query
/api/v1/seriesラベルによる系列の検索match[]、start、end、limit
/api/v1/labelsラベル名の一覧表示start、end、match[]、limit
/api/v1/label/<name>/valuesラベル値start、end、match[]、limit
/api/v1/query_exemplarsエグザンプラーのクエリquery、start、end

メタデータとステータスのエンドポイント

エンドポイント目的
/api/v1/targetsターゲット検出ステータス(state=active|dropped|any)
/api/v1/targets/metadataターゲットのメトリクスメタデータ
/api/v1/metadataすべてのメトリクスメタデータ
/api/v1/rulesアラートルール/記録ルール
/api/v1/alertsアクティブなアラート
/api/v1/alertmanagersAlertmanager の検出
/api/v1/status/config現在の設定 YAML
/api/v1/status/flagsCLI フラグ
/api/v1/status/runtimeinfoランタイム情報
/api/v1/status/buildinfoビルド情報
/api/v1/status/tsdbTSDB のカーディナリティ統計
/api/v1/status/walreplayWAL のリプレイ進行状況

管理エンドポイント(--web.enable-admin-api が必要)

エンドポイントメソッド目的
/api/v1/admin/tsdb/snapshotPOSTTSDB スナップショットの作成
/api/v1/admin/tsdb/delete_seriesPOST系列の削除(match[]、start、end)
/api/v1/admin/tsdb/clean_tombstonesPOST削除済みデータのクリーンアップ

よく使われる PromQL パターン

# Rate of counter over 5m
rate(http_requests_total[5m])

# Sum by label
sum by (job) (rate(http_requests_total[5m]))

# Percentile from histogram
histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m]))

# Filter by label
up{job="prometheus", instance=~".*:9090"}

# Increase over time
increase(http_requests_total[1h])

# Average over time range
avg_over_time(process_cpu_seconds_total[5m])

結果の型

  • vector:[{"metric": {...}, "value": [timestamp, "value"]}]
  • matrix:[{"metric": {...}, "values": [[ts, "val"], ...]}]
  • scalar:[timestamp, "value"]
  • string:[timestamp, "string"]

スクリプト

クエリスクリプト:scripts/prom_query.py

# Instant query
python scripts/prom_query.py http://localhost:9090 'up'

# Range query
python scripts/prom_query.py http://localhost:9090 'rate(http_requests_total[5m])' \
  --start '2024-01-01T00:00:00Z' --end '2024-01-01T01:00:00Z' --step '1m'

# Output: table, json, csv
python scripts/prom_query.py http://localhost:9090 'up' --format table

ヘルスチェック:scripts/prom_health.py

python scripts/prom_health.py http://localhost:9090

詳細リファレンス

API の完全なドキュメント:references/api_reference.md

PromQL 関数:references/promql_functions.md

コメント