From the course: Mastering Observability with OpenTelemetry
Understand OpenTelemetry's architecture - OpenTelemetry Tutorial
From the course: Mastering Observability with OpenTelemetry
Understand OpenTelemetry's architecture
- [Instructor] In this video, we will dive deeper into the architecture of OpenTelemetry. First of all, each of these components can be overridden, extended, or replaced. OpenTelemetry was really built to be more like a mix and match toolkit than a monolith. Every component you see is also well-defined through the OpenTelemetry specification. OpenTelemetry comes with libraries for most platforms. These libraries are loaded into your code. For instance, using an import or request statement. The first of all consists of an API that gives you access to the SDK for your language. You can use this API from your code to manually create bands report metrics or metadata. The SDK usually also comes with automatic instrumentation. This means when initialized, it will go ahead and monkey patch whatever it supports and finds. The telemetric data is then picked up by processes. A process is used to collect the data and sometimes aggregate or batch it before it sends it to the exporter. You can use the default processes of OpenTelemetry, but also reaches to your own one. Maybe you want to annotate your spans, you can do it right there. Technically a processor is a callback. From there, you can export the data directly to some backend, like a database or observability vendor, or you can send it to an OpenTelemetry collector using OpenTelemetry standard data format, OTLP. Under the hood, OTLP uses protobuff payloads via HTTP or GOPC. The collector is a standalone component that runs in close proximity to your application, and it can, again aggregate, process and export data from various applications to multiple backends. So these are the basics. We will come back to different aspects of this during this course.