Fusionner OpenTracing et OpenCensus : la voie vers la convergence

Fusionner OpenTracing et OpenCensus : la voie vers la convergence

Auteurs : Ted Young, Pritam Shah et le comité des spécifications techniques (Carlos Alberto, Bogdan Drutu, Sergei Kanzhelev et Yuri Shkuro).

Le projet commun a acquis le nom : http://opentelemetry.io

Très, très brièvement :

  • Nous créons un nouvel ensemble unifié de bibliothèques et de spécifications pour les capacités de surveillance télémétrique. Il fusionnera les projets OpenTracing et OpenCensus et fournira un chemin de migration pris en charge.
  • L'implémentation de référence en Java sera disponible le 24 avril et les travaux sur les implémentations dans d'autres langages débuteront intégralement le 8 mai 2019. Consulter l'horaire ici.
  • D'ici septembre 2019, une parité avec les projets existants pour C#, Golang, Java, NodeJS et Python est prévue. Il nous reste beaucoup de travail à accomplir, mais nous pouvons y parvenir si nous travaillons en parallèle. Si vous souhaitez participer à ce projet, veuillez vous inscrire et nous faire savoir comment vous souhaitez contribuer.
  • Une fois la mise en œuvre dans chaque langue mature, les projets OpenTracing et OpenCensus correspondants seront clôturés. Cela signifie que les anciens projets seront gelés et que le nouveau projet continuera à prendre en charge les outils existants pendant deux ans grâce à la rétrocompatibilité.

Aperçu du projet

Fusionner OpenTracing et OpenCensus : la voie vers la convergence

Nous faisons une fusion ! L’objectif ultime est de regrouper les projets OpenTracing et OpenCensus en un seul projet commun.
Le cœur du nouveau projet sera un ensemble d'interfaces claires et réfléchies, y compris l'assemblage traditionnel de bibliothèques qui implémentent ces interfaces sous la forme de ce qu'on appelle. SDK. La cerise sur le gâteau sera des normes recommandées pour les protocoles de données et de câblage, y compris les parties communes de l'infrastructure.
Le résultat sera un système de télémétrie complet adapté à la surveillance des microservices et d’autres types de systèmes distribués modernes, compatible avec la plupart des principaux logiciels OSS et backend commerciaux.

principaux événements

24.04/XNUMX — Candidat de référence soumis pour examen.
8.05hXNUMX — Une équipe se forme et commence à travailler dans toutes les langues.
20.05hXNUMX — Lancement officiel du projet à Kubecon Barcelona.
6.09 - Les implémentations en C#, Golang, Java, NodeJS et Python atteignent la parité avec leurs homologues.
6.11 - Achèvement officiel des projets OpenTracing et OpenCensus.
20.11hXNUMX — Fête d'adieu en l'honneur de l'achèvement des projets au Sommet de l'Observabilité, Kubecon San Diego.

Chronologie de la convergence

Fusionner OpenTracing et OpenCensus : la voie vers la convergence

La migration pour chaque langage comprend une version de SDK prête pour la production, des outils pour les bibliothèques populaires, la documentation, le CI, des outils de compatibilité ascendante et la fermeture des projets OpenCensus et OpenTracing associés (« coucher de soleil »). Nous nous sommes fixé un objectif ambitieux pour septembre 2019 : atteindre la parité pour les langages C#, Golang, Java, NodeJS et Python. Nous déplacerons la date d'expiration jusqu'à ce que toutes les langues soient prêtes. Mais il est préférable d'éviter cela.
Lorsque vous consultez vos objectifs, veuillez tenir compte de votre implication personnelle, faites-le-nous savoir en remplissant formulaire d'inscription, ou en disant bonjour dans les chats Gitter des projets OuvrirTraçage и Recensement ouvert. Vous pouvez visualiser le graphique sous forme d'infographie ici.

Objectif : Première ébauche de la spécification multilingue (achèvement d'ici le 8 mai)

Il est important de travailler de manière cohérente, même lorsque l’on travaille en parallèle dans différentes langues. La spécification multilingue fournit des conseils pour le projet. Cela semble prosaïque, mais cela garantit la prise en charge d’un système cohérent et familier quel que soit le langage de programmation.

Exigences obligatoires pour le premier projet de spécification pour le langage X :

  • Définitions de la terminologie générale.
  • Un modèle pour décrire les transactions distribuées, les statistiques et les métriques.
  • Clarifications sur des questions importantes survenues lors de la mise en œuvre.

Cet objectif bloque la suite du travail, la première ébauche doit être achevée d'ici le 8 mai.

Objectif : Première ébauche de spécification des données (achèvement d'ici le 6 juillet)

La spécification des données définit un format de données commun pour les traces et les métriques afin que les données exportées par tous les processus puissent être traitées par la même infrastructure de télémétrie, quel que soit le processus de génération de données. Cela inclut le schéma de données pour le modèle de trace décrit dans la spécification multilingue. Sont également incluses les définitions de métadonnées pour les opérations courantes que la trace utilise pour capturer, telles que les requêtes HTTP, les erreurs et les requêtes de base de données. Ces conventions sémantiques en sont un exemple.

La première ébauche est basée sur le format de données OpenCensus actuel et contiendra les éléments suivants :

  • Un schéma de données qui implémente une spécification multilingue.
  • Définitions de métadonnées pour les opérations courantes.
  • Définitions JSON et Protobuf.
  • Mise en place de clients de référence.

Veuillez noter qu'il existe également un protocole filaire qui distribue les traces in-band, que nous aimerions également standardiser. Format de distribution Contexte de trace développé par le W3C.

Objectif : parité dans toutes les principales langues prises en charge (achèvement d'ici le 6 septembre)

Nous devons atteindre la parité pour l’écosystème linguistique actuel en remplaçant les anciens projets par de nouveaux.

  • Définitions d'interface pour le traçage, les métriques et la propagation du contexte basées sur une spécification multilingue.
  • Un SDK prêt à l'emploi qui implémente ces interfaces et exporte les Trace-Data. Dans la mesure du possible, le SDK sera créé en portant une implémentation existante d'OpenCensus.
  • Boîte à outils pour les bibliothèques populaires actuellement couvertes par OpenTracing et OpenCensus.

Nous apprécions également la compatibilité ascendante et souhaitons assurer une transition en douceur à partir des projets existants.

  • Le nouveau SDK sera rétrocompatible avec les interfaces OpenTracing actuelles. Ils permettront aux anciens outils OpenTracing de fonctionner aux côtés de nouveaux outils dans le même processus, permettant ainsi aux utilisateurs de migrer leur travail au fil du temps.
  • Lorsque le nouveau SDK sera prêt, un plan de mise à niveau sera créé pour les utilisateurs actuels d'OpenCensus. Comme avec OpenTracing, les outils existants pourront continuer à fonctionner aux côtés des nouveaux.
  • D’ici novembre, OpenTracing et OpenCensus ne pourront plus accepter de modifications. La rétrocompatibilité avec les outils existants sera prise en charge pendant deux ans.

Créer un SDK de premier ordre pour chaque langage nécessite beaucoup de travail, et c'est ce dont nous avons le plus besoin.

Objectif : documentation de base (achèvement d'ici le 6 septembre)

La documentation est un facteur essentiel au succès de tout projet open source. Nous voulons une documentation et des outils de formation de premier ordre, et nos rédacteurs techniques sont les développeurs les plus actifs sur le projet. Enseigner aux développeurs comment surveiller correctement les logiciels est l’un des impacts les plus importants que nous souhaitons avoir sur le monde.

Les documents suivants constituent le minimum requis pour commencer :

  • Orientation du projet.
  • Observabilité 101.
  • Début des travaux.
  • Guides linguistiques (séparément pour chacun).

Les écrivains de tous niveaux sont les bienvenus ! Notre nouveau site est basé sur Hugo, utilisant un balisage régulier, il est donc assez simple de contribuer.

Objectif : Registre v1.0 (achèvement d'ici le 6 juillet)

Registre - un autre composant critique, une version améliorée Registre OpenTracing.

  • Il est facile de trouver des bibliothèques, des plugins, des installateurs et d'autres composants.
  • Gestion facile des composants du registre.
  • Vous pouvez découvrir quelles fonctionnalités du SDK sont disponibles dans chaque langue.

Si vous êtes intéressé par le design, l'interface et l'UX, nous avons un excellent projet de participation personnelle.

Objectif : infrastructure pour les tests et la publication des logiciels (achèvement d'ici le 6 septembre)

Pour garantir que nous continuons à fournir un code sécurisé sur lequel vous pouvez compter, nous nous engageons en matière de conception à créer des pipelines de tests et de versions de logiciels de qualité. Veuillez nous faire savoir si vous pouvez vous occuper des pipelines pour les tests, la caractérisation et la publication de logiciels. Nous indiquons clairement le niveau de préparation à la production, et la maturité de l'infrastructure de test sera pour nous le principal facteur décisif.

Objectif : clôturer les projets OpenTracing et OpenCensus (achèvement d'ici le 6 novembre)

Nous prévoyons de commencer à clôturer les anciens projets le 6 septembre, si le nouveau projet atteint la parité avec eux. 2 mois plus tard, avec parité de toutes les langues, nous prévoyons de clôturer les projets OpenTracing et OpenCensus. Il faut comprendre ainsi :

  • les référentiels seront gelés et aucune autre modification ne sera apportée.
  • La boîte à outils actuelle est prévue pour une période de support de deux ans.
  • les utilisateurs pourront passer au nouveau SDK en utilisant les mêmes outils.
  • Une mise à jour progressive sera possible.

Adhérer maintenant

Nous accueillerons toute aide car il s’agit d’un énorme projet. Si vous souhaitez en savoir plus sur l’observabilité, c’est le moment !

Source: habr.com

Ajouter un commentaire