À propos du projet
OpenTelemetry JavaScript est l'implémentation JavaScript d'OpenTelemetry, un framework neutre vis-à-vis des fournisseurs pour collecter traces, métriques et logs depuis les applications. Il cible Node.js et les navigateurs web et est publié sous forme d'un ensemble de packages npm sous le scope @opentelemetry.
Le projet sépare les préoccupations en une couche API et des implémentations SDK. Le package API fournit des interfaces TypeScript, des énumérations et des implémentations no-op pour le modèle de base des traces et métriques, permettant aux auteurs de bibliothèques de dépendre uniquement de l'API publique sans intégrer un SDK spécifique. Le package core fournit des implémentations par défaut et no-op. Côté SDK, sdk-trace offre un contrôle sur l'instrumentation et la création de spans sans charger async_hooks ou l'instrumentation par défaut, tandis que sdk-metrics fournit des instruments et des meters pour rapporter des données de séries temporelles.
Pour démarrer, il faut généralement installer @opentelemetry/api, @opentelemetry/sdk-node et le méta-package auto-instrumentations-node, puis créer un fichier de configuration de tracing qui configure un NodeSDK avec une ressource, un exportateur tel que ConsoleSpanExporter, et des auto-instrumentations. L'application est ensuite démarrée avec le fichier de tracing préchargé. Un journaliseur de diagnostic peut être activé via l'API pour déboguer les cas où la télémétrie n'atteint pas un collecteur.
Le statut des fonctionnalités est documenté par signal : tracing et métriques sont stables dans l'API et le SDK, tandis que les logs sont encore en développement. Le README publie également une matrice de compatibilité associant les versions stables des packages avec les versions expérimentales, et note que les packages stables partagent une ligne de version tandis que les packages expérimentaux partagent une autre. Les runtimes pris en charge incluent les versions LTS actuelles de Node.js, avec l'instrumentation navigateur décrite comme expérimentale et largement non spécifiée ; le niveau de base des fonctionnalités linguistiques est ECMAScript 2022. Le support TypeScript suit une fenêtre de deux ans.
Les exportateurs sont indépendants des fournisseurs, et un registre liste les implémentations d'exportateurs disponibles, tandis que les utilisateurs peuvent également écrire les leurs. Le tracing automatique est disponible via des instrumentations, avec des instrumentations Node de base pour gRPC et HTTP, des instrumentations web de base pour XMLHttpRequest et fetch, et des instrumentations contributives supplémentaires hébergées dans un dépôt séparé. Le projet est sous licence Apache-2.0 et accueille les contributions via les tags up-for-grabs et good-first-issue, avec une réunion SIG hebdomadaire.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.