📘

Google cAdvisorとは?

に公開

🧠 Google cAdvisorとは?

cAdvisor(Container Advisor)は、Googleが開発したコンテナ監視ツールです。
DockerなどのLinuxコンテナにおける リソース使用量やパフォーマンス指標をリアルタイムで収集・表示 することができます。


🔍 主な機能

機能 説明
🧾 リソースモニタリング CPU、メモリ、ネットワーク、ディスクI/Oなどの使用量をリアルタイムで取得
📊 Web UI 提供 ブラウザでアクセス可能なダッシュボードを表示
🧩 複数のコンテナ対応 主に Docker に最適化されているが、他の一部コンテナランタイム(例: rkt)にも対応
💾 外部連携 Prometheus や InfluxDB などの時系列DBにデータ送信可能
⚙️ 自動検出 起動中のコンテナを自動検出して監視対象とする

🚀 インストールスクリプト(Docker)

以下のコマンドで簡単に起動できます:

docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:rw \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --publish=8080:8080 \
  --detach=true \
  --name=cadvisor \
  gcr.io/cadvisor/cadvisor:latest


起動後、http://[ホストIP]:8080 にアクセスすると、リソース情報のダッシュボードが表示されます。


📈 Prometheus + Grafanaとの連携

Prometheus設定例(prometheus.yml)

scrape_configs:
  - job_name: 'cadvisor'
    static_configs:
      - targets: ['localhost:8080']

Grafanaでの可視化

  1. Grafanaにログイン
  2. Prometheusをデータソースとして追加
  3. ダッシュボードをインポート(例: Dashboard ID 14282など)
  4. cadvisor のメトリクスを利用してグラフを構築

🧬 内部構造の概要(ソースコード)

GitHubリポジトリ: https://github.com/google/cadvisor

ディレクトリ構成(抜粋)

ディレクトリ 役割
container/ 各種コンテナランタイムの処理(Docker, rawなど)を定義
manager/ メインの監視ロジック。コンテナの検出やメトリクス収集を担当
metrics/ Prometheus等のエクスポートフォーマットに変換する処理
fs/ ディスク使用量やファイルシステムに関する処理
utils/ 各種ユーティリティ(キャッシュ、ネットワーク等)
storage/ メモリ上に保存するか、外部DBと連携するかの設定

Go言語で書かれており、構造はモジュール化されていて読みやすいのが特徴です。


✅ まとめ

項目 内容
ツール名 cAdvisor(Container Advisor)
提供元 Google
主な用途 コンテナのリソース使用状況監視(CPU, メモリ, ネットワーク等)
主対象 Docker コンテナ(他も一部対応)
出力形式 Web UI + Prometheus 連携
導入方法 Docker コンテナとして簡単起動可能
適用場面 単一ホストのモニタリング、軽量な監視、Prometheusとの連携など

※ 個人的にはportainerが好みかな。

Discussion