Unire OpenTracing e OpenCensus: il percorso verso la convergenza

Unire OpenTracing e OpenCensus: il percorso verso la convergenza

Autori: Ted Young, Pritam Shah e il Comitato per le Specifiche Tecniche (Carlos Alberto, Bogdan Drutu, Sergei Kanzhelev e Yuri Shkuro).

Il progetto comune ha acquisito il nome: http://opentelemetry.io

Molto, molto brevemente:

  • Stiamo creando un nuovo set unificato di librerie e specifiche per le funzionalità di monitoraggio della telemetria. Unirà i progetti OpenTracing e OpenCensus e fornirà un percorso supportato per la migrazione.
  • L'implementazione di riferimento in Java sarà disponibile il 24 aprile, mentre il lavoro sulle implementazioni in altri linguaggi inizierà completamente l'8 maggio 2019. Visualizza il programma qui.
  • Entro settembre 2019 è prevista la parità con i progetti esistenti per C#, Golang, Java, NodeJS e Python. C’è molto lavoro davanti a noi, ma possiamo farcela se lavoriamo in parallelo. Se sei interessato a partecipare a questo progetto, registrati e facci sapere come vorresti contribuire.
  • Una volta che l'implementazione in ciascuna lingua sarà matura, i corrispondenti progetti OpenTracing e OpenCensus verranno chiusi. Ciò significa che i vecchi progetti verranno congelati e il nuovo progetto continuerà a supportare gli strumenti esistenti per due anni utilizzando la compatibilità con le versioni precedenti.

progetto Panoramica

Unire OpenTracing e OpenCensus: il percorso verso la convergenza

Stiamo facendo una fusione! L'obiettivo finale è riunire i progetti OpenTracing e OpenCensus in un unico progetto comune.
Il nucleo del nuovo progetto sarà un insieme di interfacce pulite e ponderate, incluso il tradizionale assemblaggio di librerie che implementano queste interfacce sotto forma di cosiddette. SDK. La ciliegina sulla torta saranno gli standard consigliati per i protocolli dati e cablati, comprese le parti comuni dell'infrastruttura.
Il risultato sarà un sistema di telemetria completo adatto al monitoraggio di microservizi e altri tipi di moderni sistemi distribuiti, compatibile con la maggior parte dei principali OSS e software di backend commerciale.

Principali eventi

24.04/XNUMX — Candidato di riferimento inviato per la revisione.
8.05 — Si forma una squadra e si inizia a lavorare in tutte le lingue.
20.05 — Lancio ufficiale del progetto al Kubecon Barcellona.
6.09 - Le implementazioni in C#, Golang, Java, NodeJS e Python raggiungono la parità con le loro controparti.
6.11 - Completamento ufficiale dei progetti OpenTracing e OpenCensus.
20.11 — Festa di addio in onore del completamento dei progetti all'Observability Summit, Kubecon San Diego.

Cronologia della convergenza

Unire OpenTracing e OpenCensus: il percorso verso la convergenza

La migrazione per ciascuna lingua include una build SDK pronta per la produzione, strumenti per le librerie più diffuse, documentazione, CI, strumenti di compatibilità con le versioni precedenti e la chiusura dei relativi progetti OpenCensus e OpenTracing ("tramonto"). Ci siamo posti un obiettivo ambizioso per settembre 2019: raggiungere la parità per i linguaggi C#, Golang, Java, NodeJS e Python. Sposteremo la data di tramonto finché tutte le lingue non saranno pronte. Ma è preferibile evitare questo.
Quando visualizzi gli obiettivi, considera il tuo coinvolgimento personale, faccelo sapere compilando Modulo di registrazioneo salutando nelle chat Gitter dei progetti Tracciamento aperto и Censimento aperto. Puoi visualizzare il grafico come un'infografica qui.

Obiettivo: prima bozza delle specifiche multilingue (completamento entro l'8 maggio)

È importante lavorare in modo coeso, anche quando si lavora in parallelo in lingue diverse. La specifica multilingue fornisce una guida per il progetto. Sembra banale, ma garantisce il supporto per un sistema coerente che risulta familiare indipendentemente dal linguaggio di programmazione.

Requisiti obbligatori per la prima bozza di specifica per la lingua X:

  • Definizioni della terminologia generale.
  • Un modello per descrivere transazioni distribuite, statistiche e metriche.
  • Chiarimenti su questioni importanti emerse durante l'attuazione.

Questo obiettivo sta bloccando il resto dei lavori, la prima bozza dovrà essere completata entro l'8 maggio.

Obiettivo: prima bozza per la specifica dei dati (completamento entro il 6 luglio)

La specifica dei dati definisce un formato dati comune per tracce 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. Ciò include lo schema dei dati per il modello di traccia descritto nella specifica multilingue. Sono incluse anche le definizioni dei metadati per le operazioni comuni utilizzate dalla traccia per acquisire, come richieste HTTP, errori e query di database. Questi convenzioni semantiche sono un esempio.

La prima bozza si basa sull'attuale formato dati OpenCensus e conterrà quanto segue:

  • Uno schema di dati che implementa una specifica multilingue.
  • Definizioni di metadati per operazioni comuni.
  • Definizioni JSON e Protobuf.
  • Implementazione dei client di riferimento.

Tieni presente che esiste anche un protocollo cablato che distribuisce le tracce in banda, che vorremmo standardizzare anch'esso. Formato di distribuzione Traccia-Contesto sviluppato attraverso il W3C.

Obiettivo: parità tra tutte le principali lingue supportate (completamento entro il 6 settembre)

Dobbiamo raggiungere la parità per l’attuale ecosistema linguistico sostituendo i vecchi progetti con altri nuovi.

  • Definizioni dell'interfaccia per tracciamento, metrica e propagazione del contesto basate su una specifica multilingue.
  • Un SDK pronto all'uso che implementa queste interfacce ed esporta Trace-Data. Ove possibile, l'SDK verrà creato eseguendo il porting di un'implementazione esistente da OpenCensus.
  • Toolkit per le biblioteche più popolari attualmente coperte da OpenTracing e OpenCensus.

Apprezziamo anche la compatibilità con le versioni precedenti e desideriamo garantire una transizione graduale dai progetti esistenti.

  • Il nuovo SDK sarà retrocompatibile con le attuali interfacce OpenTracing. Consentiranno agli strumenti OpenTracing legacy di funzionare insieme a nuovi strumenti nello stesso processo, consentendo agli utenti di migrare il proprio lavoro nel tempo.
  • Quando il nuovo SDK sarà pronto, verrà creato un piano di aggiornamento per gli attuali utenti di OpenCensus. Come con OpenTracing, gli strumenti legacy potranno continuare a funzionare insieme a quelli nuovi.
  • Entro novembre, sia OpenTracing che OpenCensus non potranno più accettare modifiche. La compatibilità con le versioni precedenti con gli strumenti legacy sarà supportata per due anni.

Creare un SDK di altissimo livello per ogni lingua richiede molto lavoro ed è ciò di cui abbiamo più bisogno.

Obiettivo: documentazione di base (completamento entro il 6 settembre)

Un fattore critico per il successo di qualsiasi progetto open source è la documentazione. Vogliamo documentazione e strumenti di formazione di prim'ordine e i nostri redattori tecnici sono gli sviluppatori più attivi del progetto. Insegnare agli sviluppatori come monitorare correttamente il software è uno degli impatti più importanti che vogliamo avere sul mondo.

I seguenti documenti rappresentano il minimo richiesto per iniziare:

  • Orientamento al progetto.
  • Osservabilità 101.
  • Inizio del lavoro.
  • Guide linguistiche (separatamente per ciascuna).

Gli scrittori di tutti i livelli sono i benvenuti! Il nostro nuovo sito è basato su Hugo e utilizza markup regolare, quindi è abbastanza semplice contribuire.

Obiettivo: Registro v1.0 (completamento entro il 6 luglio)

Registro: un altro componente critico, una versione migliorata Registro OpenTracing.

  • È facile trovare librerie, plugin, programmi di installazione e altri componenti.
  • Facile gestione dei componenti del Registro.
  • Puoi scoprire quali funzionalità dell'SDK sono disponibili in ciascuna lingua.

Se sei interessato al design, all'interfaccia e alla UX, abbiamo un eccellente progetto per la partecipazione personale.

Obiettivo: infrastruttura per test e rilascio del software (completamento entro il 6 settembre)

Per garantire di continuare a fornire codice sicuro su cui puoi fare affidamento, ci impegniamo a creare pipeline di test e rilascio di software di qualità. Fateci sapere se potete occuparvi delle pipeline per test, caratterizzazione e rilascio del software. Indichiamo chiaramente il livello di preparazione alla produzione e la maturità dell'infrastruttura di test sarà per noi il principale fattore decisivo.

Obiettivo: chiudere i progetti OpenTracing e OpenCensus (conclusione entro il 6 novembre)

Prevediamo di iniziare a chiudere i vecchi progetti il ​​6 settembre, se il nuovo progetto raggiungerà la parità con essi. Due mesi dopo, con la parità di tutte le lingue, prevediamo di chiudere i progetti OpenTracing e OpenCensus. Dovrebbe essere inteso in questo modo:

  • i repository verranno congelati e non verranno apportate ulteriori modifiche.
  • Per l’attuale toolkit è previsto un periodo di supporto di due anni.
  • gli utenti potranno eseguire l'aggiornamento al nuovo SDK utilizzando gli stessi strumenti.
  • Sarà possibile un aggiornamento graduale.

Iscriviti ora

Daremo il benvenuto a qualsiasi aiuto poiché si tratta di un progetto enorme. Se sei interessato a conoscere l'osservabilità, ora è il momento!

Fonte: habr.com

Aggiungi un commento