
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!