Premiers pas
Installez le paquet d’instrumentation OpenTelemetry d’HyperDX
Utilisez la commande suivante pour installer le paquet OpenTelemetry de ClickStack.- NPM
- Yarn
Initialisation du SDK
Pour initialiser le SDK, vous devez appeler la fonctioninit au début du fichier d’entrée de votre application.
- require
- import
Configurer la collecte des logs
Par défaut, les logsconsole.* sont collectés. Si vous utilisez un logger
comme winston ou pino, vous devrez ajouter un transport à votre logger pour
envoyer les logs à ClickStack. Si vous utilisez un autre type de logger,
n’hésitez pas à nous contacter ou à consulter l’une de nos
intégrations de plateforme, le cas échéant (par exemple Kubernetes).
- Winston
- Pino
- console.log
Si vous utilisez
winston comme logger, vous devrez ajouter le transport suivant à votre logger.Configurer la collecte des erreurs
Le SDK ClickStack peut capturer automatiquement les exceptions non gérées et les erreurs de votre application, avec la stack trace complète et le contexte du code. Pour l’activer, vous devez ajouter le code suivant à la fin du middleware de gestion des erreurs de votre application, ou capturer manuellement les exceptions à l’aide de la fonctionrecordException.
- Express
- Koa
- Manuel
Dépannage
Si vous rencontrez des difficultés avec le SDK, vous pouvez activer la journalisation détaillée en définissant la variable d’environnementOTEL_LOG_LEVEL sur debug.
Configuration avancée de l’instrumentation
Capturer les logs de la console
Par défaut, le SDK ClickStack capture les logs de la console. Vous pouvez désactiver cette fonctionnalité en définissant la variable d’environnementHDX_NODE_CONSOLE_CAPTURE sur 0.
copy
Ajouter des informations utilisateur ou des métadonnées
Pour marquer facilement tous les événements liés à un attribut ou à un identifiant donné (par ex. l’ID utilisateur ou l’e-mail), vous pouvez appeler la fonctionsetTraceAttributes, qui appliquera les
attributs déclarés à chaque log/span associé à la trace en cours après l’appel. Il est recommandé d’appeler cette fonction le plus tôt possible dans une
requête/trace donnée (par ex. le plus tôt possible dans une pile de middlewares Express).
C’est un moyen pratique de garantir que tous les logs/spans sont automatiquement marqués avec
les bons identifiants pour pouvoir les rechercher plus tard, au lieu de devoir
marquer et propager manuellement les identifiants vous-même.
userId, userEmail, userName et teamName renseigneront l’UI des sessions
avec les valeurs correspondantes, mais peuvent être omis. Toute valeur supplémentaire
peut être spécifiée et utilisée pour rechercher des événements.
HDX_NODE_BETA_MODE sur 1, ou en passant betaMode: true à la fonction init afin
d’activer les attributs de trace.
Google Cloud Run
Si votre application s’exécute sur Google Cloud Run, Cloud Trace injecte automatiquement des headers d’échantillonnage dans les requêtes entrantes, ce qui limite actuellement l’échantillonnage des traces à 0,1 requête par seconde pour chaque instance. Le paquet@hyperdx/node-opentelemetry définit toutefois par défaut le taux d’échantillonnage sur 1,0.
Pour modifier ce comportement ou configurer d’autres installations OpenTelemetry, vous
pouvez définir manuellement les variables d’environnement
OTEL_TRACES_SAMPLER=parentbased_always_on et OTEL_TRACES_SAMPLER_ARG=1 afin
d’obtenir le même résultat.
Pour en savoir plus et forcer le traçage de requêtes spécifiques, consultez la
documentation Google Cloud Run.
Bibliothèques auto-instrumentées
Les bibliothèques suivantes seront automatiquement instrumentées (avec traçage) par le SDK :dnsexpressgraphqlhapihttpioredisknexkoamongodbmongoosemysqlmysql2netpgpinorediswinston
Autre méthode d’installation
Exécuter l’application avec la CLI OpenTelemetry de ClickStack
Vous pouvez également auto-instrumenter votre application sans modifier le code en utilisant la CLIopentelemetry-instrument ou l’option
Node.js --require. L’installation de la CLI offre un plus large éventail de bibliothèques et de frameworks auto-instrumentés.
- Avec NPX
- Point d’entrée personnalisé (ex. Nodemon, ts-node, etc.)
- Importation du code
Managed ClickStackLa variable
HYPERDX_API_KEY peut être omise avec Managed ClickStack.OTEL_SERVICE_NAME est utilisée pour identifier votre service dans l’application HyperDX. Elle peut avoir le nom de votre choix.
Activer la capture des exceptions
Pour activer la capture des exceptions non gérées, vous devrez définir la variable d’environnementHDX_NODE_EXPERIMENTAL_EXCEPTION_CAPTURE sur 1.