ClickStackの発表
本日、ClickHouse上に構築された新しいオープンソースのオブザーバビリティソリューションである ClickStack を発表できることを嬉しく思います。ClickStackは、ログ、メトリクス、トレース、セッションリプレイを一括で扱える、即利用可能な完全な体験を提供します。ClickHouseのパフォーマンスと効率性を基盤としながらも、すべての人が利用できるオープンでアクセスしやすい、完全なオブザーバビリティスタックとして設計されています。
ClickStackを始めるには、ドキュメント内の Getting Started ガイドをご覧ください。
これまで、NetflixやeBayなどの大規模なエンジニアリングチームは、オブザーバビリティ用途にClickHouseを選んできました。カラム指向設計、圧縮、高スループットのベクトル化クエリエンジンにより、コンテキストが豊富でユニーク数(カーディナリティ)の高い「wide event(ワイドイベント)」の保存に理想的だったためです。こうしたモダンなオブザーバビリティのアプローチ("Observability 2.0"と呼ばれることもあります)は、従来の「三本柱モデル」から脱却し、分断されたテレメトリソースを繋ぎ合わせる複雑さを排除します。
しかし今までは、このモデルの恩恵を最大限に受けられるのは、ClickHouse上に独自のオブザーバビリティ体験を構築できるリソースを持ったチームに限られていました。他の多くのチームは、一般的な可視化ツールや、ClickHouse上に構築されたサードパーティの商用プラットフォームに頼っていました。こうしたツールはClickHouse用の基本的なインターフェースを提供していましたが、日常的な観測作業で長いSQLクエリが必要になったり、ClickHouseの性能やオープンなアーキテクチャを十分に活用できないこともありました。
それが、今日から変わります。HyperDXによって支えられたClickStackのリリースにより、すべてのユーザーに公平な選択肢が提供されます。この完全オープンソースのスタックには、すぐに使えるOpenTelemetryコレクター、wide eventに最適化されたUI、自然言語クエリ、セッションリプレイ、アラートなどが含まれています。
そしてそれらすべてが、オブザーバビリティ分野で信頼されている、あの高性能・高圧縮のClickHouseエンジン上で動作します。
これまでは、多くのチームが、高価なクローズドソースSaaS製品を選ぶか、オープンソースを組み合わせて自力で構築するか、という選択を迫られてきました。検索エンジンは柔軟で高速なクエリを提供していましたが、スケール運用や高速な集計には課題がありました。一方、メトリクスストアは集計性能に優れるものの、事前集計の必要があり、柔軟性や検索性能に欠けていました。どちらのアプローチも高カーディナリティのデータには向いておらず、それらを統合しようとすると、複雑さが増すばかりで、本質的な問題解決にはなりませんでした。
ClickStackを使えば、もはや選ぶ必要はありません。ユニーク数の多いwide eventデータに対して、高速な検索と集計をスケール可能な形で実現できます。オープンソースで、誰にでも。
オブザーバビリティにおけるClickHouseの進化
それは「単なるデータの問題」
ClickHouseの初期ユーザーたちは、オブザーバビリティが本質的には「データの問題」であることを早くから認識していました。選ぶデータベースが、オブザーバビリティプラットフォームのコスト、スケール、機能性を決定づけるため、正しいデータベースを選ぶことは、自社構築でも観測系スタートアップでも、最も重要なアーキテクチャの決断の1つです。
この理由から、ClickHouseは長年にわたり、オブザーバビリティスタックの中核であり続けてきました。たとえば Netflix や eBay のような大企業から、SentryやDash0といったオブザーバビリティ系スタートアップに至るまで、ClickHouseは大規模なログ・メトリクス・トレースを支えています。カラム指向のストレージ、積極的な圧縮、ベクトル化実行エンジンにより、コストを大幅に削減し、サブセカンドでのクエリ応答を実現します。これにより、エンジニアはツールの遅さを待たずにリアルタイムでシステムをデバッグできます。
必要なのは、「wide event」とカラムストア
以前のブログ投稿「The State of SQL-Based Observability」およびその続編で、このトレンドについて深く掘り下げました。そこで当時は明確な名前を付けませんでしたが、これは今日の「Observability 2.0」と完全に一致する考え方です。つまり、ログ・メトリクス・トレースの「柱」ではなく、「wide event(幅広いイベント)」を中心に構築された統一モデルです。
これまで、多くのチームはログ・メトリクス・トレースを別々のストアに保存していたため、断片化、手動での相関付け、不要な複雑さが生まれていました。wide eventは、すべてのオブザーバビリティ信号を1つのクエリ可能な構造に統合することで、こうしたサイロを解消します。
wide eventは、ユーザー、サービス、HTTPパス、ステータスコード、キャッシュ結果など、アプリケーションの文脈すべてを1つのレコードに記録します。この統一された構造により、ユニーク数の多いデータに対しても高速な検索と集計が可能になります ― もちろん、それを効率的に圧縮・保存できるストレージエンジンがあればの話です!
NoSQLソリューション、特に検索エンジンはこの構造を取り入れたものの、広範な範囲を集計する性能には欠けていました。検索や「銀河の中の針探し」には適していても、大規模集計には不向きだったのです。
この課題を解決するClickHouseの秘密は今も変わりません。すなわち、カラムストレージ、深い圧縮を実現する豊富なコーデックライブラリ、そして分析ワークロードに最適化された大規模並列エンジンです。
リソース効率に優れ、スケーラブル
ClickHouse Cloudではさらに進化を遂げ、ストレージとコンピュートの分離を実現するためにオブジェクトストレージを採用しました。これは、オブザーバビリティをペタバイト級、さらにはそれ以上にスケールさせ、弾力的に拡張するために不可欠です。さらに要求の厳しいユースケースをサポートするために、同じデータソースを使用しながら、取り込みとクエリなどのワークロードごとに計算リソースを分離できる「コンピュート・コンピュート分離」も導入しました。
オブザーバビリティのニーズがより複雑になるにつれ、半構造化イベントに対するネイティブなJSON対応が不可欠であると認識しました。ClickHouseはこのニーズに応える形で進化し、カラム指向処理のメリットを維持しながら、半構造化データへの一級対応を追加しました。データの到着に応じてカラムが自動生成され、型の昇格やカラムの拡張もClickHouseが自動で管理します。これこそが、オブザーバビリティに必要な「書き込み時スキーマ」であり、現代的な分析エンジンに求められるパフォーマンス、圧縮率、柔軟性を兼ね備えています。
OpenTelemetryの台頭
この進化は、ログ・メトリクス・トレース全体のテレメトリ収集における事実上の標準である OpenTelemetry(OTel)の台頭と時を同じくしました。私たちは ClickHouse用OpenTelemetry Exporter の公式サポートと開発への貢献を開始しました。
OpenTelemetryは、私たちのエコシステムにとって大きなブレークスルーとなりました。ベンダーニュートラルで標準化された方法でオブザーバビリティデータを収集・エクスポートでき、CollectorはClickHouseにデータを直接送信するよう設定できます。私たちは、エクスポーターが堅牢でスケーラブルであり、ClickHouseの設計原則に沿うよう、コミュニティと密接に連携してきました。
最初に直面した最大の課題の1つがスキーマ設計でした。オブザーバビリティにおいては万能なスキーマは存在せず、各チームごとにクエリパターンや保持要件、サービス構成が異なります。そのため、このエクスポーターにはログ・メトリクス・トレースに対応したデフォルトスキーマが付属していますが、チームごとにワークロードに合わせて自由にカスタマイズすることを推奨しています。
欠けていたピース
しかし、優れたデータベースとスキーマ、収集・取り込みの手段が整っていても、それだけでは十分ではないことがすぐに分かりました。エンジニアには、すぐに使える取り込み、可視化、アラート、そして自分たちのワークフローに適したUIが必要です。これまでは、OpenTelemetryによる収集とGrafanaによるダッシュボードに頼るのが一般的でした。
これでも十分には機能していました。実際、社内のオブザーバビリティチームはDatadogをClickHouseベースのスタックに置き換え、数億円規模のコスト削減と200倍以上のコスト効率を実現しました。現在、私たちの社内ログシステムは43ペタバイトを超えるOpenTelemetryデータを保存しており、スキーマや主キーはそのスケールに最適化されています。このアプローチのパフォーマンスとコスト効率は証明されましたが、体験はもっとシンプルにできると感じていました。
私たちが求めていたのは、より明確な設計思想と、より簡単に始められる仕組み、そして最も重要なことに、ClickHouseのために作られたUIです。効率的なクエリを構築し、wide eventからパターンを浮かび上がらせ、ClickHouseのパワーを隠さず、かつ優れたユーザー体験を提供できるUIが必要だったのです。
そして、SQLベースのオブザーバビリティがwide eventモデルを後押ししてきたことは事実ですが、同時に私たちはユーザーが「今どこにいるか」にも対応する必要があると考えていました。ELKスタックのような検索エンジンが成功した理由は、直感的なログ検索インターフェースを提供していたからです。その体験をClickHouse上で実現したいと考えたのです。
HyperDXの登場
そんなときに出会ったのが、ClickHouse向けに設計されたオープンソースのオブザーバビリティレイヤー HyperDX です。2024年後半、HyperDXがv2のUIをオープンソースとして公開した際、私たちはすぐに社内テストを行い、これこそが欠けていたピースだと確信しました。セットアップはシームレスで、開発者体験も素晴らしく、ユーザーにもこの体験を届けたいと思いました。
HyperDXは、私たちが求めていたすべてを備えていました:
- 標準に基づくデータ収集:HyperDXは初期からOpenTelemetryを採用しており、ClickHouseのOpenTelemetryエクスポーターへの私たちの投資と完全に一致しています。
- オープンソース第一:堅牢なオブザーバビリティツールは誰にでも利用可能であるべきという理念を共有しており、HyperDXのクラウドネイティブな設計により、運用はシンプルかつコスト効率的です。
標準への準拠に加えて、HyperDXはClickHouseのことを理解した設計になっています。チームはクエリ最適化に真剣に取り組んでおり、ユーザーが意識せずとも高速・信頼性の高いパフォーマンスを得られるようになっています。特にインシデント調査時には、ミリ秒単位の違いが重要です。
ClickStackは、OpenTelemetryコレクターの組み込み取り込み、HyperDX UI向けに最適化されたスキーマとともに、取り込み・保存・可視化を統合した体験として提供されます。デフォルトのスキーマはそのまま動作するよう設計されており、特に意識せずともすぐに使い始めることができます(もちろん、必要であればカスタマイズも可能です)。
ClickStackのシンプルな構造により、各レイヤーは独立してスケールできます。取り込みスループットを上げたいなら、OpenTelemetryコレクターゲートウェイを追加するだけ。クエリやストレージ容量を増やしたいなら、ClickHouse自体をスケールすればOKです。このモジュール構成により、データやチームの成長に合わせて、スタック全体を再構築することなく拡張できます。
HyperDXを取得して以来、私たちはプロダクトの簡素化と柔軟性の拡大に注力してきました。デフォルトスキーマを使って即時利用もできますし、自分たちのユースケースに合わせた独自スキーマを持ち込むことも可能です。ClickHouse同様、「1つのサイズですべてに対応」はしないという信念のもと、スケーラビリティの鍵は柔軟性にあると考えています。
同時に、私たちはSQLの原点も忘れていません。SQLは今でもデータの共通言語であり、多くのClickHouse上級ユーザーにとっては、最も表現力があり、効率的な探索手段です。そのため、HyperDX UIにはネイティブSQLクエリのサポートが含まれており、上級ユーザーは妥協なしにエンジンへ直接アクセスできます。
さらに、デバッグや探索を容易にする新機能も導入しました。たとえば「イベントデルタ」は、異常やパフォーマンスの退行を素早く特定するのに役立ちます。特定の属性におけるユニーク値をサンプリングすることで、UIはパフォーマンスの差異や変動を可視化し、何がどう変化したのかを簡単に把握できるようにします。
そして最も重要なのは、このスタックがよりシンプルになったことです。OpenTelemetryが事実上の標準となった今、すべてのデータはOTelコレクター経由で取り込まれるようになりました。デフォルト構成では、すぐに使えることを前提とした設計思想の強いスキーマが用意されていますが、ユーザーが自由に変更・拡張することも可能です。このスタックは OpenTelemetryネイティブ でありながら、OpenTelemetry専用 ではありません。オープンスキーマのおかげで、HyperDXは既存のデータパイプラインやスキーマとも連携可能です。
結論と今後の展望
ClickStackは、ClickHouseがオブザーバビリティ分野における取り組みをさらに進化させた結果生まれたものであり、直感的かつ設計思想の明確なフルスタック体験を、オープンソースとオープンスタンダードの力で提供します。ClickHouseの高性能カラム型エンジン、OpenTelemetryの標準化されたインスツルメンテーション、HyperDXの特化UIを統合することで、モダンなオブザーバビリティのアプローチをついに誰でも使えるものにしました。
オープンソースへの継続的な取り組みにより、ClickStackは単一サービスの導入からペタバイト級のシステムに至るまで、誰でも利用可能です。私たちは今後も、高性能オブザーバビリティのためのデータベースコアと、Grafanaのような既存ツールとの統合の両方に投資を続けていきます。
ClickStackは単なるツールではありません。あらゆるテレメトリ信号を統合する、高性能なカラム型データベースを基盤とした統一プラットフォームであり、自然言語クエリ、セッションリプレイ、アラート機能までもすぐに使える形で提供されます。
ClickStackを始めるには、ドキュメント内の Getting Started ガイドをご覧ください。