Qu'est-ce qu'OpenTelemetry ?

Définition d'OpenTelemetry

OpenTelemetry (OTel) est un framework d'observabilité open source qui permet aux équipes de développement de générer, traiter et transmettre des données télémétriques dans un format unique et unifié. Il a été développé par la CNCF (Cloud Native Computing Foundation) afin de fournir des protocoles et des outils normalisés pour la collecte et le routage des indicateurs, des logs et des traces vers des plateformes de monitoring.

OpenTelemetry fournit des SDK, des API et des outils indépendants du fournisseur. Ainsi, vos données peuvent être envoyées à l'importe quel back-end d'observabilité pour analyse.

OpenTelemetry est en train de devenir la norme dominante de télémétrie d'observabilité dans les applications cloud-native. L'adoption d'OpenTelemetry est considérée comme essentielle pour les entreprises qui souhaitent se préparer aux demandes de données du futur sans être liées à un fournisseur particulier ou aux limites de leurs technologies existantes.

Elastic OpenTelemetry microservices

Que sont les données télémétriques ?

Les données télémétriques se composent des logs, des indicateurs et des traces collectés à partir d'un système distribué. Connues sous le nom de "piliers de l'observabilité", ces trois catégories de données aident les développeurs, les équipes DevOps et les équipes informatiques à comprendre le comportement et les performances de leurs systèmes.

Logs : un log est l'enregistrement textuel d'un événement discret qui s'est produit dans un système à un moment particulier. Des entrées de log sont produites chaque fois qu'un bloc de code est exécuté. Elles incluent généralement un horodatage indiquant le moment où l'événement s'est produit, ainsi qu'une charge utile de contexte. Les données de logs se présentent sous différents formats, y compris en texte brut, structuré et non structuré. Les logs sont particulièrement utiles pour la résolution des problèmes, le débogage et la vérification du code.

Indicateurs : les indicateurs sont des valeurs numériques mesurées sur des intervalles de temps, souvent appelées données temporelles. Ils incluent des attributs tels qu'un horodatage, le nom d'un événement et la valeur d'un événement. Dans les systèmes modernes, les indicateurs permettent de monitorer, d'analyser et de répondre aux problèmes et de faciliter les alertes. Ils peuvent vous donner des informations sur votre infrastructure ou votre application telles que le taux d'erreurs système, l'utilisation du processeur ou le taux de demandes d'un service.

Traces : les traces représentent le chemin d'une demande à travers un système distribué. Les traces dans OpenTelemetry sont définies par leurs intervalles. Un groupe d'intervalles constitue une trace. Le traçage permet aux équipes de comprendre le parcours complet et le comportement des demandes via divers services et composants. Le traçage distribué vous permet de suivre un chemin d'exécution complet et d'identifier le code à l'origine des problèmes. Les traces offrent une visibilité sur la santé globale d'une application, mais une visibilité limitée sur son infrastructure sous-jacente. Pour obtenir une image complète de votre environnement, vous avez besoin des deux autres piliers de l'observabilité : les logs et les indicateurs.

Brève histoire d'OpenTelemetry

OpenTracing et OpenCensus se chevauchaient sur des projets de traçage distribué développés indépendamment pour remédier à l'absence d'un format de données normalisé. OpenTelemetry a été créé pour fusionner les bases de code des projets OpenTracing et OpenCensus, en combinant les forces de chacun dans un projet unique hébergé par la Cloud Native Computing Foundation.

OpenTracing fournit des API indépendantes du fournisseur pour envoyer des données à un back-end. OpenCensus était un ensemble de bibliothèques spécifiques au langage que les développeurs utilisaient pour instrumenter leur code et envoyer des données aux back-ends. Les deux étaient open source, ce qui signifie que le code source du logiciel est développé de manière collaborative et disponible à tous pour utilisation, modification et distribution.

Avec OpenTelemetry, les développeurs n'ont plus à choisir entre OpenTracing et OpenCensus. OpenTelemetry fournit un ensemble unifié de bibliothèques, d'API, d'agents et de services de collecteur pour la collecte et le transfert des données.

Comment fonctionne OpenTelemetry ?

OpenTelemetry fournit un framework commun pour collecter des données télémétriques et les exporter vers le back-end Observability de votre choix. Il utilise un ensemble d'API, de SDK et d'outils normalisés et compatibles avec tous les fournisseurs pour ingérer, transformer et transporter des données.

Les API OpenTelemetry spécifiques au langage coordonnent la collecte de données télémétriques dans votre système et instrumentent votre code. Les SDK OpenTelemetry implémentent et prennent en charge les API via des bibliothèques qui facilitent la collecte, le traitement et l'exportation des données. OpenTelemetry fournit également une instrumentation automatique des services et prend en charge l'instrumentation personnalisée. Vous pouvez exporter vos données télémétriques à l'aide d'un exportateur fourni par le fournisseur ou du protocole OpenTelemetry (OTLP).

OpenTelemetry architecture

Principaux composants d'OpenTelemetry

Voici les principaux composants d'OpenTelemetry :

Collecteur

Le collecteur OpenTelemetry est un proxy compatible avec tous les fournisseurs qui reçoit, traite et exporte les données télémétriques. Il prend en charge la réception des données télémétriques dans plusieurs formats, ainsi que le traitement et le filtrage des données télémétriques avant leur exportation.

SDK de langage

Les SDK de langage OpenTelemetry vous permettent d'utiliser l'API OpenTelemetry pour générer des données télémétriques avec un langage et exporter les données vers un back-end.

Bibliothèques d'instrumentation

OpenTelemetry prend en charge un large éventail de composants qui génèrent des données télémétriques pertinentes à partir de bibliothèques et de frameworks populaires pour les langages pris en charge.

Instrumentation automatique

Une implémentation d'OpenTelemetry spécifique au langage peut fournir un moyen d'instrumenter votre application sans avoir à modifier votre code source.

Exportateurs

En dissociant l'instrumentation de votre configuration back-end, les exportateurs facilitent le changement de back-ends sans modifier votre instrumentation. Ils vous permettent également de charger des données télémétriques vers plusieurs back-ends.

Avantages d'OpenTelemetry

Les avantages d'OpenTelemetry sont la normalisation des données et une flexibilité durable qui se traduisent par une meilleure observabilité, une efficacité accrue et des coûts réduits.

Normalisation dans la collecte de données

OpenTelemetry fournit une solution aux équipes DevOps qui recherchent un moyen cohérent de collecter et d'exporter des données télémétriques vers des back-ends, tels que Splunk, New Relic, Dynatrace et Datadog, sans avoir à changer d'instrumentation. Avec des normes ouvertes et une collecte de données normalisée, OpenTelemetry crée une visibilité accrue et une observabilité simplifiée. Grâce à une observabilité plus facile à configurer, les équipes peuvent mieux comprendre la santé du système, identifier les problèmes de performances et réduire le temps nécessaire pour corriger les causes premières avant que des interruptions de service ne se produisent. Les entreprises qui utilisent OpenTelemetry ne perdent pas de temps à développer des solutions internes ou à rechercher des outils individuels pour plusieurs applications. En réduisant le bruit, les coûts et la nécessité de modifier la configuration, OpenTelemetry permet aux entreprises de se concentrer sur l'exploitation de leurs données plutôt que sur la manière dont elles sont collectées. Des informations peuvent être fournies aux équipes à l'aide des outils ou des formats les plus pertinents, ce qui améliore la collaboration.

Pas de dépendance vis-à-vis d'un fournisseur

OpenTelemetry permet aux équipes de choisir le back-end de leur choix sans être liées à un fournisseur particulier, ce qui pérennise leurs investissements. Il peut s'adapter aux modifications apportées aux systèmes, back-ends et processus, de sorte que vous n'êtes jamais bloqué avec une plateforme, une solution ou un contrat unique. Les entreprises peuvent ainsi se développer et s'adapter à l'évolution de leurs besoins technologiques. Cette indépendance et cette flexibilité signifient que vous pouvez baser vos décisions commerciales sur ce qui est le mieux pour votre résultat net et vos clients, et non sur les limites de votre technologie.

Grâce à OpenTelemetry, vous bénéficiez d'une scalabilité pour la croissance, d'une compatibilité entre les plateformes et d'une intégration facile à vos outils de monitoring et d'observabilité existants.

OpenTelemetry avec Elastic

OpenTelemetry permet d'instrumenter les applications dans un format télémétrique unifié, mais il ne fournit pas de composants back-end, ni de composants analytiques. Elastic Observability intègre en toute transparence des données OpenTelemetry dans une plateforme Elasticsearch ouverte et évolutive.

Elastic prend en charge nativement le protocole OpenTelemetry, ce qui permet d'extraire des logs, des indicateurs et des traces dans de nombreux langages. Il est ainsi beaucoup plus facile de tirer parti des puissantes fonctionnalités d'analyse et de visualisation d'Elastic à grande échelle.

En avril 2023, Elastic a fourni son Elastic Common Schema (ECS) à OpenTelemetry dans le but à long terme de faire converger les conventions sémantiques avec ECS afin d'élaborer un schéma de données télémétriques commun. Elastic envisage de normaliser sur OpenTelemetry son architecture de données, augmentera ses investissements dans ce domaine et collaborera davantage avec le projet OpenTelemetry à l'avenir.

OpenTelemetry and the Elastic Stack

Elastic est également un contributeur important au projet OpenTelemetry. Pour aider les administrateurs à monitorer et à résoudre les problèmes de leur plateforme CI/CD et aider les développeurs à augmenter la vitesse et la fiabilité de leurs pipelines CI/CD, Elastic Observability offre une visibilité sur les processus CI/CD. Pour fournir des tableaux de bord de monitoring, l'alerting et une analyse des causes premières sur les pipelines, Elastic collabore avec la communauté des plateformes CI/CD les plus populaires, y compris Jenkins, Ansible et Maven, pour instrumenter les outils avec OpenTelemetry.

Elastic Observability est une solution professionnelle qui permet aux entreprises d'envoyer directement les données collectées par l'instrumentation OpenTelemetry vers les déploiements Elastic. Il vous offre une visibilité complète sur vos applications cloud hybrides et la possibilité de tout stocker, analyser et visualiser. Vous pouvez également utiliser les puissantes fonctionnalités de Machine Learning d'Elastic pour réduire le temps d'analyse et de récupération.

Explorez les solutions OpenTelemetry

Questions fréquentes sur OpenTelemetry

OpenTelemetry est-il une norme ?

Oui. OpenTelemetry est un projet open source et une norme unifiée pour les logs, les traces et les indicateurs.

Peut-on avoir des exemples de données télémétriques ?

Des exemples de données télémétriques incluent les logs, les indicateurs et les traces utilisés dans le monitoring et l'observabilité du système.

Quelle est la différence entre OpenTelemetry et Jaeger ?

OpenTelemetry vous permet de traiter et d'exporter des données vers différents back-ends open source et commerciaux, mais ce n'est pas un back-end d'observabilité comme Jaeger. OpenTelemetry fournit un ensemble d'API, de SDK et d'outils pour aider à générer et gérer des données télémétriques alors que Jaeger est un outil de traçage distribué open source. Les équipes informatiques utilisent Jaeger pour monitorer et dépanner les applications basées sur une architecture de microservices. Jaeger ne prend pas en charge les logs et les indicateurs.

Quelle est la différence entre l'API et le SDK OpenTelemetry ?

Les API OpenTelemetry, ou interfaces de programmation applicative, coordonnent la collecte de données télémétriques dans votre système et instrumentent votre code. Comme les API sont spécifiques au langage, elles doivent correspondre au langage de votre code. Les SDK OpenTelemetry, ou kits de développement logiciel, implémentent et prennent en charge les API via des bibliothèques qui facilitent la collecte, le traitement et l'exportation des données vers un back-end d'observabilité.