eBPFベースのオブザーバビリティ及びAPMツール。Kubernetes及びDocker環境向けのゼロインストルメンテーション メトリクス、ログ、トレース、継続的プロファイリング機能を搭載。
# ClickHouseとPrometheusを含むワンコマンド デプロイメント
curl -fsS https://raw.githubusercontent.com/coroot/coroot/main/deploy/docker-compose.yaml | \
docker compose -f - up -d
# http://localhost:8080 でUIにアクセス
# Coroot Helm リポジトリを追加
helm repo add coroot https://coroot.github.io/helm-charts
helm repo update coroot
# Coroot オペレーターをインストール
helm install -n coroot --create-namespace coroot-operator coroot/coroot-operator
# Community Edition をデプロイ
helm install -n coroot coroot coroot/coroot-ce
# ClickHouse レプリケーション付きでデプロイ
helm install -n coroot coroot coroot/coroot-ce \
--set "clickhouse.shards=2,clickhouse.replicas=2"
# UIにアクセスするようにポート フォワード
kubectl port-forward -n coroot service/coroot-coroot 8080:8080
# http://localhost:8080 でUIにアクセス
# Coroot スタックをデプロイ
curl -fsS https://raw.githubusercontent.com/coroot/coroot/main/deploy/docker-swarm-stack.yaml | \
docker stack deploy -c - coroot
# Coroot サーバーをインストール
curl -sfL https://raw.githubusercontent.com/coroot/coroot/main/deploy/install.sh | \
BOOTSTRAP_PROMETHEUS_URL="http://PROMETHEUS_IP:9090" \
BOOTSTRAP_REFRESH_INTERVAL=15s \
BOOTSTRAP_CLICKHOUSE_ADDRESS=CLICKHOUSE_IP:9000 \
sh -
# RHELベース ディストリビューションでも同じインストーラーが機能
curl -sfL https://raw.githubusercontent.com/coroot/coroot/main/deploy/install.sh | \
BOOTSTRAP_PROMETHEUS_URL="http://PROMETHEUS_IP:9090" \
BOOTSTRAP_REFRESH_INTERVAL=15s \
BOOTSTRAP_CLICKHOUSE_ADDRESS=CLICKHOUSE_IP:9000 \
sh -
# 特権コンテナとしてノード エージェントを実行
docker run --detach --name coroot-node-agent \
--pull=always --privileged --pid host \
-v /sys/kernel/tracing:/sys/kernel/tracing:rw \
-v /sys/kernel/debug:/sys/kernel/debug:rw \
-v /sys/fs/cgroup:/host/sys/fs/cgroup:ro \
ghcr.io/coroot/coroot-node-agent \
--cgroupfs-root=/host/sys/fs/cgroup \
--collector-endpoint=http://COROOT_IP:8080
# ベアメタルまたはVM上にノード エージェントをインストール
curl -sfL https://raw.githubusercontent.com/coroot/coroot-node-agent/main/install.sh | \
COLLECTOR_ENDPOINT=http://COROOT_IP:8080 \
SCRAPE_INTERVAL=15s \
sh -
# ノード エージェントはCoroot オペレーターによって自動デプロイ
# Helm使用時の別個インストール不要
| コマンド | 説明 |
|---|
docker compose up -d | Docker Compose でCoroot を開始 |
docker compose down | すべてのCoroot サービスを停止 |
docker compose logs -f | Coroot ログをフォロー |
helm install coroot coroot/coroot-ce | Kubernetes上にCoroot をインストール |
helm upgrade coroot coroot/coroot-ce | Coroot をアップグレード |
helm uninstall coroot -n coroot | クラスターからCoroot を削除 |
kubectl port-forward svc/coroot-coroot 8080:8080 -n coroot | Coroot UIにアクセス |
| 変数 | 説明 | デフォルト |
|---|
BOOTSTRAP_PROMETHEUS_URL | Prometheus サーバー エンドポイント | 必須 |
BOOTSTRAP_REFRESH_INTERVAL | メトリクス収集間隔 | 15s |
BOOTSTRAP_CLICKHOUSE_ADDRESS | ClickHouse サーバー アドレス | 必須 |
LISTEN_ADDRESS | HTTP リスン アドレス | :8080 |
DATA_DIR | データ ディレクトリ パス | /var/lib/coroot |
| フラグ | 説明 | デフォルト |
|---|
--collector-endpoint | Coroot サーバー エンドポイント | 必須 |
--cgroupfs-root | Cgroup ファイルシステム ルート パス | /sys/fs/cgroup |
--scrape-interval | メトリクス スクレイプ間隔 | 15s |
--log-level | ログ 詳細度 | info |
| コンポーネント | ロール |
|---|
| Coroot サーバー | 中央ダッシュボード、分析エンジン、アラート |
| ノード エージェント | 各ノード上のeBPFベース メトリクス/ログ収集 |
| クラスター エージェント | データベース監視(MySQL、PostgreSQL、Redis) |
| ClickHouse | メトリクス、ログ、トレース、プロファイル保存 |
| Prometheus | メトリクス スクレイピング及びリモート ライト |
| 機能 | 説明 |
|---|
| 自動検出 | サービスはeBPF経由で自動検出 — コード変更不要 |
| サービス マップ | すべてのサービス依存関係を表示するライブ トポロジー マップ |
| 分散トレーシング | SDKなしでマイクロサービス全体のリクエスト トレーシング |
| ログ収集 | 自動ログ収集及びパターン クラスタリング |
| 継続的プロファイリング | ワンクリック有効化でCPU/メモリプロファイリング |
| 機能 | 説明 |
|---|
| SLO追跡 | Service Level Objectives を定義及び監視 |
| 問題検出 | 80%以上の問題を自動検出 |
| デプロイメント追跡 | Kubernetes デプロイメント及びロールバック追跡 |
| コスト監視 | AWS、GCP、Azure リソース コスト分析 |
| ネットワーク分析 | TCPコネクション メトリクス、DNS遅延、再送信 |
| プロトコル | 収集メトリクス |
|---|
| HTTP/HTTPS | レイテンシ、エラー率、スループット |
| gRPC | メソッドレベルのレイテンシ及びエラー |
| PostgreSQL | クエリ レイテンシ、接続、エラー |
| MySQL | クエリ パフォーマンス、スロー クエリ |
| Redis | コマンド レイテンシ、ヒット/ミス率 |
| MongoDB | 操作 レイテンシ、接続 |
| Kafka | プロデューサー/コンシューマー ラグ、スループット |
| DNS | 解決 レイテンシ、失敗率 |
# カスタムClickHouse サイジング
helm install coroot coroot/coroot-ce \
--set clickhouse.shards=3 \
--set clickhouse.replicas=2 \
--set clickhouse.storage=100Gi
# カスタムPrometheus 設定
helm install coroot coroot/coroot-ce \
--set prometheus.storage=50Gi \
--set prometheus.retention=30d
# イングレス を有効化
helm install coroot coroot/coroot-ce \
--set ingress.enabled=true \
--set ingress.host=coroot.example.com
| アラート タイプ | 説明 |
|---|
| SLO違反 | SLO目標がリスク状態の時にトリガー |
| レイテンシ スパイク | p99レイテンシが閾値を超える場合 |
| エラー率 | エラー パーセンテージが閾値を超える場合 |
| リソース | CPU、メモリ、ディスク使用量の異常 |
| デプロイメント | 失敗または劣化したデプロイメント検出 |
| チャネル | 構成 |
|---|
| Slack | ウェブフックURL |
| PagerDuty | 統合キー |
| Opsgenie | APIキー |
| Email | SMTP設定 |
| Webhook | カスタムHTTPエンドポイント |
| 問題 | 解決策 |
|---|
| データが表示されない | ノード エージェント --collector-endpoint がCoroot サーバーを指しているか確認 |
| サービスが見つからない | ノード エージェント が --privileged 及び --pid host で実行されているか確認 |
| eBPF が読み込まれない | カーネル バージョン 4.16以上でBTFサポート確認 |
| 高メモリ使用量 | --scrape-interval を削減、または監視対象 名前空間を制限 |
| ClickHouse 接続 | ClickHouse が実行中で、ポート 9000 でアクセス可能か確認 |
- クラスター内のすべてのノードにノード エージェントをデプロイして完全な可視性を確保
- 本番環境デプロイメント用にClickHouse レプリケーションを使用(最小2レプリカ)
- 自動アラート依存前に意味のあるSLO目標を設定
- Docker Compose で評価を開始、本番環境用にHelmに移行
- ポッド再起動を超えてメトリクスを永続化するようにPrometheus リモート ライトを構成
- 組み込みプロファイラーを使用してスケーリング前にCPU/メモリ ホットスポット特定
- デプロイメント トラッキングを有効化してリリースとパフォーマンス変化を相関させる