Skip to main content
要約HackerNews Analyzerをクローンし、.env にOTLPエンドポイントとトークンを設定してから、agentのプロンプトを貼り付けます。バックエンドにOpenTelemetryのインポートは必要ありません。agentがプロセスの起動時に @hyperdx/node-opentelemetry を組み込みます。所要時間:約10分
HackerNews Analyzerは、公開されているClickHouseデモでホストされるHackerNewsデータセットをクエリするNode.jsアプリです。すべてのチャート、テーブル、検索ボックスは実際のClickHouseクエリであるため、操作のたびにトレースが生成されます。そのメインspanは、バックエンドからClickHouseへのHTTPS呼び出しです。 これは、ローカルのDocker ClickStackに対してブラウザ専用アプリをインストルメントするセッションリプレイ demoとは異なるものです。ここでは、同じアプリでバックエンドのauto-instrumentation、ClickHouseクエリspan、セッションリプレイを利用できます。

前提条件

  • Node 18 以降と npm
  • ClickStack の OTLP/HTTP endpoint とインジェストトークン:
    • ClickHouse Cloud: service を開き、ClickStack → OpenTelemetry exporter を設定 → 環境変数の順に選択します。プロトコルは http/protobuf です。headers には authorization=<ingestion token> を指定し、Bearer プレフィックスは付けません。
    • ローカル collector: http://localhost:4318 を使用します。collector が保護されていない場合は、authorization= を空のままにします。

リポジトリをクローンする

HackerNews Analyzerをクローンし、依存関係をインストールして、環境変数テンプレートをコピーします。
次の手順で .env を設定した後、このディレクトリからインストルメントします。

アプリケーションをインストルメントする

1

アプリケーションを実行する

クローンした hn-news-analyzer ディレクトリで、アプリを起動します。ClickHouse データソースはデフォルトでパブリックな読み取り専用デモクラスターを使用するため、追加の設定なしで実行できます。
http://localhost:5001 を開きます。年セレクタ、サマリー統計、アクティビティチャート、上位ユーザーとドメインのテーブル、検索ボックスが表示されます。年を切り替えたり、ストーリーの詳細を確認したりしてみましょう。
ローカルで実行中の HackerNews Analyzer アプリケーション
この時点ではアプリケーションは実行されていますが、インストルメントされていません。ClickStack にはまだデータが表示されません。テレメトリーの受信を待機しています。
2

環境を構成する

SDK は標準の OpenTelemetry エクスポーター変数を読み取ります。これらはソースコードにハードコードされていません。.env を開き、次のように設定します。
OTEL_EXPORTER_OTLP_ENDPOINT は OTLP/HTTP エンドポイント (ポート 4318) です。OTEL_EXPORTER_OTLP_HEADERS は認証 header で、Bearer プレフィックスなしの authorization=<token> 形式です。collector で認証を強制していない場合は、token を空のままにします (OTEL_EXPORTER_OTLP_HEADERS=authorization=) 。変数自体は設定しておく必要があります。未設定または完全に空の場合、SDK は初期化をスキップします。Browser SDK ではこれらと同じ値を再利用します。vite.config.ts はビルド時にエンドポイントと token を Public bundle に埋め込むため、production 用ではなく、使い捨てのインジェスト token を使用してください。
3

アプリケーションをインストルメントする

いずれかの方法を選んでください。どの方法でも、最終的には同じインストルメント済みアプリケーションになります。
リポジトリをクローンし、.envを設定したら、アプリケーションをインストルメントするため、そのディレクトリでこのプロンプトをコーディングエージェントに貼り付けてください。
4

トラフィックを生成してテレメトリーを表示する

新しい起動コマンドとビルドし直したブラウザーバンドルを反映するには、アプリケーションを再起動します。
起動バナーに、/v1/traces、/v1/metrics、/v1/logs について「Health check passed」が3行表示されることを確認します。ブラウザのタブを再読み込みしてViteが更新済みのバンドルを配信するようにし、年を切り替えてストーリーをクリックし、トラフィックを生成します。ClickStack UIを開きます。
  1. Search に移動し、過去5分間に絞り込みます。hn-analyzer-api のログがストリーミング表示されます。
過去5分間のhn-analyzer-apiログを表示するClickStack検索画面
  1. リクエストをクリックして、トレースを上流にたどります。Expressハンドラーのスパン、実際のネットワーク所要時間を示す sql-clickhouse.clickhouse.com 向けの子HTTPスパン、および同じトレース上で相関付けられた console.log レコードが表示されます。
ExpressハンドラーのスパンとClickHouseへの子HTTPスパンを含むClickStackトレース
  1. Session Replay を開くと、トレースタイムラインと同期したブラウザセッションの動画をシークしながら再生できます。
トレースタイムラインと同期したClickStackセッションリプレイ
ログ、メトリクス、トレース、セッションリプレイはすべて同じUIに集約され、同じクエリ言語を使用し、自動的に相関付けられます。

詳しくはこちら

最終更新日 2026年9月26日