Cos'è OpenTelemetry?

Due colleghi in una sala server che guardano un computer portatile

Autori

Chrystal R. China

Staff Writer, Automation & ITOps

IBM Think

Cos'è OpenTelemetry?

OpenTelemetry (OTel) è un framework di observability open source che include una raccolta di kit di sviluppo software (SDK), API indipendenti dal fornitore e altri strumenti per la strumentazione di applicazioni, sistemi e dispositivi.

OTel semplifica il modo in cui vengono raccolti i dati di telemetria, indipendentemente dal linguaggio di programmazione, dall’infrastruttura o dall’ambiente di esecuzione, e consente agli sviluppatori di generare, raccogliere ed esportare dati di telemetria standardizzati per qualsiasi backend di observability. Questo framework standardizzato rafforza ed estende le funzionalità di observability e offre ai team IT e DevOps una maggiore flessibilità.  

OTel viene implementato tra applicazioni, sistemi, dispositivi e soluzioni backend: la storage e la visualizzazione sono intenzionalmente lasciate ad altri strumenti, garantendo alle organizzazioni la libertà di scegliere gli strumenti a loro più adatti.

L’osservabilità è la capacità di ottenere informazioni dettagliate sul funzionamento interno di un sistema mediante l’analisi dei suoi output esterni. Nelle operazioni IT (ITOps) e nel cloud computing, i dati di telemetria (come registri, metriche e tracce) vengono utilizzati per valutare le prestazioni e lo stato di salute di un sistema. I professionisti DevOps si affidano alla strumentazione, aggiungendo codice ad applicazioni e sistemi per produrre e acquisire dati di telemetria, per creare sistemi osservabili.

La messa a punto della strumentazione è spesso un’impresa complessa quando si lavora in ambienti moderni, con ambienti hybrid cloud e multicloud, applicazioni basate su microservizi, contenitori Kubernetes e altre caratteristiche degli ambienti informatici attuali. Questi sistemi distribuiti, e i vari linguaggi di programmazione e runtime che incorporano, rappresentano un osso duro per la strumentazione di rilevamento, per la raccolta e l’esportazione per la memorizzazione di backend, la visualizzazione e l’analisi.

Per acquisire una comprensione completa dei servizi di rete e delle prestazioni delle applicazioni, i tecnici devono configurare una strumentazione ad hoc per applicazioni e sistemi nell’intera infrastruttura. OpenTelemetry aiuta a risolvere questo problema.

OTel fornisce un metodo standard per la raccolta e la trasmissione dei dati di observability, che aiuta a semplificare il monitoraggio nei sistemi distribuiti. Utilizza librerie e API unificate e indipendenti dal fornitore per raccogliere e inviare dati di telemetria alle piattaforme backend.

Adottando OpenTelemetry, i team possono raccogliere ed elaborare in modo uniforme la telemetria su sistemi complessi, indipendentemente dalle applicazioni che gestiscono o dagli strumenti di observability che utilizzano.

Design 3D di palline che rotolano su una pista

Le ultime notizie e insight sull'AI


Scopri notizie e insight selezionati da esperti in materia di AI, cloud e molto altro nella newsletter settimanale Think. 

Perché OpenTelemetry è importante per l'osservabilità?

Il codice della strumentazione variava molto. E poiché nessun singolo fornitore commerciale offriva uno strumento in grado di raccogliere dati da ogni app e servizio su una rete, era difficile per le aziende raccogliere dati in lingue e formati diversi o cambiare backend.

Se, ad esempio, un team di sviluppo volesse sostituire i tool di back-end, dovrebbe ristrutturare completamente il codice e configurare nuovi agenti per inviare dati di telemetria ai nuovi server. Inoltre, questo approccio frammentato creerebbe silos di dati e confusione, rendendo difficile la risoluzione efficace dei problemi prestazionali.

OpenTelemetry ha rappresentato un avanzamento significativo nel campo degli strumenti di osservabilità, in quanto ha standardizzato il modo in cui i dati di telemetria vengono raccolti, analizzati e trasmessi alle piattaforme di backend. 

Il tool fornisce una soluzione open source—basata su criteri stabiliti dalla community—per la raccolta di dati sul comportamento e la sicurezza di un sistema. Ciò consente agli specialisti di semplificare il monitoraggio e l’osservabilità negli ecosistemi distribuiti. Pertanto, OTel offre alle aziende un approccio aperto e omogeneo alla raccolta di dati fondamentali da applicazioni e servizi di rete.

L'evoluzione di OpenTelemetry

OpenTelemetry è stato creato combinando le funzionalità di tracciamento distribuito di OpenTracing e OpenCensus in un unico strumento. 

OpenTracing era un progetto open source progettato dalla Cloud Native Computing Foundation (CNCF) per fornire agli ingegneri un’API indipendente dal fornitore per aggiungere strumentazione di tracciamento distribuita alle applicazioni. Ha stabilito una serie di convenzioni semantiche per contribuire a garantire la coerenza dei dati di telemetria.

Tuttavia, a differenza di OpenTelemetry, OpenTracing non era di per sé un’implementazione di tracing. Piuttosto, forniva delle interfacce che i sistemi di tracciamento potevano implementare per massimizzare la compatibilità tra le piattaforme. OpenTracing è un progetto ormai defunto (che ora incoraggia gli utenti a migrare a OpenTelemetry), ma esistono svariati programmi e soluzioni di tracing che si basano ancora sulle sue API.

OpenCensus è un insieme di librerie di strumentazione, sviluppate da Google, per raccogliere metriche delle applicazioni e tracce distribuite, in grado di esportare dati su diversi backend in tempo reale. Raccoglie dati utilizzando metadati e tag di propagazione coerenti, un concetto che ora esiste in OpenTelemetry come “risorse”.

Con OpenCensus, le applicazioni possono importare ed esportare dati in base ai loro requisiti specifici, garantendo flessibilità nel modo in cui le metriche e le tracce vengono inviate ai backend di observability. OpenCensus non è stato formalmente interrotto come OpenTracing e riceve ancora aggiornamenti regolari di manutenzione e sicurezza. Tuttavia, lo sviluppo attivo si è in gran parte spostato su OpenTelemetry.

Entrambi i progetti miravano ad affrontare lo stesso problema. All’epoca, i team di sviluppo non disponevano di un modo standard per strumentare il codice e trasmettere i dati di telemetria agli strumenti di observability backend.

Tuttavia, nessuno dei due progetti è stato in grado di risolvere questo problema da solo. Così, la CNCF ha sponsorizzato il progetto OpenTelemetry, combinando le migliori caratteristiche di ciascuna soluzione.

OpenTelemetry unisce la standardizzazione delle API di OpenTracing e le capacità di raccolta dati di OpenCensus per fornire una piattaforma unificata per l’invio, la raccolta e il trasferimento dei dati di telemetria verso piattaforme backend di osservabilità.

Che cosa sono i dati di telemetria?

Una parte fondamentale della gestione di reti e applicazioni veloci e ad alta disponibilità è il raggiungimento di un'osservabilità (o visibilità) completa, che richiede l'accesso ai dati di telemetria. Le soluzioni di osservabilità raccolgono, monitorano e analizzano i dati della telemetria per determinare lo stato di salute del sistema, e forniscono poi ai team IT informazioni fruibili per effettuare riparazioni e implementare ottimizzazioni.

Per comprendere più a fondo OpenTelemetry, analizziamo cosa sono i dati di telemetria e come li utilizzano le organizzazioni. OpenTelemetry supporta dati specifici, vale a dire gli output raccolti da log, metriche e tracce (spesso chiamati i "tre pilastri dell'observability").

Metriche

Le metriche sono valutazioni numeriche delle prestazioni di un sistema e dell'utilizzo delle risorse. Esse forniscono una panoramica a volo d'uccello sullo stato di salute della rete, acquisendo indicatori chiave di prestazione (KPI) come la latenza, la perdita di pacchetti, l'utilizzo della larghezza di banda e della CPU di un dispositivo.

Le metriche vengono in genere riepilogate utilizzando dashboard e altre visualizzazioni. Spesso forniscono ai team le prime indicazioni di un problema di prestazioni del sistema o dell'applicazione.

Log

I log sono registrazioni dettagliate di ogni evento o azione che si verifica all'interno dell'ambiente. Forniscono informazioni granulari su ciò che è accaduto, quando si è verificato e dove all'interno della rete, offrendo ai team un contesto prezioso per la risoluzione dei problemi, il debug e l'analisi forense.

I log rivelano le cause alla base dei problemi descrivendo in dettaglio gli eventi di sistema come modifiche alla configurazione del dispositivo, autenticazioni non riuscite e connessioni interrotte.

Tracce

Le tracce catturano il flusso di dati attraverso la rete, fornendo informazioni sul percorso e sul comportamento dei pacchetti mentre attraversano più dispositivi e sistemi. Sono essenziali per comprendere i sistemi distribuiti e diagnosticare i problemi di latenza.

Il data tracing consente ai team IT di visualizzare l'intero percorso di una transazione, dall'inizio alla fine, e contribuisce a individuare i ritardi e gli errori che si verificano all'interno di ambienti complessi e multilivello.

Componenti di OpenTelemetry

OpenTelemetry si basa su diversi componenti e processi per garantire il successo della raccolta dei dati, tra cui:

Application programming interface (API)

Un'API è un insieme di regole o protocolli che consentono alle applicazioni software di comunicare tra loro per scambiare dati, caratteristiche e funzionalità.

OpenTelemetry fornisce API specifiche per ciascun linguaggio, come Java™, Ruby, JavaScript, Python e non solo, che gli sviluppatori possono utilizzare per attrezzare le applicazioni per la raccolta di dati di telemetria. Le API di OpenTelemetry disaccoppiano le app dall'infrastruttura di rete, offrendo ai team la flessibilità di utilizzare qualsiasi endpoint corrisponda al codice di strumentazione.

Kit di sviluppo software (SDK) per lingue

Gli SDK OpenTelemetry consentono agli ingegneri di configurare e personalizzare il comportamento delle API. Gli SDK costituiscono il ponte tra API e raccoglitori e consentono di collegare la strumentazione manuale per le librerie comuni alla strumentazione manuale delle app. 

OTel offre SDK per una serie di linguaggi di programmazione, in modo che gli sviluppatori possano utilizzare le API OTel per generare ed esportare dati di telemetria specifici per il linguaggio e il backend scelti. Gli SDK OTel supportano anche la strumentazione personalizzata per i framework interni non ancora supportati dalla comunità OpenTelemetry.

Collezionisti

Un collettore è un agente che raccoglie i dati di telemetria dalle applicazioni strumentate con OpenTelemetry. Composto da ricevitori, elaboratori, aggregatori ed esportatori, il collettore agisce come intermediario neutrale rispetto al fornitore, ricevendo i dati dalle applicazioni e inoltrandoli alle piattaforme di osservabilità o ad altre destinazioni per l'analisi.

Il raccoglitore OpenTelemetry supporta i pacchetti contrib che gli consentono di acquisire dati in più formati, tra cui OpenTelemetry Protocol (OTLP), Prometheus e Jaeger, ed esportarli in vari backend, a volte contemporaneamente (per ridondanza). I pacchetti contrib sono estensioni di terze parti che forniscono ai team di sviluppo strumentazione, campionatori, propagatori e rilevatori di risorse in un formato di moduli secondari.

Gli agenti di raccolta possono anche elaborare e filtrare i dati di telemetria prima di esportarli per dare priorità alla consegna dei dati più vitali e accelerare i processi di risoluzione dei problemi e debug.

Esportatori

Gli esportatori fanno parte del collettore e sono responsabili dell'invio dei dati di telemetria dell'applicazione a uno o più backend di osservabilità specificati. Mentre i collettori gestiscono il flusso di dati complessivo, gli esportatori danno la priorità alla trasmissione dei dati verso la destinazione.

Gli esportatori di dati OpenTelemetry disaccoppiano la strumentazione dalle configurazioni di backend e convertono i dati nel formato appropriato per ciascuna piattaforma di observability (convertendo le tracce nel protocollo Zipkin, ad esempio). Queste dinamiche consentono all'agente di raccolta di inviare gli stessi dati di telemetria a più backend, semplificando la modifica delle destinazioni senza alterare la logica di strumentazione del codice.

Strumentazione automatica

La strumentazione automatica fornisce librerie e framework già pronti che consentono alle app di generare automaticamente dati di telemetria con cambi di codice minimi o no-code. Questo processo semplifica la strumentazione per gli sviluppatori, riducendo e talvolta eliminando le attività di programmazione manuale.

Tuttavia, l'autostrumentazione potrebbe offrire un minor controllo su determinati tipi di raccolta dati rispetto alla strumentazione manuale. L'ampiezza della strumentazione automatica può variare anche in base ai tempi di esecuzione dei linguaggi, agli ambienti informatici e ai livelli di supporto della comunità per i framework di osservabilità.

Come funziona OpenTelemetry?

OpenTelemetry funziona combinando API, SDK, collettori e processi di strumentazione automatica per estrarre i dati e inviarli al sistema di destinazione.

Innanzitutto, il team DevOps utilizza il codice dell’applicazione con le API OTel, specificando quali metriche, tracce e log raccogliere e come raccoglierli. L’agente di raccolta OTel SDK raccoglie i dati e li prepara per l’elaborazione e l’esportazione, quindi campiona, filtra e correla i dati con le dipendenze e altre origini dati.

Quando i dati elaborati sono formattati correttamente, l’SDK li raggruppa in batch basati sul tempo (in cui vengono sottoposti a ulteriori filtri, se necessario) e li invia al sistema backend designato.

Vantaggi di OpenTelemetry

L’obiettivo principale di OpenTelemetry è raccogliere ed esportare dati di telemetria e migliorare l’osservabilità, fornendo alle organizzazioni uno strumento che faciliti la neutralità dei fornitori e l’integrazione di piattaforme e strumenti. Aiuta i team DevOps e i tecnici per l’affidabilità dei siti (Site reliability engineers, SRE) a gestire ed eseguire il debug di applicazioni e sistemi, in modo che possano prendere decisioni più informate e rimanere agili al mutare delle esigenze di business.

Ad esempio, i vantaggi di OTel consentono di:

  • Implementare una raccolta dati coerente. OpenTelemetry consente ai team di raccogliere dati di telemetria in modo coerente tra diverse app, sistemi e casi d’uso.
  • Evitare il blocco da fornitore. OTel è una soluzione indipendente dal fornitore che consente agli sviluppatori di cambiare gli strumenti e i provider di observability di backend senza apportare modifiche significative al codice della strumentazione.
  • Semplificare l’observability. OTel semplifica l’observability raccogliendo dati di telemetria senza richiedere al personale IT di modificare il codice sorgente o i metadati. Consente inoltre agli sviluppatori di mantenere la visibilità full stack, indipendentemente dai backend di observability o dai fornitori utilizzati.
  • Rendere gli ecosistemi IT a prova di futuro. Poiché OpenTelemetry è supportato da una comunità open source e dalla CNCF, è fatto per evolversi man mano che le tecnologie e le esigenze di observability cambiano. Ad esempio, OTel ha recentemente aggiunto la profilazione continua al suo gruppo di segnali di telemetria primari.1
  • Monitorare l’utilizzo delle risorse. OpenTelemetry può acquisire richieste di dati tra server per classificare l’utilizzo delle risorse per gruppi, aiutando i team IT a monitorare l’utilizzo tra sistemi condivisi.
  • Dare priorità alle richieste di dati. OpenTelemetry può creare una pipeline di classificazione delle priorità per le richieste di dati all’interno dell’architettura in modo che le richieste concorrenti attraversino la rete in ordine di criticità della missione.
  • Amplia l’accesso ai dati di monitoraggio. Con OTel, gli sviluppatori possono monitorare i dati di telemetria e ricevere avvisi su qualsiasi browser web o dispositivo, cosa che agevola il monitoraggio in tempo reale delle prestazioni del software e dello stato di salute del sistema.
Mixture of Experts | 12 dicembre, episodio 85

Decoding AI: Weekly News Roundup

Unisciti al nostro gruppo di livello mondiale di ingegneri, ricercatori, leader di prodotto e molti altri mentre si fanno strada nell'enorme quantità di informazioni sull'AI per darti le ultime notizie e gli ultimi insight sull'argomento.

Soluzioni correlate
OpenTelemetry

Ottimizza le operazioni e le prestazioni delle tue applicazioni cloud-native con OpenTelemetry su IBM Instana Observability.

    Esplora OpenTelemetry
    Soluzione IBM Observability

    Aumenta al massimo la resilienza operativa e assicura lo stato di salute delle applicazioni cloud-native attraverso l'osservabilità basata su AI.

      Esplora la soluzione IBM Observability
      IBM Consulting AIOps

      Migliora l'automazione e le operazioni IT con l'AI generativa, allineando tutti gli aspetti della tua infrastruttura IT alle priorità aziendali.

      Esplora IBM Consulting AIOps
      Prossimi passi

      Sblocca le prestazioni delle applicazioni cloud-native con osservabilità automatizzata e basata su AI.

      Esplora IBM Instana Prova Instana