📘
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での可視化
- Grafanaにログイン
- Prometheusをデータソースとして追加
- ダッシュボードをインポート(例: Dashboard ID
14282など) -
cadvisorのメトリクスを利用してグラフを構築
🧬 内部構造の概要(ソースコード)
GitHubリポジトリ: https://github.com/google/cadvisor
ディレクトリ構成(抜粋)
| ディレクトリ | 役割 |
|---|---|
container/ |
各種コンテナランタイムの処理(Docker, rawなど)を定義 |
manager/ |
メインの監視ロジック。コンテナの検出やメトリクス収集を担当 |
metrics/ |
Prometheus等のエクスポートフォーマットに変換する処理 |
fs/ |
ディスク使用量やファイルシステムに関する処理 |
utils/ |
各種ユーティリティ(キャッシュ、ネットワーク等) |
storage/ |
メモリ上に保存するか、外部DBと連携するかの設定 |
Go言語で書かれており、構造はモジュール化されていて読みやすいのが特徴です。
✅ まとめ
| 項目 | 内容 |
|---|---|
| ツール名 | cAdvisor(Container Advisor) |
| 提供元 | |
| 主な用途 | コンテナのリソース使用状況監視(CPU, メモリ, ネットワーク等) |
| 主対象 | Docker コンテナ(他も一部対応) |
| 出力形式 | Web UI + Prometheus 連携 |
| 導入方法 | Docker コンテナとして簡単起動可能 |
| 適用場面 | 単一ホストのモニタリング、軽量な監視、Prometheusとの連携など |
※ 個人的にはportainerが好みかな。

Discussion