メインコンテンツへスキップ
メインコンテンツへスキップ

HyperDX のみ

このオプションは、すでに稼働中の ClickHouse インスタンスにオブザーバビリティデータまたはイベントデータが格納されているユーザー向けに設計されています。

HyperDX はスタックの他のコンポーネントとは独立して使用でき、OpenTelemetry (OTel) に限定されないあらゆるデータスキーマと互換性があります。これにより、既に ClickHouse 上に構築されているカスタムのオブザーバビリティパイプラインにも適用できます。

すべての機能を有効にするには、ダッシュボード、保存済み検索、ユーザー設定、アラートなどのアプリケーション状態を保存するための MongoDB インスタンスを用意する必要があります。

このモードでは、データのインジェストは完全にユーザー側の管理となります。独自にホストした OpenTelemetry collector、クライアントライブラリからの直接インジェスト、ClickHouse ネイティブのテーブルエンジン (Kafka や S3 など) 、ETL パイプライン、あるいは ClickPipes のようなマネージドインジェストサービスを使用して、データを ClickHouse に取り込むことができます。このアプローチは最大限の柔軟性を提供し、すでに ClickHouse を運用していて、その上に HyperDX をレイヤーとして重ねて可視化、検索、アラートを実現したいチームに適しています。

適用対象

  • 既存の ClickHouse ユーザー
  • カスタムイベントパイプライン

デプロイ手順


Docker を使用してデプロイする

必要に応じて YOUR_MONGODB_URI を書き換え、次のコマンドを実行します。

docker run -e MONGO_URI=mongodb://YOUR_MONGODB_URI -p 8080:8080 docker.hyperdx.io/hyperdx/hyperdx

http://localhost:8080 にアクセスして HyperDX UI を開きます。

要件を満たすユーザー名とパスワードを指定してユーザーを作成します。

Create をクリックすると、接続情報の入力を求められます。

HyperDX UI

接続情報を入力する

ClickHouse Cloud などの外部 ClickHouse クラスターに接続します。

HyperDX Login

ソースの作成を求められた場合は、デフォルト値はすべてそのままにし、Table フィールドに otel_logs と入力します。その他の設定は自動検出されるため、Save New Source をクリックできます。

ソースの作成

ソースを作成するには、ClickHouse にテーブルが存在している必要があります。データがない場合は、テーブルを作成するために ClickStack の OpenTelemetry collector をデプロイすることを推奨します。

Docker Compose を使用する

Docker Compose 構成 を変更することで、本ガイドと同等の効果を得つつ、マニフェストから OTel collector と ClickHouse インスタンスを削除できます。

ClickStack OpenTelemetry collector

スタック内の他のコンポーネントとは独立して独自の OpenTelemetry collector を運用している場合でも、ClickStack 提供の collector ディストリビューションを使用することを推奨します。これにより、デフォルトのスキーマが使用され、インジェストに関するベストプラクティスが適用されます。

スタンドアロン collector のデプロイと設定の詳細については、「OpenTelemetry によるインジェスト」 を参照してください。

schema の選択: Map vs JSON

ClickStack では、デフォルトで属性を Map(LowCardinality(String), String) カラムに格納します。これはオブザーバビリティのワークロードに推奨される schema です。バケット化された map のシリアライゼーション と、map のキーおよび値に対するテキスト索引を組み合わせることで、動的な JSON subcolumns で発生するキーごとの取り込みオーバーヘッドなしに、必要な項目を選択的に検索できます。

JSON 型の schema は、属性キーの集合が小さく安定しているワークロードでの評価用として、ベータで利用できます。ただし、デフォルトとしては推奨されません。完全な比較と、JSON サポートを有効にするために必要な環境変数については、Map vs JSON type を参照してください。