La fusion d'OpenTracing et d'OpenCensus: la voie de la convergence


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


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


Très, très court:


  • Nous crĂ©ons un nouvel ensemble unifiĂ© de bibliothèques et de spĂ©cifications pour la possibilitĂ© de surveiller la tĂ©lĂ©mĂ©trie. Il combinera les projets OpenTracing et OpenCensus, et fournira Ă©galement un moyen pris en charge pour la migration.
  • L'implĂ©mentation de rĂ©fĂ©rence en Java sera disponible le 24 avril, les travaux sur les implĂ©mentations dans d'autres langages commenceront intĂ©gralement Ă  partir du 8 mai 2019. Vous pouvez consulter le calendrier ici .
  • D'ici septembre 2019, la paritĂ© est prĂ©vue avec les projets existants pour C #, Golang, Java, NodeJS et Python. Beaucoup de travail nous attend, mais nous pouvons le gĂ©rer si nous travaillons en parallèle. Si vous ĂŞtes intĂ©ressĂ© Ă  participer Ă  ce projet, veuillez vous inscrire et nous faire savoir comment vous souhaitez contribuer.
  • Lorsque l'implĂ©mentation dans chaque langue deviendra mature, les projets OpenTracing et OpenCensus correspondants seront fermĂ©s. Cela signifie geler les anciens projets et le nouveau projet continuera Ă  prendre en charge les outils existants pendant deux ans, en utilisant la compatibilitĂ© descendante.

Aperçu du projet



Nous fusionnons! L'objectif le plus élevé est de regrouper les projets OpenTracing et OpenCensus dans un projet commun.
Le cœur du nouveau projet sera un ensemble d'interfaces propres et bien pensées, 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 les normes recommandées pour les protocoles de données et de câblage, y compris les parties d'infrastructure communes.
Le résultat sera un système de télémétrie complet adapté à la surveillance de microservices et d'autres types de systèmes distribués modernes, compatible avec la plupart des principaux programmes OSS et principaux programmes commerciaux.


Événements clés


24 avril - Un candidat de référence est soumis pour examen.
8.05 - Une équipe est formée, commençant à travailler dans toutes les langues.
05.20 - Lancement officiel du projet au Kubecon Barcelona.
6.09 - Les implémentations en C #, Golang, Java, NodeJS et Python réalisent la parité avec les pairs.
6.11 - L'achèvement officiel des projets OpenTracing et OpenCensus.
11 h 20 - 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



La migration pour chaque langue comprend la création d'un SDK prêt pour le déploiement industriel, des outils pour les bibliothèques populaires, la documentation, l'IC, les outils de compatibilité descendante et la fermeture des projets OpenCensus et OpenTracing associés (temporisation). Nous nous sommes fixé un objectif ambitieux pour septembre 2019: atteindre la parité pour les langages C #, Golang, Java, NodeJS et Python. Nous changerons la date du coucher du soleil jusqu'à ce que toutes les langues soient prêtes. Mais il est préférable d'éviter cela.
Lors de la visualisation des objectifs, veuillez penser Ă  votre participation personnelle, faites-le nous savoir en remplissant le formulaire d'inscription , ou en saluant dans les chats Gitter des projets OpenTracing et OpenCensus . Consultez le graphique sous forme d'infographie ici .


Cible: Première ébauche d'une spécification interlangue (achèvement le 8 mai)


Il est important de travailler ensemble, même en travaillant en parallèle dans différentes langues. Une spécification interlangue guide le projet. Cela semble prosaïque, mais c'est une garantie de soutenir un système holistique qui semble familier quel que soit le langage de programmation.


Exigences obligatoires pour le premier projet de spécification pour la langue 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 les questions importantes qui se sont posĂ©es pendant la mise en Ĺ“uvre.

Cet objectif bloque le reste du travail, la première ébauche devrait être terminée d'ici le 8 mai.


Cible: premier projet de spécification des données (achèvement le 6 juillet)


La spécification de données définit un format de données commun pour les traces et les métriques; par conséquent, les données exportées par tous les processus peuvent ê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. Les définitions de métadonnées pour les opérations courantes que la trace utilise pour capturer sont également incluses: par exemple, les requêtes HTTP, les erreurs et les requêtes de base de données. Ces conventions sémantiques en sont un exemple.


Le premier projet est basé sur le format de données OpenCensus actuel et contiendra les éléments suivants:


  • Un schĂ©ma de donnĂ©es implĂ©mentant une spĂ©cification interlangue.
  • DĂ©finitions des mĂ©tadonnĂ©es pour les opĂ©rations gĂ©nĂ©rales.
  • 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 intrabande, et que nous aimerions également standardiser. Le format de distribution Trace-Context est en cours de développement via le W3C.


Cible: parité pour toutes les principales langues prises en charge (achevée d'ici le 6 septembre)


Nous devons atteindre la parité pour l'écosystème linguistique actuel afin de remplacer les anciens projets par de nouveaux.


  • DĂ©finitions d'interface pour le traçage, les mĂ©triques et la distribution de contexte basĂ©es sur une spĂ©cification interlangue.
  • Un SDK prĂŞt Ă  l'emploi qui implĂ©mente ces interfaces, exportant des donnĂ©es de trace. Si possible, un SDK sera créé en migrant une implĂ©mentation existante depuis OpenCensus.
  • BoĂ®te Ă  outils pour les bibliothèques populaires actuellement couvertes par OpenTracing et OpenCensus.

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


  • Le nouveau SDK aura une compatibilitĂ© descendante avec les interfaces OpenTracing actuelles. Ils permettront aux outils OpenTracing hĂ©ritĂ©s de fonctionner avec de nouveaux outils dans le mĂŞme processus, ce qui permettra aux utilisateurs de transfĂ©rer progressivement leur expĂ©rience.
  • Lorsque le nouveau SDK est prĂŞt, un plan de mise Ă  jour sera créé pour les utilisateurs actuels d'OpenCensus. Comme avec OpenTracing, les outils hĂ©ritĂ©s peuvent continuer Ă  fonctionner avec les nouveaux.
  • D'ici novembre, OpenTracing et OpenCensus seront fermĂ©s pour accepter les modifications. La rĂ©trocompatibilitĂ© avec les outils hĂ©ritĂ©s sera maintenue pendant deux ans.

La création du meilleur SDK de sa catégorie pour chaque langue nécessite beaucoup de travail, et c'est ce dont nous avons le plus besoin.


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


La documentation est un facteur de réussite critique pour tout projet open source. Nous voulons une documentation et des outils de formation de premier ordre, nos rédacteurs techniques sont les développeurs les plus actifs sur le projet. Former les développeurs à surveiller correctement les logiciels est l'un des impacts les plus importants que nous voulons avoir sur le monde.


Les parties suivantes de la documentation sont au minimum nécessaires pour démarrer:


  • Orientation du projet.
  • ObservabilitĂ© 101.
  • Pour commencer.
  • Guides linguistiques (sĂ©parĂ©ment pour chacun).

Nous invitons des écrivains de tous niveaux! Notre nouveau site est basé sur Hugo en utilisant un balisage commun, il est donc très facile de contribuer.


Cible: Registry v1.0 (terminé d'ici le 6 juillet)


Le registre est un autre composant essentiel, une version améliorée du registre OpenTracing .


  • Trouvez facilement des bibliothèques, des plugins, des programmes d'installation et d'autres composants.
  • Gestion facile des composants du Registre.
  • Vous pouvez dĂ©couvrir les fonctionnalitĂ©s du SDK disponibles dans chaque langue.

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


Cible: infrastructure pour les tests et la sortie du logiciel (achèvement d'ici le 6 septembre)


Afin que nous puissions continuer à fournir du code sécurisé sur lequel vous pouvez compter, nous nous sommes engagés à créer des pipelines de qualité pour tester et publier des logiciels. Veuillez nous faire savoir si vous pouvez prendre soin des convoyeurs pour les tests, la mesure des performances et la libération du logiciel. Nous indiquons clairement le niveau de préparation à la production et la maturité de l'infrastructure de test sera le principal facteur décisif pour nous.


Objectif: clĂ´ture des projets OpenTracing et OpenCensus (fin d'ici le 6 novembre)


Nous prévoyons de commencer à fermer les anciens projets à partir du 6 septembre, si le nouveau projet atteint la parité avec eux. 2 mois plus tard, à parité de toutes les langues, nous prévoyons de clôturer les projets OpenTracing et OpenCensus. Cela doit être compris comme suit:


  • les rĂ©fĂ©rentiels seront gelĂ©s, plus aucune modification ne sera effectuĂ©e.
  • Une pĂ©riode d'assistance de deux ans est prĂ©vue pour la boĂ®te Ă  outils actuelle.
  • les utilisateurs pourront mettre Ă  niveau vers le nouveau SDK en utilisant les mĂŞmes outils.
  • une mise Ă  jour progressive sera possible.

Rejoignez-nous maintenant


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


Source: https://habr.com/ru/post/fr464001/


All Articles