Qu'est-ce qu'OpenTelemetry ?
OpenTelemetry est un projet open source et une norme pour l'instrumentation des services, ou une façon de mesurer les performances. Ce projet fournit une seule interface de programmation des applications (API), des bibliothèques, des intégrations, et un kit de développement de logiciel (SDK) pour les langages de programmation, dont Java, Go et Python. Il n'est pas nécessaire pour les équipes DevOps qui utilisent l'API standardisée de se préoccuper des changements de code lorsqu'ils passent d'un SDK à l'autre. Cela leur permet ainsi de gagner du temps, de limiter leurs efforts et d'optimiser les activités d'amélioration des performances et de résolution des problèmes.
Parrainé par la Cloud Native Computing Foundation (CNCF), OpenTelemetry a remplacé OpenTracing et OpenCensus. L'objectif est de standardiser la façon dont les données télémétriques sont collectées et envoyées à une plateforme backend. Il définit un collecteur centralisé que vous pouvez utiliser pour collecter les données télémétriques de vos applications et services. Il comprend également des exportateurs pour envoyer ces données à la plateforme d’observabilité de votre choix.
OpenTelemetry couvre trois aspects du monitoring de logiciels : l'implémentation de l'instrumentation, la capture des données et l'exportation des informations pour les analyser. En outre, si les équipes de développement souhaitent ne pas être tenues d'utiliser un prestataire particulier, elles n'ont pas besoin de créer manuellement des solutions de monitoring, car OpenTelemetry fonctionne indépendamment du fournisseur. Vous n'êtes donc pas obligé d'utiliser les bibliothèques d'instrumentation du fournisseur de la solution pour répondre aux spécifications du client.
Que sont les données de télémétrie ?
Les données de télémétrie sont les données collectées auprès d'appareils distants ou inaccessibles et transmises à un emplacement central pour le monitoring, l'analyse et le reporting. Ces données sont généralement collectées sur différentes sources, telles que les détecteurs, les applications logicielles et d'autres appareils de monitoring et sont utilisées pour surveiller les performances, le comportement et les modèles d'utilisation des systèmes et applications.
Les données de télémétrie sont cruciales pour plusieurs raisons :
- Monitoring des performances : les données de télémétrie fournissent des informations en temps réel sur l'utilisation des ressources, les temps de réponse et d'autres métriques de performance, ce qui permet d'assurer une maintenance et une optimisation proactives.
- Détection et résolution des problèmes : l'analyse des données de télémétrie aide les équipes à détecter les problèmes, les erreurs et les anomalies dans les systèmes et les applications.
- Planning de la capacité : en comprenant les modèles et tendances de l'utilisation actuelles, les administrateurs IT peuvent prendre des décisions éclairées sur l'allocation des ressources et les mises à niveau de l'infrastructure.
- Monitoring de la sécurité : les données de télémétrie sont utilisées pour détecter et répondre aux menaces à la sécurité, aux violations et aux tentatives d'accès non autorisées.
- Amélioration de l'expérience utilisateur : les données de télémétrie fournissent des informations détaillées sur le comportement et les préférences de l'utilisateur. Ces informations sont précieuses pour les développeurs et équipes produits qui veulent améliorer l'expérience utilisateur et optimiser leurs produits en fonction des données sur les utilisateurs réels.
Conformité et reporting : les organisations doivent collecter et stocker des données spécifiques afin d'être en conformité avec la réglementation et les normes du secteur. Les systèmes de télémétrie peuvent automatiser le processus de collecte de données et le reporting, ce qui garantit la conformité avec les lois et réglementations pertinentes.
Cas d'utilisation les plus appréciables avec OpenTelemetry
Pour les équipes OpenTelemetry est particulièrement appréciable dans trois cas d'utilisation :
- Les données se trouvent sur plusieurs plateformes
- L'indépendance vis‑à‑vis du prestataire/fournisseur est essentielle
- Le temps précieux de l'équipe doit être optimisé
Dans cet article de blog vous obtiendrez un aperçu d'OpenTelemetry et vous découvrirez pourquoi cette norme open source représente l'avenir de l'instrumentation. Regardez cette vidéo pour commencer :
Lancez-vous !
- Consultez le guide de démarrage rapide d'OpenTelemetry
- Consultez nos exemples d'utilisation d'OpenTelemetry
Les avantages d'OpenTelemetry
- Observabilité unifiée et uniformisée : OpenTelemetry assure une approche harmonisée de l'observabilité en offrant des API et des bibliothèques d'instrumentation structurées pour différents langages de programmation.
- Tracing distribué : OpenTelemetry permet le tracing distribué. Pour les développeurs, cela se traduit par la possibilité d'effectuer des demandes de suivi au fur et à mesure qu'ils passent par différents services et composants d'une application distribuée.
- Collecte de métriques : OpenTelemetry prend en charge la collecte de diverses métriques, telles que les taux de requêtes,les taux d’erreur et les métriques d'utilisation des ressources.
- Propagation du contexte : OpenTelemetry prend en charge la propagation du contexte, ce qui garantit que les informations contextuelles, telles que les identifiants de traces et de span, sont transmises entre les différents services et composants.
- Écosystème de plug-ins : OpenTelemetry possède un riche écosystème de plug-ins et d'intégrations qui permet aux utilisateurs d'exporter les données télémétriques vers différents backends et plateformes d'observabilité.
- Aucun fournisseur associé : OpenTelemetry étant un projet open source, aucun fournisseur, prestataire ou stack technologique n'est rattaché à son utilisation.
- Innovation stimulée par la communauté : cet environnement collaboratif encourage l'innovation et entraîne l'amélioration continue du framework et de ses capacités.
- Standardisation : en adoptant OpenTelemetry, les organisations peuvent adhérer à un ensemble de pratiques et de normes largement acceptées pour la collecte des données télémétriques, ce qui assure la cohérence et la compatibilité sur toutes les applications et dans tous les services.
Pourquoi OpenTelemetry représente-t-il l'avenir de l'instrumentation
Comme cela est décrit dans la vidéo ci-dessus, il y a quatre raisons pour lesquelles OpenTelemetry fait évoluer l'instrumentation :
- Vous avez accès à un ensemble d'instrumentations vastes et profondes, grâce au développement et à la prise en charge d'une grande communauté open source. Plus de 300 entreprises ont contribué au projet OpenTelemetry au cours de l'année passée avec un total de plus de 100 000 contributions. Et depuis un an, la communauté OpenTelemetry a recensé plus de 2 000 contributeurs. En tant que norme open source, OpenTelemetry encourage la collaboration à grande échelle et une portée de grande ampleur, ainsi qu'une plus grande flexibilité et l'ubiquité au fur et à mesure que les ingénieurs du monde entier contribuent à l'instrumentation.
- La norme d'instrumentation permet à différents outils et services de fonctionner ensemble, ce qui vous apporte la visibilité sur tout votre système. OpenTelemetry est interexploitable (ou interopérable), ce qui signifie que différents systèmes peuvent utiliser cette forme standard d'instrumentation sur tous les services pour échanger les informations. Sans l'instrumentation standard sur tous les services de votre application, vous avez des angles morts ou des silos de données qui affectent le diagnostic et le dépannage et réduisent votre capacité à rapidement détecter et résoudre les problèmes. OpenTelemetry comble les lacunes en matière de visibilité.
- Vous avez la flexibilité de modifier les outils d'observabilité du backend. La plupart des solutions de monitoring exigent que vous installiez des agents d'instrumentation spécifiques pour collecter les données télémétriques. Si vous passez d'un outil à l'autre, vous devez passer plus de temps et utiliser plus de ressources en installant différents agents exclusifs ou en réinstrumentant votre code. Avec OpenTelemetry, votre parcours n'a aucun rapport avec les divers outils exclusifs. Vous pouvez modifier l'outil d'observabilité du backend sans devoir changer votre instrumentation. Vous disposez de la pleine visibilité sur le code source OpenTelemetry et des informations sur la façon dont la communauté développe les fonctionnalités et répare les bogues.
- Vous pouvez facilement monitorer les technologies émergentes. Lorsque de nouvelles technologies sont développées, l'instrumentation OpenTelemetry devient partie intégrante des bibliothèques et des frameworks que vos applications utilisent déjà. Vous n'avez ainsi pas besoin d'attendre que chaque outil de monitoring prenne en charge les toutes dernières technologies.
La nécessité de rendre des systèmes orchestrés, comme Kubernetes, plus compréhensibles et le monitoring des performances des applications (APM) plus transparent sont deux des fils conducteurs du développement qui ont donné naissance à la discipline de l'observabilité. L'objectif de l'observabilité est d'offrir un contexte riche et des informations incroyablement granulaires sur le comportement des systèmes.
Pourquoi avez-vous besoin d'OpenTelemetry pour l'observabilité ?
Les deux éléments principaux qui ont donné naissance à la discipline de l'observabilité sont le besoin de rendre les systèmes orchestrés comme Kubernetes plus compréhensibles et celui de rendre le monitoring des performances des applications (APM) plus transparent. L'objectif de l'observabilité est d'offrir un contexte riche et des informations incroyablement granulaires sur le comportement des systèmes.
Pour l'observabilité, vous devez :
- Créer des systèmes et des applications qui collectent les données pertinentes telles que les métriques, les traces et les logs
- Être capable de facilement ou automatiquement exporter ces informations vers une plateforme en dehors du programme que vous analysez
- Avoir une analyse qui fournit des visualisations et des informations détaillées sur l'ensemble du système, y compris l'impact des changements au cours du développement de l'application sur l'expérience utilisateur
L'observabilité fournit un monitoring holistique des systèmes et plateformes qui permet aux développeurs et aux parties prenantes de déterminer comment ils fonctionnent. Toutefois, l'observabilité est difficile à mesurer et à analyser sans aide. Des outils, comme OpenTelemetry, rationalisent le monitoring des performances quels que soient les fournisseurs et les langages, et aident les développeurs à voir les métriques d'observabilité et à générer des rapports. Pour déterminer si OpenTelemetry convient à votre produit, les développeurs doivent répondre aux questions suivantes :
- Quels sont les langages de programmation, la plateforme et les frameworks que nous utilisons ?
- Quels types de données voulons-nous analyser ?
- À quels outils allons-nous envoyer les données pour analyse ?
Pour fonctionner au mieux, OpenTelemetry doit être associé aux backends de l'observabilité. Lorsque des parties du collecteur d'OpenTelemetry (les récepteurs, processeurs et exportateurs) reçoivent, compilent et distribuent des données et des informations significatives dans un format qui peut être analysé correctement dans le but de connaître le niveau de performance et d'effectuer le dépannage, les développeurs ont alors accès à toute l'observabilité et à tout le monitoring dans un seul et même outil.
New Relic et OpenTelemetry
New Relic a été l'un des principaux contributeurs à OpenTelemetry depuis son lancement. En 2020, nous avons annoncé notre plein engagement à l'instrumentation open source, à la mise en accès libre de nos agents et à la standardisation de nos offres d'observabilité dans OpenTelemetry. Avec notre prise en charge native du protocole OTPL d'OpenTelemetry et notre collection d'expériences utilisateur, vous pouvez utiliser cette nouvelle norme d'instrumentation pour comprendre, dépanner et optimiser vos systèmes.
Explorez OpenTelemetry dès aujourd’hui !
C'est le moment parfait pour commencer à expérimenter avec le tracing d'OpenTelemetry sur vos propres applications et services. Si vous voulez l'essayer, consultez nos exemples avec OpenTelemetry.
- Inscrivez-vous gratuitement à New Relic et envoyez vos données OpenTelemetry dès aujourd'hui.
- Consultez la deuxième partie de la série : Les principaux composants d'OpenTelemetry.
- Vous êtes prêt à appliquer vos connaissances et à instrumenter une application de base dans votre langage de programmation favori ? Suivez la Masterclass OpenTelemetry.
- Pour un apprentissage plus pratique sur OpenTelemetry, suivez à votre rythme la formation de 90 minutes proposée par New Relic University : OpenTelemetry : an open source data collection standard (OpenTelemetry : une norme open source de collecte des données).
Cet article de blog constitue la première partie de la série Bien comprendre OpenTelemetry. Nous vous avons présenté un aperçu d'OpenTelemetry pour vous aider à comprendre pourquoi cette norme open source est l'avenir de l'instrumentation. Dans les parties suivantes, Alan West, l'un des responsables du projet OpenTelemetry, et Jack Berg, un contributeur, présenteront les composants clés d'OpenTelemetry, les sources de données, la façon d'instrumenter une application avec OpenTelemetry, la manière de voir les données dans New Relic, et plus encore.
La deuxième partie explore les composants clés du projet OpenTelemetry et la troisième partie se focalisera sur les principales sources de données d'OpenTelemetry. Dans la quatrième partie, vous parcourrez quelques exemples d'instrumentation d'une application Java avec OpenTelemetry, et la cinquième partie montrera comment envoyer les données OpenTelemetry à votre plateforme backend.
Les opinions exprimées sur ce blog sont celles de l'auteur et ne reflètent pas nécessairement celles de New Relic. Toutes les solutions proposées par l'auteur sont spécifiques à l'environnement et ne font pas partie des solutions commerciales ou du support proposés par New Relic. Veuillez nous rejoindre exclusivement sur l'Explorers Hub (discuss.newrelic.com) pour toute question et assistance concernant cet article de blog. Ce blog peut contenir des liens vers du contenu de sites tiers. En fournissant de tels liens, New Relic n'adopte, ne garantit, n'approuve ou n'approuve pas les informations, vues ou produits disponibles sur ces sites.