📘
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