概要
- LogHouse は、ClickHouse Cloud監視のために構築された大規模な内部ログ基盤
- データ量 は19 PiBから100 PB、行数は40兆から500兆行へと急増
- OpenTelemetry (OTel) の限界を超え、独自のパイプライン(SysEx)を開発
- CPU効率 は20倍のイベント増加に対し、従来の10%未満で処理可能に
- HyperDX導入 により、ClickHouseネイティブな観測・分析UIを実現
観測基盤LogHouseの進化と課題
-
LogHouse はClickHouse Cloudの監視・分析基盤として自社開発
-
初期は19 PiB・40兆行のログ管理で、Datadogからのコスト削減にも成功
-
1年で100 PB・500兆行までスケール、設計やツールの大幅な見直しが必要に
-
OpenTelemetry (OTel) 採用でKubernetes全Podから統一的にログ収集
-
スケール増大に伴い、OTelのパース・マーシャリングがCPUボトルネック化
-
SysEx というClickHouse専用エクスポータを開発し、主要ログの収集効率化を実現
- SysEx はClickHouseのsystem tableからネイティブ形式でデータを直接転送
- OTel経由ではJSON→OTel形式→ClickHouse形式と多重変換が発生
- SysExはバイト単位でコピーし、変換コストやデータ劣化を排除
- スクレイパはHash Ringで分散、各Podのsystem tableを定期的にスキャン
- 過去5分程度の遅延バッファを持つことで、バッファフラッシュ漏れも回避
-
OTel 利用時は、Kubernetesノード上のCollectorがCPUリミットでドロップ発生
-
OTelパイプライン維持には8,000 CPUコア必要という非現実的な規模感
-
SysEx導入により、20倍のイベント増加でも従来の10%以下のCPUで安定運用
HyperDXとClickStackによる次世代観測UI
- HyperDX はClickHouseネイティブな観測UIとして導入
- Luceneライクなクエリ構文で探索・相関・根本原因分析が容易
- これまでのGrafanaベースカスタムUIから、ClickHouse統合型UIへ移行開始
- ClickStack はClickHouse中心のエンドツーエンド観測スタック
- 大規模データの安価な保存・高速クエリが可能となり、他チームでも採用拡大
SysExの技術的詳細と運用ノウハウ
- SysExはGo製、ClickHouse Goクライアントに独自パッチを適用
- データのマーシャリング/アンマーシャリングを完全バイパス
- システムテーブルのスキーマは頻繁に変化するため、動的スキーマ生成&管理
- ハッシュでスキーマバージョン管理、LogHouse側も自動で新テーブル作成
- クエリ時はClickHouseのUNION ALLで複数スキーマを横断的に検索
- SysExはPull型で定期取得、LogHouse障害時もバックフィルでデータ欠損を防止
- OTelのような大量バッファや複雑なリトライ処理は不要
今後の展望と他社への示唆
- LogHouseの経験は、従来型ベンダー製品の限界やコスト課題に悩む他社にも有用
- 汎用的なOTelと、目的特化型パイプラインの適材適所が重要
- ClickHouse/HyperDX/ClickStackの組み合わせで、スケーラブルかつコスト効率的な観測基盤構築が可能
- ClickHouse Cloudは無料クレジット付きですぐに試用可能
参考:
- LogHouse, SysEx, HyperDX, ClickStack, OpenTelemetry, ClickHouse Cloud
- Go, Kubernetes, CPU効率, スキーマ管理, 大規模データ運用