ClickStack – ClickHouseとHyperDXで構築されたオープンソースのDatadog代替
(clickhouse.com)- ClickStack は ClickHouse と HyperDX を基盤とするオープンソースの オブザーバビリティ(Observability) プラットフォームで、ログ、メトリクス、トレース、セッションリプレイを1か所で統合的に扱える
- ログおよびトレースの検索と可視化 を ClickHouse クラスター上で簡単かつ高速に実現し、どのようなスキーマでも追加作業なしで適用可能
- 直感的な検索、イベントベースのアラート、ダッシュボード機能を提供し、エンジニアが迅速に問題を把握して対応できる
- OpenTelemetry 標準をデフォルトでサポートし、多様な言語およびプラットフォーム 向け SDK 統合を提供
- 既存の商用ソリューションに比べて 低コストで設定が簡単 であり、複数の観測ツールを行き来することなく、1つのプラットフォームで一連の作業を処理できる
主な機能
- ログ、メトリクス、セッションリプレイ、トレースの 相関分析 と検索を1か所で実行可能
- ClickHouse の既存スキーマをそのまま活用できる スキーマに依存しない構造
- 高速な検索性能 と可視化の最適化により、大規模データにも適している
- 全文検索と属性検索 の両方をサポートし、SQL の使用は任意
- イベント変化の推移分析や 簡単なアラート設定、ダッシュボード の作成が可能
- Native JSON 文字列クエリ をサポート
- リアルタイムのログ、トレース tail 機能により最新イベントを確認可能
- OpenTelemetry 統合および APM(性能モニタリング) 環境をサポート
デプロイと開始方法
- ClickStack パッケージは ClickHouse、HyperDX、OpenTelemetry Collector、MongoDB を含めて統合デプロイ可能
- HyperDX UI はブラウザからアクセス可能
- ClickHouse Cloud 環境とも連携でき、多様な環境へ容易にデプロイしやすい
アプリケーション計測と統合
HyperDX でログ、メトリクス、トレース、セッションリプレイのデータを収集するには、アプリケーションからテレメトリデータを HyperDX に送信する必要がある
- SDK および統合オプション を提供: ブラウザ、Node.js、Python など多様な言語/環境向け SDK があり、簡単に連携可能
- OpenTelemetry 標準をサポート: Kubernetes、JavaScript、Python、Java、Go、Ruby、PHP、.NET、Elixir、Rust など多様な言語およびランタイムに対応
- OpenTelemetry Collector はデフォルトで
http://localhost:4318で接続可能
貢献方法
- PR 提出、Issue 登録、ドキュメント改善、オープン Issue への投票、新しいユースケースの提供など、さまざまな形でのコミュニティ貢献を歓迎
開発の動機と哲学
HyperDX 開発チームの目標は、すべてのエンジニアが本番環境のテレメトリを活用して素早く問題を解決できるようにすること である
従来の主な問題点:
- 運用オブザーバビリティツールは 高価で、データ拡張に応じてコストが増加する 問題が大きい
- 設定や利用の難易度 が高く、SRE や専門家が必要
- ログ、セッションリプレイ、APM など 各機能が分離されて おり、情報の連携が煩雑
こうした限界を克服するため、ClickStack と HyperDX はオープンソースとして提供されている
- HyperDX は ClickHouse に買収された
1件のコメント
Hacker Newsのコメント
既存のGrafanaではなく、なぜカスタムフロントエンドを作ったのか気になる
DataDogの価格が高いため、HyperDXが本当に魅力的に感じられるという状況の共有。自分が運営するLogLayer(https://loglayer.dev)はTypeScript向けの構造化ロガーで、複数種類のロガーやクラウドサービス(DataDogなど)へログを送信できる機能をサポートしている。HyperDX向けの統合機能を開発しており、まもなくリリース予定とのこと。HyperDXとLogLayerの連携方法に関するドキュメントへのリンクを、自分のサイトの「integrations」セクションに追加したいという希望を伝え、関連PRへのリンク(https://github.com/hyperdxio/hyperdx-js/pull/184)も共有
HyperDXを実際に本番環境で使用しており、Clickhouseとの統合やコスト効率に非常に満足している。HyperDXからClickStackへの移行準備が必要なのか気になる
Otelのトレースとロギングは良いが、Otel metrics機能は複雑すぎる設計だと感じる点を共有。ClickStackでstatsdデータ(特にDatadogのタグ拡張を含む)をインジェストできるか、トレース/ログ/メトリクスの統合サービスタグ付けと関連付け機能があるか、UIに関連データへのリンク機能があるか、Elixir SDKがなぜhyperdxライブラリを使っているのか、Notebooks機能がロードマップにあるかを質問
SignozのようにClickHouseベースで、オープンソース版とクラウド版を提供している点がHyperDXと似て見えるという意見と、違いは何かという疑問。UIも似ているという観察の共有
Kibanaを置き換える新しいロギングソリューションを探しており、ClickHouseの使用経験が良かったためHyperDXのUIに関心がある。現在のログパイプラインはKubernetes上のVectorで、VectorがOTel sink(ベータ)をサポートしているので、データがJSONである状況で最適なログ送信方法を考えているという共有。TB単位の大規模・高性能トラフィック環境であることも強調
SignozとHyperDX(あるいはClickHouse)との違いが気になる。どちらもYC出身で、ClickHouseを活用しているという観察
サインアップ後、UIで"Was this search result helpful?"ウィジェットが検索前から表示されていてUXが混乱したという体験の共有。Hideボタンを押すとフィードバックボタンになり、再びフィードバックを押すと元に戻るというバグも発見。全体的にフォントがモノスペースで文字も小さく、太い白や明るい緑が暗い背景と調和していないと評価。システムフォントに変えても大きく改善せず、より伝統的なUIスタイルを勧めたいとのこと。読みにくいデザインのため利用をためらってしまうというフィードバック
Clickhouseがこのスタックで唯一のstateful要素なのか気になる。RustベースのOTEL collectorであるRotel(https://github.com/streamfold/rotel)との互換性にも関心がある。Datadogには自社開発の、より高性能なOTEL collector代替があるとも言及