Samenvoeging van OpenTracing en OpenCensus: het pad naar convergentie

Samenvoeging van OpenTracing en OpenCensus: het pad naar convergentie

Auteurs: Ted Young, Pritam Shah en het Comité voor technische specificaties (Carlos Alberto, Bogdan Drutu, Sergei Kanzhelev en Yuri Shkuro).

Het gezamenlijke project kreeg de naam: http://opentelemetry.io

Heel, heel kort:

  • We creëren een nieuwe, uniforme set bibliotheken en specificaties voor telemetriebewakingsmogelijkheden. Het zal de OpenTracing- en OpenCensus-projecten samenvoegen en een ondersteund migratiepad bieden.
  • De referentie-implementatie in Java zal op 24 april beschikbaar zijn en het werk aan implementaties in andere talen zal volledig beginnen op 8 mei 2019. Bekijk het schema kan hier zijn.
  • Tegen september 2019 is pariteit met bestaande projecten voor C#, Golang, Java, NodeJS en Python gepland. Er ligt veel werk voor ons, maar we kunnen het aan als we parallel werken. Als u geïnteresseerd bent in deelname aan dit project, meld u dan aan en laat ons weten hoe u wilt bijdragen.
  • Zodra de implementatie in elke taal volwassen is, zullen de bijbehorende OpenTracing- en OpenCensus-projecten worden gesloten. Dit betekent dat de oude projecten worden bevroren en dat het nieuwe project de bestaande tools twee jaar lang zal blijven ondersteunen met behulp van achterwaartse compatibiliteit.

Projectoverzicht

Samenvoeging van OpenTracing en OpenCensus: het pad naar convergentie

Wij zijn bezig met een fusie! Het uiteindelijke doel is om de OpenTracing- en OpenCensus-projecten samen te brengen in één gemeenschappelijk project.
De kern van het nieuwe project zal een reeks schone en doordachte interfaces zijn, inclusief de traditionele verzameling van bibliotheken die deze interfaces implementeren in de vorm van zogenaamde. SDK. De kers op de taart zijn de aanbevolen standaarden voor data- en draadprotocollen, inclusief gemeenschappelijke delen van de infrastructuur.
Het resultaat zal een compleet telemetriesysteem zijn dat geschikt is voor het monitoren van microservices en andere typen moderne gedistribueerde systemen, compatibel met de meeste grote OSS- en commerciële backend-software.

Belangrijke gebeurtenissen

24.04/XNUMX — Referentiekandidaat ter beoordeling ingediend.
8.05 — Er wordt een team gevormd dat in alle talen gaat werken.
20.05 — Officiële lancering van het project op Kubecon Barcelona.
6.09 - Implementaties in C#, Golang, Java, NodeJS en Python bereiken pariteit met hun tegenhangers.
6.11 - Officiële afronding van de projecten OpenTracing en OpenCensus.
20.11 — Afscheidsfeest ter ere van de voltooiing van projecten op de Observability Summit, Kubecon San Diego.

Tijdlijn van convergentie

Samenvoeging van OpenTracing en OpenCensus: het pad naar convergentie

De migratie voor elke taal omvat een productieklare SDK-build, tools voor populaire bibliotheken, documentatie, CI, achterwaartse compatibiliteitstools en de sluiting van de gerelateerde OpenCensus- en OpenTracing-projecten (“sunset”). We hebben voor september 2019 een ambitieus doel gesteld: het bereiken van pariteit voor de talen C#, Golang, Java, NodeJS en Python. We verplaatsen de zonsondergangdatum totdat alle talen gereed zijn. Maar het verdient de voorkeur dit te vermijden.
Houd bij het bekijken van de doelstellingen rekening met uw persoonlijke betrokkenheid, laat het ons weten door dit in te vullen registratieformulier, of door hallo te zeggen in de Gitter-chats van de projecten OpenTracering и Open volkstelling. U kunt de grafiek bekijken als een infographic hier.

Doel: Eerste versie van de taaloverschrijdende specificatie (voltooiing op 8 mei)

Het is belangrijk om samenhangend te werken, zelfs als u parallel in verschillende talen werkt. De cross-taalspecificatie biedt richtlijnen voor het project. Het klinkt prozaïsch, maar het garandeert ondersteuning voor een samenhangend systeem dat ongeacht de programmeertaal vertrouwd aanvoelt.

Verplichte eisen voor de eerste conceptspecificatie voor taal X:

  • Definities van algemene terminologie.
  • Een model voor het beschrijven van gedistribueerde transacties, statistieken en statistieken.
  • Verduidelijkingen over belangrijke kwesties die tijdens de implementatie naar voren zijn gekomen.

Dit doel blokkeert de rest van het werk; het eerste ontwerp moet op 8 mei klaar zijn.

Doel: Eerste concept voor dataspecificatie (afronding op 6 juli)

De gegevensspecificatie definieert een gemeenschappelijk gegevensformaat voor traceringen en statistieken, zodat gegevens die door alle processen worden geëxporteerd, door dezelfde telemetrie-infrastructuur kunnen worden verwerkt, ongeacht het gegevensgeneratieproces. Dit omvat het gegevensschema voor het traceermodel dat wordt beschreven in de taaloverschrijdende specificatie. Ook inbegrepen zijn metagegevensdefinities voor veelvoorkomende bewerkingen die de trace gebruikt om vast te leggen, zoals HTTP-verzoeken, fouten en databasequery's. Deze semantische conventies zijn een voorbeeld.

Het eerste concept is gebaseerd op het huidige OpenCensus-gegevensformaat en zal het volgende bevatten:

  • Een gegevensschema dat een specificatie voor meerdere talen implementeert.
  • Metagegevensdefinities voor algemene bewerkingen.
  • JSON- en Protobuf-definities.
  • Implementatie van referentieklanten.

Houd er rekening mee dat er ook een draadprotocol bestaat dat sporen in de band distribueert, dat we ook graag willen standaardiseren. Distributieformaat Trace-Context ontwikkeld via W3C.

Doel: gelijkheid tussen alle belangrijke ondersteunde talen (voltooiing op 6 september)

We moeten gelijkheid bereiken voor het huidige taalecosysteem door oude projecten te vervangen door nieuwe.

  • Interfacedefinities voor tracering, statistieken en contextpropagatie op basis van een taaloverschrijdende specificatie.
  • Een kant-en-klare SDK die deze interfaces implementeert en Trace-Data exporteert. Waar mogelijk zal de SDK worden gemaakt door een bestaande implementatie van OpenCensus te porten.
  • Toolkit voor populaire bibliotheken die momenteel worden behandeld in OpenTracing en OpenCensus.

We hechten ook waarde aan achterwaartse compatibiliteit en willen een soepele overgang van bestaande projecten garanderen.

  • De nieuwe SDK zal achterwaarts compatibel zijn met de huidige OpenTracing-interfaces. Ze zullen het mogelijk maken dat oudere OpenTracing-tools naast nieuwe tools in hetzelfde proces worden uitgevoerd, waardoor gebruikers hun werk in de loop van de tijd kunnen migreren.
  • Wanneer de nieuwe SDK gereed is, wordt er een upgradeplan gemaakt voor de huidige OpenCensus-gebruikers. Net als bij OpenTracing kunnen bestaande tools naast nieuwe blijven werken.
  • In november zijn zowel OpenTracing als OpenCensus gesloten voor het accepteren van wijzigingen. Achterwaartse compatibiliteit met oudere tools wordt gedurende twee jaar ondersteund.

Het creëren van een best-in-class SDK voor elke taal vergt veel werk, en dat is wat we het meest nodig hebben.

Doel: basisdocumentatie (afronding op 6 september)

Een kritische factor in het succes van elk open source-project is documentatie. We willen eersteklas documentatie en trainingstools, en onze technische schrijvers zijn de meest actieve ontwikkelaars van het project. Ontwikkelaars leren hoe ze software goed kunnen monitoren is een van de belangrijkste effecten die we op de wereld willen hebben.

De volgende documentatie is minimaal vereist om aan de slag te gaan:

  • Projectoriëntatie.
  • Waarneembaarheid 101.
  • Begin van het werk.
  • Taalgidsen (afzonderlijk voor elk).

Schrijvers van alle niveaus zijn welkom! Onze nieuwe site is gebaseerd op Hugo en gebruikt reguliere opmaak, dus het is vrij eenvoudig om bij te dragen.

Doel: Register v1.0 (voltooid op 6 juli)

Register - nog een cruciaal onderdeel, een verbeterde versie OpenTracing-register.

  • Het is gemakkelijk om bibliotheken, plug-ins, installatieprogramma's en andere componenten te vinden.
  • Eenvoudig beheer van registercomponenten.
  • U kunt in elke taal zien welke SDK-functies beschikbaar zijn.

Als je geïnteresseerd bent in design, interface en UX, hebben we een uitstekend project voor persoonlijke deelname.

Doel: infrastructuur voor het testen en uitbrengen van software (voltooid op 6 september)

Om ervoor te zorgen dat we veilige code blijven leveren waarop u kunt vertrouwen, hebben we ons bij het ontwerp toegewijd aan het bouwen van hoogwaardige softwaretests en releasepipelines. Laat het ons weten als u voor pijplijnen voor testen, karakterisering en software-release kunt zorgen. We geven duidelijk het niveau van productiegereedheid aan, en de volwassenheid van de testinfrastructuur zal voor ons de belangrijkste beslissende factor zijn.

Doel: afsluiten van de projecten OpenTracing en OpenCensus (afronding per 6 november)

We zijn van plan om op 6 september te beginnen met het sluiten van oude projecten, als het nieuwe project daarmee op gelijke hoogte komt. Twee maanden later, met gelijkheid van alle talen, zijn we van plan de OpenTracing- en OpenCensus-projecten te sluiten. Het moet op deze manier worden begrepen:

  • de repositories worden bevroren en er zullen geen verdere wijzigingen worden aangebracht.
  • Voor de huidige toolkit is een ondersteuningsperiode van twee jaar gepland.
  • gebruikers kunnen met dezelfde tools upgraden naar de nieuwe SDK.
  • Een geleidelijke update zal mogelijk zijn.

Schrijf je nu in

Wij zijn blij met alle hulp, aangezien dit een gigantisch project is. Als je meer wilt weten over waarneembaarheid, dan is dit het moment!

Bron: www.habr.com

Voeg een reactie