- LogHouse は1年で19PiBから 100PB超のログデータ を処理し、約500兆行までスケールした
- OpenTelemetry(OTel) のデータ処理の限界と非効率性の問題により、中核システムに合った カスタムパイプライン(SysEx) へ移行した
- この移行により、イベント処理量が20倍に増えてもCPU使用率を10%以下 に維持する効率を実現した
- ClickHouseの HyperDXおよびClickStack導入 により、UIとデータの統合、スキーマの柔軟性、強力なデータ探索環境が構築された
- Wide events と高カーディナリティ モデルの採用により、事前集計なしですべてのイベントの保存と分析が可能になった
背景と変化
- ClickHouse Cloud向けの内部ロギングプラットフォーム LogHouse は、1年でデータ規模が19PiBから100PB超、37兆行からほぼ500兆行まで増加した大規模システムへと成長した
- 当初はすべてのテレメトリーを OpenTelemetry(OTel) で収集していたが、大量データ環境では性能やリソースの限界、データ変換過程での CPUの浪費とデータ損失 の問題が目立っていた
OTelの限界とカスタムパイプライン導入の理由
- OTelのパイプラインでは、ログがJSONに変換され、その後OTel形式に再マッピングされるなど、変換とマーシャリングが何度も繰り返され、効率が極めて低かった
- 実際、OTelベースで毎秒2,000万行を処理するには約 8,000個のCPUコア が必要なほどだった
- トラフィック急増時にはCollectorが過負荷となり、ログのドロップが発生して収集できないデータが生じた
SysEx導入と構成
- SysEx(System Tables Exporter) はClickHouseの system tables を対象に、データを元の型のまま、変換なしで直接LogHouseへ移送する
- ハッシュリング構造による分散スクレイピング、時間遅延バッファ とスライディングウィンドウ方式によりデータ欠落を防ぎ、内部SLAを満たす
- Go言語とClickHouseクライアントのカスタム機能を使い、データのマーシャリングなしで byte-to-byte転送 が可能になった
- 可変スキーマに対応するため、スキーマハッシュと動的スキーマ管理を適用し、Merge table engine で複数のスキーマバージョンを1つの論理ビューに統合する
- スナップショットベースのメモリテーブル収集により、高度な診断および分析作業を支援する
性能と効率の改善
- SysExの導入により、OTel Collectorは毎秒200万ログを800 CPUで処理する一方、SysExは70 CPUで3,700万ログを処理 できるようになった
- この効率向上によって、リソース使用量を大幅に削減し、イベント損失を防ぎ、リアルタイム支援環境を実現した
OTelの継続的な役割
- OTelは 標準であり、ベンダー中立のプラットフォーム を提供し、サービス障害や異常状態では依然として不可欠である
- SysExで処理できないクラッシュや異常時でもログを捕捉できる
- 現在はトレースレベル以下のログのみを除外し、infoレベル以上だけを収集してリソースを最適化している
UIとHyperDX、ClickStackの統合
- 従来のカスタムGrafana UIから、HyperDX ベースのClickHouseネイティブUIへ段階的に移行している
- HyperDXは スキーマ非依存、Luceneクエリ対応、SQL対応など、ClickHouseの幅広いデータ型との完全な互換性を提供する
- 多様なテーブル構造やカスタムExporter由来のデータも、UI変更なしで統合できる
- GrafanaはPrometheusベースのメトリクスや固定ダッシュボードを担当するなど、両ソリューションは相互補完的に使われている
Wide Events と高カーディナリティモデルの受容
- Wide events は各行にクエリID、Pod名、バージョン情報など多様なコンテキストを含め、集計なしですべてのデータを保存する画期的な方式である
- この方式は Prometheus などとは異なり、事前集計、ラベル制限、カーディナリティ爆発を気にせず、深い分析と柔軟なクエリを可能にする
- データ分析時点で必要な集計を行うことで、大量データ環境でも 性能とコスト の両立を実現する
データ可視化とクエリの柔軟性
- ClickHouseはPlotly、Jupyter notebookなどとの連携に優れ、さまざまな可視化ツールを自由に活用できる
- LuceneベースのHyperDXによる高速な探索に加え、複雑な関係や条件のクエリ(SQL、JOINなど)による高度な原因分析をClickHouse上でそのまま行える
Wide Eventベースの多様なデータソース拡大
- kubenetmon: Kubernetesネットワーク監視オープンソース。L3/L4トラフィック、接続、コスト分析
- Kubernetes Event Exporter: ClickHouseシンクを追加したフォークを活用し、大規模クラスタの状態変化を追跡、全オブジェクトのスナップショットも実験中
- Control Plane Data, RUM(Real User Monitoring), Istio Access Log など多層のデータにより、解釈範囲と相関分析能力が大幅に強化された
運用上の考慮点と今後の方向性
- SysExはクエリ中にログやメトリクスへ露出する可能性があるが、メモリ制限と障害時の影響最小化を前提に設計されている
- Zero-impact scraping: 完全にデカップルされた構造(例: S3ベースのplain rewritable disk活用)により、クラスタへの影響そのものを根本的に取り除く方式を研究中である
- OTelはサービス初期や異常状態でのログ確保などのため依然として重要だが、今後zero-impact方式が安定すれば依存度はさらに下がる見込みである
ClickHouse JSON型の進化と活用
- JSON型が正式にGAとなり、フィールドごとの動的カラム生成や複数型のサポートにより、スキーマ爆発にも柔軟に対応できるようになった
- 大量カラムを持つJSONクエリでは最適化がまだ完全ではないため、形態別の並行保存や Map型の実用性 の再確認など、アプローチを高度化している
- HyperDXとの連携により、MapやJSONフィールドの自動抽出・分析が可能で、今後さらに広くJSONを活用する計画である
結論と文化的変化
- LogHouseは今や、性能分析からリアルタイムデバッグまで、ClickHouse Cloud運用の 中核的な観測プラットフォーム として定着した
- コスト削減が出発点だったが、SysEx のようなカスタムツール、OTelとの調和、HyperDX ベースの柔軟なUI拡大を通じて、技術的・文化的な転換 を経験している
- 大規模かつ高精度なWide Eventベースのデータモデルが、エンジニアリング、サポート、データ分析のあらゆる領域に 新たな価値と効率性 をもたらしている
- 今後も100PB、500兆行規模で得た経験をもとに、観測性の未来を引き続き先導していく計画である
1件のコメント
Hacker Newsのコメント