Prometheusとは
Prometheus は 「システムやアプリの状態を“数値(メトリクス)”として定期的に収集し、 時系列で保存・分析するための OSS 監視ツール」 です。
CPU 使用率、メモリ使用量、リクエスト数、エラー率などを リアルタイムに近い形で把握することを目的としています。
Prometheusは何をするツールか
Prometheus が扱うのは、次のような 数値データ(メトリクス) です。
- CPU 使用率
- メモリ使用量
- リクエスト数
- エラー率
- レイテンシ(応答時間)
文章データを扱うログとは異なり、「数値の変化」を継続的に観測することに特化しています。
ログ監視との違い
Prometheus を理解する上で、ログとの違いは重要です。
| 観点 | ログ | Prometheus |
|---|---|---|
| データ型 | 文字列 | 数値 |
| 主な用途 | 事後調査 | 監視・予兆検知 |
| 例 | エラーメッセージ | CPU 使用率 |
| 時系列分析 | △ | ◎ |
- 何が起きたかを調べる → ログ
- 今おかしいか/これから壊れそうかを見る → Prometheus
という役割分担になります。
Prometheusの仕組み
1. metrics を取りに行く(pull 型)
Prometheus は pull 型 の監視ツールです。
- 監視対象(アプリ・Pod・Node など)が
/metricsを公開 - Prometheus が HTTP で定期的にアクセス(scrape)
返ってくるのは次のようなテキストです。
http_requests_total{method="GET"} 12345
cpu_usage_seconds_total 456.7
2. 時系列データとして保存
Prometheus は、
- いつ
- どのメトリクスが
- いくつだったか
を 時系列データベース として保存します。
BigQuery のような分析基盤ではなく、監視用途に特化しています。
3. PromQLで問い合わせ
Prometheus には PromQL という専用クエリ言語があります。
たとえば、
- 直近5分の CPU 使用率の平均
- エラー率が急増していないか
- Pod 数が急に減っていないか
といった問い合わせを記述できます。
SQL 経験があれば比較的理解しやすい構文です。
なぜKubernetesと相性が良いのか
Prometheus が広く使われる最大の理由がここです。
Kubernetes 環境では、
- Pod が頻繁に増減する
- IP アドレスが固定されない
- コンテナ数が多い
といった特徴があります。
Prometheus は Kubernetes API を利用し、
- Pod / Service を自動検出
- 対象が増減しても自動追従
できる設計になっています。
そのため Kubernetes 時代の監視標準 と言われています。
クラウド依存ではない(AWS / Azure / GCP)
Prometheus 自体は クラウド非依存 の OSS です。
各クラウドでは、運用を簡単にしたマネージド版が提供されています。
| クラウド | マネージド Prometheus |
|---|---|
| GCP | Google Managed Prometheus |
| AWS | Amazon Managed Service for Prometheus |
| Azure | Azure Monitor managed Prometheus |
中身は同じ Prometheus で、
違いは「誰が運用するか」だけ。
Prometheusがやらないこと
- ログ管理はしない
- トレース(OpenTelemetry)は主目的ではない
- BI / 集計分析用途ではない
Prometheus はあくまで 監視・可観測性のためのツール。
Grafanaとの組み合わせ
Prometheus
-
数値(CPU・メモリ・エラー率など)を集める
-
時系列DBとして保存する
-
PromQLで問い合わせる
-
Prometheus に問い合わせる
-
取得した数値をグラフ・表・ゲージで表示する
-
ダッシュボードとしてまとめる