
Autori: Ted Yang, Pritam Shah e il "Comitato delle specifiche tecniche" (Carlos Alberto, Bogdan Drutu, Sergei Kanzhelev e Yuri Shkuro).
Il progetto congiunto ha un nuovo nome:
Molto, molto brevemente:
- Stiamo creando un nuovo set unificato di librerie e specifiche per il monitoraggio della telemetria. Questo combinerà i progetti OpenTracing e OpenCensus e fornirà un modo supportato per la migrazione.
- L'implementazione di riferimento in Java sarà disponibile il 24 aprile, mentre il lavoro sulle implementazioni in altre lingue inizierà a partire dall'8 maggio 2019. Per vedere il programma .
- Entro settembre 2019 è previsto il paritetico con i progetti esistenti per C#, Golang, Java, NodeJS e Python. Ci attende un sacco di lavoro, ma ce la faremo se lavoriamo in parallelo. Se sei interessato a partecipare a questo progetto, ti preghiamo di registrarti e farci sapere come desideri contribuire.
- Quando l'implementazione in ogni lingua sarà matura, i rispettivi progetti OpenTracing e OpenCensus saranno chiusi. Ciò significa il congelamento dei vecchi progetti, mentre il nuovo progetto continuerà a supportare gli strumenti esistenti per due anni, utilizzando la compatibilità retroattiva.
Panoramica del progetto

Stiamo unendo le forze! L'obiettivo principale è fondere i progetti OpenTracing e OpenCensus in un unico progetto comune.
Il cuore del nuovo progetto sarà un insieme di interfacce chiare e ben pensate, comprese le tradizionali librerie che implementano queste interfacce sotto forma di cosiddette SDK. La ciliegina sulla torta saranno gli standard raccomandati per i dati e i protocolli wire, comprese le parti comuni dell'infrastruttura.
Il risultato sarà un sistema di telemetria completo, adatto per il monitoraggio di microservizi e altri tipi di sistemi distribuiti moderni, compatibile con la maggior parte dei principali software OSS e commerciali.
Eventi principali
24.04 — Candidato di riferimento fornito per la revisione.
8.05 — Formazione della squadra che inizia a lavorare in tutte le lingue.
20.05 — Lancio ufficiale del progetto a Kubecon Barcellona.
6.09 — Implementazioni in C#, Golang, Java, NodeJS e Python raggiungono parità con le controparti.
6.11 — Chiusura ufficiale dei progetti OpenTracing e OpenCensus.
20.11 — Festa di addio per la conclusione dei progetti all'Observability Summit, Kubecon San Diego.
Cronologia della convergenza
La migrazione per ogni linguaggio include la raccolta di un SDK pronto per l'implementazione industriale, strumenti per le librerie più popolari, documentazione, CI, mezzi di retrocompatibilità e la chiusura dei progetti correlati OpenCensus e OpenTracing ("declino"). Abbiamo fissato un obiettivo ambizioso per settembre 2019: raggiungere la parità per i linguaggi C#, Golang, Java, NodeJS e Python. Sposteremo la data del "declino" fino a quando tutti i linguaggi non saranno pronti. Tuttavia, è preferibile evitare questo.
Quando esamini gli obiettivi, ti preghiamo di considerare il tuo personale coinvolgimento, faccelo sapere compilando , o salutando nelle chat Gitter dei progetti e . Puoi visualizzare il programma in formato infografico .
Obiettivo: prima bozza della specifica interlinguistica (conclusione entro l'8 maggio)
È importante lavorare insieme, anche quando si lavora in parallelo su linguaggi diversi. La specifica interlinguistica fornisce linee guida per il progetto. Può sembrare prosaica, ma è una garanzia di supporto per un sistema coerente che appare familiare indipendentemente dal linguaggio di programmazione.
Requisiti obbligatori per la prima bozza della specifica per il linguaggio X:
- Definizioni della terminologia comune.
- Modello per descrivere transazioni distribuite, statistiche e metriche.
- Chiarimenti su questioni importanti emerse durante l'implementazione.
Questo obiettivo blocca tutti gli altri lavori, la prima bozza deve essere completata entro l'8 maggio.
Obiettivo: prima bozza per la specifica dei dati (conclusione entro il 6 luglio)
La specifica dei dati definisce un formato di dati comune per tracciamenti e metriche, in modo che i dati esportati da tutti i processi possano essere elaborati dalla stessa infrastruttura di telemetria indipendentemente dal processo di generazione dei dati. Qui è inclusa la schema dei dati per il modello di tracciamento, descritta nella specifica interlinguistica. Sono incluse anche le definizioni dei metadati per le operazioni comuni, come le richieste HTTP, gli errori e le richieste al database. Questi sono un esempio.
La prima bozza si basa sul formato dati attuale di OpenCensus e conterrà quanto segue:
- Schema dei dati che implementa la specifica interlinguistica.
- Definizioni dei metadati per le operazioni comuni.
- Definizioni JSON e Protobuf.
- Implementazione di client di riferimento.
Si prega di notare che esiste anche un protocollo cablato che distribuisce le tracciature in banda e che desideriamo standardizzare anche noi. Formato di distribuzione è sviluppato tramite W3C.
Obiettivo: parità in tutte le lingue principali supportate (completamento entro il 6 settembre)
Dobbiamo raggiungere la parità per l'attuale ecosistema linguistico, sostituendo i vecchi progetti con i nuovi.
- Definizioni dell'interfaccia per la tracciatura, le metriche e la distribuzione del contesto basate sulla specifica interlinguistica.
- SDK pronto all'uso che implementa queste interfacce, esportando i dati di tracciamento. Quando possibile, l'SDK sarà creato trasferendo l'implementazione esistente da OpenCensus.
- Toolkit per le popolari librerie attualmente coperte in OpenTracing e OpenCensus.
Valutiamo anche la retrocompatibilità e vogliamo garantire una transizione fluida dai progetti esistenti.
- Il nuovo SDK avrà strumenti di retrocompatibilità con le attuali interfacce OpenTracing. Questi permetteranno agli strumenti obsoleti di OpenTracing di funzionare insieme ai nuovi strumenti nello stesso processo, consentendo agli utenti di migrare gradualmente il proprio lavoro.
- Quando il nuovo SDK sarà pronto, verrà creato un piano di aggiornamento per gli attuali utenti di OpenCensus. Come per OpenTracing, gli strumenti obsoleti potranno continuare a funzionare insieme ai nuovi.
- Entro novembre, sia OpenTracing che OpenCensus saranno chiusi per l'accettazione di modifiche. La retrocompatibilità con gli strumenti obsoleti sarà supportata per due anni.
Creare un SDK migliore della sua categoria per ogni lingua richiede un enorme sforzo, ed è proprio di questo che abbiamo più bisogno.
Obiettivo: documentazione principale (completamento entro il 6 settembre)
Un fattore critico per il successo di qualsiasi progetto open source è la documentazione. Vogliamo avere documentazione di prima classe e strumenti per la formazione; i nostri scrittori tecnici sono gli sviluppatori più attivi del progetto. Formare gli sviluppatori su come osservare correttamente il software è uno degli impatti più importanti che vogliamo avere sul mondo.
Le seguenti parti della documentazione sono minimamente necessarie per iniziare:
- Orientamento del progetto.
- Osservabilità 101.
- Iniziare.
- Guide ai linguaggi (uno per ciascuno).
Invitiamo scrittori di ogni livello! Il nostro nuovo sito è basato su Hugo, utilizzando una normale markup, quindi è molto facile contribuire.
Obiettivo: Registry v1.0 (conclusione entro il 6 luglio)
Registry — un altro componente critico, una versione migliorata .
- Facile trovare librerie, plugin, installer e altri componenti.
- Gestione semplice dei componenti del Registry.
- Puoi scoprire quali funzioni SDK sono disponibili in ciascun linguaggio.
Se sei interessato al design, all'interfaccia utente e UX — abbiamo un ottimo progetto per un coinvolgimento personale.
Obiettivo: infrastruttura per il testing e rilascio software (conclusione entro il 6 settembre)
Per continuare a fornire codice sicuro e affidabile, abbiamo un impegno progettuale per creare pipeline di qualità per il testing e rilascio software. Ti preghiamo di farci sapere se puoi occuparti delle pipeline per il testing, la misurazione delle performance e il rilascio software. Definiamo chiaramente il livello di prontezza per la produzione, e la maturità dell'infrastruttura di testing sarà un fattore determinante per noi.
Obiettivo: chiusura dei progetti OpenTracing e OpenCensus (conclusione entro il 6 novembre)
Pianifichiamo di iniziare la chiusura dei progetti obsoleti dal 6 settembre, se il nuovo progetto raggiunge la parità con loro. Due mesi dopo, con parità di tutti i linguaggi, pianifichiamo la chiusura dei progetti OpenTracing e OpenCensus. Questo deve essere inteso così:
- i repository saranno bloccati, non saranno più effettuate modifiche.
- per l'attuale toolset è previsto un periodo di supporto di due anni.
- gli utenti potranno aggiornarsi al nuovo SDK utilizzando il precedente toolset.
- sarà possibile un aggiornamento graduale.
Unisciti a noi
Saremo lieti di qualsiasi aiuto, poiché si tratta di un progetto enorme. Se sei interessato a saperne di più sull'osservabilità — ora è il momento!
- Compila per partecipare direttamente e unirti al team.
- Contattaci sui canali e Gitter.
- Scopri , attualmente in fase di sviluppo.
Fonte: habr.com
