Qu'est-ce qu'OpenTelemetry ?

Une brève explication de ce qu’est OpenTelemetry, et de ce qu’il n’est pas.

OpenTelemetry, c’est :

  • Un framework d’observabilité et des outils conçus pour créer et gérer des données de télémétrie telles que des traces, des metriques, et des logs
  • Indépendant d’un fournisseur et d’un outil, ce qui signifie qu’il peut être utilisé avec une grande variété de backends d’observabilité, y compris des outils open source tels que Jaeger et Prometheus, ainsi que des outils commerciaux
  • Pas un backend d’observabilité tel que Jaeger, Prometheus ou d’autres outils commerciaux
  • Axé sur la génération, la collecte, la gestion et l’export de données de télémétrie. L’un des objectifs principaux d’OpenTelemetry est de pouvoir aisément instrumenter vos applications ou systèmes, quelque soit leur langage, infrastructure, ou environnement d’exécution. Le stockage et la visualisation des données sont intentionnellement laissés à d’autres outils

Qu’est-ce que l’observabilité ?

L’observabilité est la capacité de comprendre l’état interne d’un système en examinant ses données sortantes. Dans un contexte logiciel, cela signifie être capable de comprendre l’état interne d’un système en examinant ses données de télémétrie, qui incluent les traces, métriques et logs.

Pour rendre un système observable, il doit être instrumenté. Cela signifie que le code doit émettre des traces, des métriques, et/ou des logs. Les données produites doivent être transmises à un backend d’observabilité.

Pourquoi OpenTelemetry ?

Avec l’essor du cloud computing, des architectures en microservices, et des exigences commerciales de plus en plus complexes, le besoin d’observabilité des logiciels et de l’infrastructure est plus grand que jamais.

OpenTelemetry répond au besoin d’observabilité tout en suivant deux principes clés :

  1. Vous êtes propriétaire des données que vous générez. Il n’y a pas de dépendance vis-à-vis d’un fournisseur
  2. Vous n’avez besoin d’apprendre qu’un seul ensemble d’APIs et de conventions

Ces deux principes combinés offrent aux équipes et aux organisations la flexibilité dont elles ont besoin dans le monde informatique moderne d’aujourd’hui.

Si vous souhaitez en savoir plus, jetez un oeil à la mission, la vision et les valeurs d’OpenTelemetry.

Composants principaux d’OpenTelemetry

OpenTelemetry se compose des principaux composants suivants :

OpenTelemetry est utilisé par une grande variété de bibliothèques, services et applications qui intègrent OpenTelemetry afin de fournir de l’observabilité par défaut.

OpenTelemetry est pris en charge par de nombreux fournisseurs, dont beaucoup fournissent un support commercial à OpenTelemetry et contribuent au projet directement.

Extensibilité

OpenTelemetry est conçu pour être extensible. Quelques exemples de la façon dont il peut être étendu incluent :

  • Ajouter un receveur au Collecteur OpenTelemetry afin de prendre en charge les données de télémétrie venant d’une source de données personnalisée
  • Charger des bibliothèques d’instrumentation personnalisées dans un SDK
  • Créer une distribution d’un SDK, ou du collecteur adapté à une utilisation spécifique
  • Créer un nouvel exportateur pour un backend personnalisé qui ne prend pas encore en charge le protocole OpenTelemetry (OTLP)
  • Créer un propagateur personnalisé pour un format de propagation de contexte non standard

Bien que la plupart des utilisateurs n’aient pas besoin d’étendre OpenTelemetry, le projet est conçu pour rendre cela possible presque à tous les niveaux.

Histoire

OpenTelemetry est un projet de la Cloud Native Computing Foundation (CNCF) qui trouve son origine dans la fusion de deux projets antérieurs, OpenTracing et OpenCensus. Ces deux projets ont été créés pour résoudre le même problème : l’absence d’une norme décrivant la manière d’instrumenter du code et de transmettre des données de télémétrie à un backend d’observabilité. Aucun des projets n’étant en mesure de résoudre ce problème de manière indépendante, ils ont fusionné pour former OpenTelemetry et combiner leurs forces tout en offrant une solution unique.

Si vous utilisez actuellement OpenTracing ou OpenCensus, vous pouvez découvrir comment migrer vers OpenTelemetry dans le guide de migration.

Et ensuite ?