Skip to main content
TL;DRClonez HackerNews Analyzer, renseignez .env avec votre endpoint OTLP et votre jeton, puis collez le prompt de l’agent. Le backend ne nécessite aucun import OpenTelemetry ; l’agent connecte @hyperdx/node-opentelemetry au démarrage du processus.Temps nécessaire : environ 10 minutes
HackerNews Analyzer est une application Node.js qui interroge le dataset HackerNews hébergé dans la démo publique de ClickHouse. Chaque graphique, table et champ de recherche correspond à une véritable requête ClickHouse, de sorte que chaque interaction produit une trace dont le span principal est l’appel HTTPS du backend vers ClickHouse. Cette tâche est différente de la démo de session replay, qui instrumente une application uniquement côté navigateur avec un ClickStack Docker local. Ici, vous bénéficiez de l’auto-instrumentation du backend, des spans de requêtes ClickHouse et du session replay dans la même application.

Prérequis

  • Node 18+ et npm
  • Un endpoint OTLP/HTTP ClickStack et un jeton d’ingestion :
    • ClickHouse Cloud : ouvrez le service, puis ClickStack → Configure your OpenTelemetry exporter → Env vars. Le protocole est http/protobuf. Le header est authorization=<ingestion token>, sans préfixe Bearer.
    • Collector local : utilisez http://localhost:4318. Si le collector n’est pas sécurisé, laissez authorization= vide.

Clonez le dépôt

Clonez HackerNews Analyzer, installez les dépendances et copiez le modèle de fichier d’environnement :
Vous renseignerez le fichier .env à l’étape suivante, puis instrumenterez l’application depuis ce répertoire.

Instrumenter l’application

1

Exécutez l’application

Depuis le répertoire hn-news-analyzer cloné, démarrez l’application. La source de données ClickHouse utilise par défaut le cluster de démonstration public en lecture seule. Aucune configuration supplémentaire n’est donc nécessaire :
Ouvrez http://localhost:5001. Vous verrez un sélecteur d’année, des statistiques récapitulatives, un graphique d’activité, des tableaux des principaux utilisateurs et domaines, ainsi qu’un champ de recherche. Explorez l’interface : changez d’année, consultez les articles en détail.
L’application HackerNews Analyzer exécutée localement
À ce stade, l’application s’exécute, mais n’est pas instrumentée. ClickStack n’affiche aucune donnée : il attend la télémétrie.
2

Configurer l’environnement

Les SDKs utilisent les variables standard de l’exporter OpenTelemetry. Elles ne sont pas codées en dur dans le code source. Ouvrez .env et définissez :
OTEL_EXPORTER_OTLP_ENDPOINT est l’endpoint OTLP/HTTP (port 4318). OTEL_EXPORTER_OTLP_HEADERS est l’en-tête d’autorisation, au format authorization=<token>, sans préfixe Bearer.Si le collector n’applique pas d’authentification, laissez le token vide (OTEL_EXPORTER_OTLP_HEADERS=authorization=). La variable doit néanmoins être présente : le SDK ignore l’initialisation si elle n’est pas définie ou si elle est entièrement vide.Le SDK pour navigateur réutilise ces mêmes valeurs. vite.config.ts intègre l’endpoint et le token au bundle public lors du build ; utilisez donc un token d’ingestion temporaire, et non un token de production.
3

Instrumenter l’application

Choisissez une méthode. Toutes trois aboutissent à la même application instrumentée.
Une fois le dépôt cloné et le fichier .env renseigné, collez ce prompt dans un agent de code depuis ce répertoire afin d’instrumenter l’application.
4

Générez du trafic et consultez les données de télémétrie

Redémarrez l’application pour que la nouvelle commande de démarrage et le bundle du navigateur fraîchement compilé prennent effet :
Vérifiez que la bannière de démarrage affiche trois lignes « Health check passed » pour /v1/traces, /v1/metrics et /v1/logs. Rechargez l’onglet du navigateur pour que Vite serve le bundle mis à jour, puis changez d’année et cliquez sur des articles afin de générer du trafic.Ouvrez l’UI ClickStack :
  1. Accédez à Search et filtrez sur les 5 dernières minutes. Les logs de hn-analyzer-api affluent.
Recherche ClickStack affichant les logs de hn-analyzer-api des cinq dernières minutes
  1. Cliquez sur une requête et remontez la trace. Vous verrez le span du handler Express, un span HTTP enfant pointant vers sql-clickhouse.clickhouse.com avec une durée réseau réelle, ainsi que des enregistrements console.log corrélés dans la même trace.
Trace ClickStack avec un span de handler Express et un span HTTP enfant vers ClickHouse
  1. Ouvrez Session Replay pour lire une vidéo d’une session de navigateur, dont vous pouvez parcourir la chronologie, synchronisée avec celle de la trace.
Replay de session ClickStack synchronisé avec la chronologie de la trace
Les logs, métriques, traces et replays de session sont regroupés dans la même UI, utilisent le même langage de requête et sont automatiquement corrélés.

En savoir plus

Dernière modification le 26 septembre 2026