システム開発

Prometheus・Grafana ぷろめてうす・ぐらふぁな

監視メトリクス可視化アラートダッシュボード時系列データ
Prometheus・Grafanaについて教えて

簡単に言うとこんな感じ!

PrometheusはシステムのCPU・メモリ・エラー数などをせっせと収集する「データ収集係」、Grafanaはそのデータをグラフやダッシュボードでパッとわかりやすく表示する「グラフ描き係」だよ! 2つセットでシステム監視の定番コンビなんだ!


Prometheus・Grafanaとは

Prometheusは、システムやアプリケーションからメトリクス(数値データ)を定期的に収集・保存するオープンソースの監視ツールです。CPU使用率・メモリ消費・HTTPリクエスト数・エラー率といった数値を時系列データとして蓄積し、独自クエリ言語PromQLで柔軟に分析できます。

Grafanaは、Prometheusをはじめとする様々なデータソースからデータを取得し、グラフ・ゲージ・ヒートマップなどを用いたダッシュボードを作成する可視化ツールです。コードを書かずにドラッグ&ドロップで直感的なダッシュボードを作れるため、エンジニアだけでなく運用チームにも広く使われています。

発注者の視点では、システムに「Prometheus+Grafanaによる監視基盤が整備されているか」を確認することが、運用品質の評価につながります。監視がないシステムは、障害が起きても気づくのが遅れ、重大な損害につながるリスクがあります。


PrometheusとGrafanaの役割分担

役割PrometheusGrafana
主な機能メトリクス収集・保存・アラートデータ可視化・ダッシュボード
データ取得方法スクレイピング(pull型)データソースから取得
クエリ言語PromQL各データソース依存
アラート機能Alertmanager連携Grafana Alerting
データ保存ローカルTSDBなし(他DBに依存)
UIの豊富さ基本的な表示のみ高度なダッシュボード

Prometheusのデータ収集の仕組み

用語意味
スクレイピング監視対象のエンドポイントにHTTPでアクセスしてデータを取得
Exporter監視対象ごとのデータ変換アダプタ(MySQL Exporter等)
TSDB時系列データベース。Prometheusの内部ストレージ
PromQLPrometheus独自のクエリ言語。集計・フィルタが可能
Alertmanagerアラート条件に合致したらSlackやメールで通知

歴史と背景

  • 2012年 — SoundCloudのエンジニアがGoogleの内部監視ツール「Borgmon」にインスパイアされPrometheusを開発開始
  • 2015年 — Prometheusがオープンソースとして公開
  • 2016年CNCF(Cloud Native Computing Foundation)に採択。Kubernetesの標準監視ツールとして普及が加速
  • 2018年 — PrometheusがCNCFの「卒業プロジェクト」に。企業での採用が急増
  • 2014年GrafanaがTorkel Ödegaardによって公開。Kibanaのフォークとして誕生
  • 2020年代 — GrafanaがPrometheus以外にも多数のデータソース対応。Grafana Cloudとしてマネージドサービスも提供

監視の全体像

Prometheus + Grafana 監視スタック Webサーバー /metrics エンドポイント DBサーバー MySQL Exporter Kubernetesクラスタ kube-state-metrics Prometheus 定期スクレイピング データ保存(TSDB) PromQLで分析 Alertmanager連携 Grafana ダッシュボード グラフ・アラート通知 Alertmanager Slack・メール通知 15秒〜1分ごとに自動でデータ収集(スクレイピング) しきい値を超えたら即座にアラート通知

関連する規格・RFC

規格・RFC番号内容
OpenMetricsPrometheusのメトリクス形式を標準化したIETF提案仕様
CNCF PrometheusCNCFの卒業プロジェクト。エンタープライズ採用の裏付け
OpenTelemetry OTLPPrometheusと統合可能なテレメトリ転送プロトコル

関連用語