Slå sammen OpenTracing og OpenCensus: The Path to Convergence

Slå sammen OpenTracing og OpenCensus: The Path to Convergence

Forfattere: Ted Young, Pritam Shah og den tekniske spesifikasjonskomiteen (Carlos Alberto, Bogdan Drutu, Sergei Kanzhelev og Yuri Shkuro).

Fellesprosjektet fikk navnet: http://opentelemetry.io

Veldig, veldig kort:

  • Vi lager et nytt enhetlig sett med biblioteker og spesifikasjoner for telemetriovervåkingsfunksjoner. Det vil slå sammen OpenTracing- og OpenCensus-prosjektene og gi en støttet bane for migrering.
  • Referanseimplementeringen i Java vil være tilgjengelig 24. april, og arbeidet med implementeringer på andre språk starter i sin helhet 8. mai 2019. Se timeplanen kan være her.
  • Innen september 2019 er det planlagt paritet med eksisterende prosjekter for C#, Golang, Java, NodeJS og Python. Det er mye arbeid foran oss, men vi kan klare det hvis vi jobber parallelt. Hvis du er interessert i å delta i dette prosjektet, vennligst registrer deg og gi oss beskjed om hvordan du ønsker å bidra.
  • Når implementeringen på hvert språk er moden, vil de tilsvarende OpenTracing- og OpenCensus-prosjektene bli stengt. Dette betyr at de gamle prosjektene vil fryses, og det nye prosjektet vil fortsette å støtte de eksisterende verktøyene i to år med bakoverkompatibilitet.

Prosjektoversikt

Slå sammen OpenTracing og OpenCensus: The Path to Convergence

Vi gjør en sammenslåing! Det endelige målet er å bringe OpenTracing- og OpenCensus-prosjektene sammen til ett felles prosjekt.
Kjernen i det nye prosjektet vil være et sett med rene og gjennomtenkte grensesnitt, inkludert den tradisjonelle samlingen av biblioteker som implementerer disse grensesnittene i form av såkalte. SDK. Prikken over i-en vil være anbefalte standarder for data og ledningsprotokoller, inkludert felles deler av infrastrukturen.
Resultatet vil bli et komplett telemetrisystem som er egnet for overvåking av mikrotjenester og andre typer moderne distribuerte systemer, kompatibelt med de fleste større OSS og kommersiell backend-programvare.

Viktige hendelser

24.04/XNUMX — Referansekandidat sendt inn til vurdering.
8.05 — Et team blir dannet og begynner å jobbe på alle språk.
20.05 — Offisiell lansering av prosjektet på Kubecon Barcelona.
6.09 – Implementeringer i C#, Golang, Java, NodeJS og Python når paritet med sine motparter.
6.11 - Offisiell fullføring av OpenTracing- og OpenCensus-prosjektene.
20.11 — Avskjedsfest til ære for fullføringen av prosjekter på Observability Summit, Kubecon San Diego.

Tidslinje for konvergens

Slå sammen OpenTracing og OpenCensus: The Path to Convergence

Migrering for hvert språk inkluderer en produksjonsklar SDK-bygging, verktøy for populære biblioteker, dokumentasjon, CI, bakoverkompatibilitetsverktøy og nedleggelse av de relaterte OpenCensus- og OpenTracing-prosjektene ("solnedgang"). Vi satte et ambisiøst mål for september 2019 – å oppnå paritet for C#, Golang, Java, NodeJS og Python-språkene. Vi flytter solnedgangsdatoen til alle språk er klare. Men det er best å unngå dette.
Når du ser på mål, vennligst vurder ditt personlige engasjement, gi oss beskjed ved å fylle ut registreringsskjema, eller ved å si hei i prosjektenes Gitter-chatter OpenTracing и OpenCensus. Du kan se grafen som en infografikk her.

Mål: Første utkast til tverrspråkspesifikasjonen (fullført innen 8. mai)

Det er viktig å jobbe sammen, også når man jobber parallelt på ulike språk. Den tverrspråklige spesifikasjonen gir veiledning for prosjektet. Det høres prosaisk ut, men det garanterer støtte for et sammenhengende system som føles kjent uavhengig av programmeringsspråk.

Obligatoriske krav for første utkast til spesifikasjon for språk X:

  • Definisjoner av generell terminologi.
  • En modell for å beskrive distribuerte transaksjoner, statistikk og beregninger.
  • Avklaringer på viktige problemstillinger som dukket opp under gjennomføringen.

Dette målet blokkerer resten av arbeidet, det første utkastet må være ferdig innen 8. mai.

Mål: Første utkast til dataspesifikasjon (fullført innen 6. juli)

Dataspesifikasjonen definerer et felles dataformat for spor og beregninger slik at data eksportert av alle prosesser kan behandles av samme telemetriinfrastruktur uavhengig av datagenereringsprosessen. Dette inkluderer dataskjemaet for sporingsmodellen beskrevet i tverrspråkspesifikasjonen. Også inkludert er metadatadefinisjoner for vanlige operasjoner som sporingen bruker for å fange opp, for eksempel HTTP-forespørsler, feil og databasespørringer. Disse semantiske konvensjoner er et eksempel.

Det første utkastet er basert på det gjeldende OpenCensus-dataformatet og vil inneholde følgende:

  • Et dataskjema som implementerer en tverrspråkspesifikasjon.
  • Metadatadefinisjoner for vanlige operasjoner.
  • JSON og Protobuf definisjoner.
  • Implementering av referanseklienter.

Vær oppmerksom på at det også er en trådprotokoll som distribuerer spor i båndet, som vi også ønsker å standardisere. Distribusjonsformat Spor-kontekst utviklet gjennom W3C.

Mål: paritet på tvers av alle hovedstøttede språk (fullført innen 6. september)

Vi må oppnå likestilling for dagens språkøkosystem ved å erstatte gamle prosjekter med nye.

  • Grensesnittdefinisjoner for sporing, beregninger og kontekstutbredelse basert på en tverrspråkspesifikasjon.
  • En klar til bruk SDK som implementerer disse grensesnittene og eksporterer Trace-Data. Der det er mulig, vil SDK-en opprettes ved å portere en eksisterende implementering fra OpenCensus.
  • Verktøysett for populære biblioteker som for tiden dekkes i OpenTracing og OpenCensus.

Vi verdsetter også bakoverkompatibilitet og ønsker å sikre en jevn overgang fra eksisterende prosjekter.

  • Den nye SDK-en vil være bakoverkompatibel med gjeldende OpenTracing-grensesnitt. De vil tillate eldre OpenTracing-verktøy å kjøre sammen med nye verktøy i samme prosess, slik at brukerne kan migrere arbeidet sitt over tid.
  • Når den nye SDK-en er klar, vil en oppgraderingsplan bli opprettet for nåværende OpenCensus-brukere. Som med OpenTracing, vil eldre verktøy kunne fortsette å jobbe sammen med nye.
  • Innen november vil både OpenTracing og OpenCensus være stengt for å godta endringer. Bakoverkompatibilitet med eldre verktøy vil bli støttet i to år.

Å lage en best-in-class SDK for hvert språk krever mye arbeid, og det er det vi trenger mest.

Mål: grunnleggende dokumentasjon (fullført innen 6. september)

En kritisk faktor for suksessen til et åpen kildekodeprosjekt er dokumentasjon. Vi vil ha førsteklasses dokumentasjon og opplæringsverktøy, og våre tekniske skribenter er de mest aktive utviklerne på prosjektet. Å lære utviklere hvordan de skal overvåke programvare er en av de viktigste innvirkningene vi ønsker å ha på verden.

Følgende dokumentasjon er minimum som kreves for å komme i gang:

  • Prosjektorientering.
  • Observerbarhet 101.
  • Arbeidets begynnelse.
  • Språkguider (separat for hver).

Forfattere på alle nivåer er velkomne! Vår nye side er basert på Hugo, med vanlig markup, så det er ganske enkelt å bidra.

Mål: Registry v1.0 (fullført innen 6. juli)

Register - en annen kritisk komponent, en forbedret versjon OpenTracing-registeret.

  • Det er enkelt å finne biblioteker, plugins, installatører og andre komponenter.
  • Enkel administrasjon av registerkomponenter.
  • Du kan finne ut hvilke SDK-funksjoner som er tilgjengelige på hvert språk.

Hvis du er interessert i design, grensesnitt og UX, har vi et utmerket prosjekt for personlig deltakelse.

Mål: infrastruktur for programvaretesting og utgivelse (fullført innen 6. september)

For å sikre at vi fortsetter å levere sikker kode som du kan stole på, har vi en designforpliktelse til å bygge kvalitetstesting av programvare og utgivelsespipelines. Gi oss beskjed om du kan ta vare på pipelines for testing, karakterisering og programvareutgivelse. Vi indikerer klart nivået på produksjonsberedskapen, og modenheten til testinfrastrukturen vil være den viktigste avgjørende faktoren for oss.

Mål: avslutte OpenTracing- og OpenCensus-prosjektene (fullført innen 6. november)

Vi planlegger å begynne å stenge gamle prosjekter 6. september, dersom det nye prosjektet når likestilling med dem. 2 måneder senere, med paritet mellom alle språk, planlegger vi å stenge OpenTracing- og OpenCensus-prosjektene. Det skal forstås slik:

  • depotene vil bli frosset og ingen ytterligere endringer vil bli gjort.
  • Det nåværende verktøysettet har planlagt en støtteperiode på to år.
  • brukere vil kunne oppgradere til den nye SDK ved hjelp av de samme verktøyene.
  • En gradvis oppdatering vil være mulig.

Bli med oss

Vi tar gjerne imot all hjelp da dette er et stort prosjekt. Hvis du er interessert i å lære om observerbarhet, er tiden nå inne!

Kilde: www.habr.com

Legg til en kommentar