Concepts ######## Components ========== Proto ----- * https://github.com/open-telemetry/opentelemetry-proto Specification ------------- Beyond definition of terms, the specification defines the following:: 1. API: Used to generate telemetry data. Defined per data source as well as for other aspects including baggage and propagators. 2. SDK: Implementation of the API with processing and exporting capabilities. Defined per data source as well as for other aspects including resources and configuration. 3. Data: Defines semantic conventions to provide vendor-agnostic implementations as well as the OpenTelemetry protocol (OTLP). Collector --------- The OpenTelemetry Collector offers a vendor-agnostic implementation on how to receive, process, and export telemetry data. Components ^^^^^^^^^^ The Collector is made up of the following components:: 1. receivers: How to get data into the Collector; these can be push or pull based 2. processors: What to do with received data 3. exporters: Where to send received data; these can be push or pull based .. note:: These components are enabled through pipelines. Multiple instances of components as well as pipelines can be defined via YAML configuration. Deployment ^^^^^^^^^^ two primary deployment methods:: 1. Agent A Collector instance running with the application or on the same host as the application (e.g. binary, sidecar, or daemonset). 2. Gateway One or more Collector instances running as a standalone service (e.g. container or deployment) typically per cluster, datacenter or region. Instrumentation Libraries ------------------------- The inspiration of the OpenTelemetry project is to make every library and application observable out of the box by having them call the OpenTelemetry API directly.