Componente

Componentele principale care alcătuiesc OpenTelemetry

OpenTelemetry este alcătuit în prezent din mai multe componente principale:

OpenTelemetry îți permite să înlocuiești nevoia de SDK-uri și instrumente specifice furnizorului pentru generarea și exportarea datelor de telemetrie.

Specificație

Descrie cerințele și așteptările interlingvistice pentru toate implementările. Dincolo de o definiție a termenilor, specificația definește următoarele:

  • API: Definește tipurile de date și operațiunile pentru generarea și corelarea datelor de urmărire, metrici și înregistrare în jurnal.
  • SDK: Definește cerințele pentru o implementare specifică limbii a API-ului. Conceptele de configurare, procesare a datelor și exportare sunt, de asemenea, definite aici.
  • Data: Definește protocolul OpenTelemetry (OTLP) și convențiile semantice agnostice față de furnizor pentru care un backend de telemetrie poate oferi suport.

Pentru mai multe informații, consultă specificații.

Colector

Colectorul OpenTelemetry este un proxy agnostic față de furnizor care poate primi, procesa și exporta date de telemetrie. Acceptă primirea de date de telemetrie în formate multiple (de exemplu, OTLP, Jaeger, Prometheus, precum și multe instrumente comerciale/proprietare) și trimiterea de date către unul sau mai multe backend-uri. De asemenea, acceptă procesarea și filtrarea datelor de telemetrie înainte de a fi exportate.

Pentru mai multe informații, consultă Colector.

Implementări API și SDK specifice limbajului

OpenTelemetry are, de asemenea, SDK-uri de limbaj care îți permit să utilizezi API-ul OpenTelemetry pentru a genera date de telemetrie în limba aleasă și a exporta aceste date către un backend preferat. Aceste SDK-uri îți permit, de asemenea, să încorporezi biblioteci de instrumentație pentru biblioteci și framework-uri comune pe care le poți utiliza pentru a te conecta la instrumentație manuală în aplicația ta.

Pentru mai multe informații, consultă Instrumentare.

Biblioteci de instrumentație

OpenTelemetry acceptă un număr larg de componente care generează date de telemetrie relevante din biblioteci și framework-uri populare pentru limbajele acceptate. De exemplu, cererile HTTP de intrare și de ieșire dintr-o bibliotecă HTTP generează date despre aceste cereri.

Un obiectiv aspirațional al OpenTelemetry este ca toate bibliotecile populare să fie construite pentru a fi observabile în mod implicit, astfel încât să nu fie necesare dependențe separate.

Pentru mai multe informații, consultă Instrumentare biblioteci.

Exportatori

Send telemetry to the OpenTelemetry Collector to make sure it’s exported correctly. Using the Collector in production environments is a best practice. To visualize your telemetry, export it to a backend such as Jaeger, Zipkin, Prometheus, or a vendor-specific backend.

The registry contains the list of language specific exporters.

Among exporters, OpenTelemetry Protocol (OTLP) exporters are designed with the OpenTelemetry data model in mind, emitting OTel data without any loss of information. Furthermore, many tools that operate on telemetry data support OTLP (such as Prometheus, Jaeger, and most vendors), providing you with a high degree of flexibility when you need it. To learn more about OTLP, see OTLP Specification.

Instrumentarea fără cod

Dacă este cazul, o implementare specifică limbajului OpenTelemetry oferă o modalitate de a instrumenta aplicația ta fără a atinge codul sursă. În timp ce mecanismul de bază depinde de limbaj, instrumentarea fără cod adaugă capacitățile API și SDK OpenTelemetry aplicației tale. În plus, aceasta ar putea adăuga un set de biblioteci de instrumentație și dependențe de exportator.

Pentru mai multe informații, consultă Instrumentarea fără cod.

Detectoare de resurse

O resursă reprezintă entitatea care produce telemetrie ca atribute de resursă. De exemplu, un proces care produce telemetrie care rulează într-un container pe Kubernetes are un nume Pod, un spațiu de nume și eventual un nume de implementare. Poți include toate aceste atribute în resursă.

Implementările specifice limbajului OpenTelemetry oferă detectarea resurselor din variabila de mediu OTEL_RESOURCE_ATTRIBUTES și pentru multe entități comune, cum ar fi timpul de execuție al procesului, serviciul, gazda sau sistemul de operare.

Pentru mai multe informații, consultă Resurse.

Propagatori între servicii

Propagarea este mecanismul care mută datele între servicii și procese. Deși nu se limitează la urmărire, propagarea permite urmărilor să construiască informații cauzale despre un sistem între servicii care sunt distribuite arbitrar între limitele proceselor și rețelei.

Pentru marea majoritate a cazurilor de utilizare, propagarea contextului are loc prin biblioteci de instrumentație. Dacă este necesar, poți utiliza propagatori pentru a serializa și deserializa aspecte transversale, cum ar fi contextul unui interval și bagaj.

Eșantioane

Eșantionarea este un proces care restricționează cantitatea de urme generate de un sistem. Fiecare implementare specifică limbajului OpenTelemetry oferă mai multe eșantioane principale

Pentru mai multe informații, consultă Eșantionare.

Operatorul Kubernetes

Operatorul OpenTelemetry este o implementare a unui Operator Kubernetes. Operatorul gestionează OpenTelemetry Collector și auto-instrumentarea sarcinilor de lucru folosind OpenTelemetry.

Pentru mai multe informații, consultă operator K8s.

Elementele funcției ca serviciu

OpenTelemetry acceptă diverse metode de monitorizare funcție ca serviciu furnizate de diferiți furnizori de cloud. Comunitatea OpenTelemetry oferă în prezent straturi Lambda predefinite capabile să instrumenteze automat aplicația ta, precum și opțiunea unui strat Lambda Collector independent care poate fi utilizat la instrumentarea manuală sau automată a aplicațiilor.

Pentru mai multe informații, consultă Funcții ca serviciu.