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 minutesPré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 estauthorization=<ingestion token>, sans préfixeBearer. - Collector local : utilisez
http://localhost:4318. Si le collector n’est pas sécurisé, laissezauthorization=vide.
- ClickHouse Cloud : ouvrez le service, puis ClickStack → Configure your OpenTelemetry exporter → Env vars. Le protocole est
Clonez le dépôt
Clonez HackerNews Analyzer, installez les dépendances et copiez le modèle de fichier d’environnement :.env à l’étape suivante, puis instrumenterez l’application depuis ce répertoire.
Instrumenter l’application
1
Exécutez l’application
Depuis le répertoire 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.
À 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.
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 :
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.
- Instrumentation avec un agent
- Instrumentation manuelle
- Utiliser une branche pré-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 


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.
/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 :- Accédez à Search et filtrez sur les 5 dernières minutes. Les logs de
hn-analyzer-apiaffluent.

- 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.comavec une durée réseau réelle, ainsi que des enregistrementsconsole.logcorrélés dans la même trace.

- 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.

En savoir plus
- HackerNews Analyzer : le dépôt de démonstration instrumenté par ce guide.
- Session Replay : vue d’ensemble de la fonctionnalité, options du SDK et paramètres de confidentialité.
- Session Replay Demo : une démo autonome avec une instance locale de ClickStack.
- ClickStack Prise en main : déployez ClickStack et ingérez vos premières données.
- Tous les jeux de données d’exemple : d’autres jeux de données d’exemple et guides.