Компоненти

Основні компоненти, з яких складається OpenTelemetry

OpenTelemetry наразі складається з кількох основних компонентів:

OpenTelemetry дозволяє замінити необхідність у використанні SDK та інструментів від конкретних постачальників для генерації та експорту телеметричних даних.

Специфікація

Описує міжмовні вимоги та очікування для всіх реалізацій. Окрім визначення термінів, специфікація визначає наступне:

  • API: Визначає типи даних та операції для генерації та кореляції даних трасування, метрик та логування.
  • SDK: Визначає вимоги до мовної реалізації API. Тут також визначені концепції конфігурації, обробки даних та експорту.
  • Дані: Визначає протокол OpenTelemetry (OTLP) та незалежні від постачальника семантичні конвенції, які може підтримувати телеметричний бекенд.

Для отримання додаткової інформації дивіться специфікації.

Колектор

Колектор OpenTelemetry є незалежним від постачальника проксі, який може отримувати, обробляти та експортувати телеметричні дані. Він підтримує отримання телеметричних даних у кількох форматах (наприклад, OTLP, Jaeger, Prometheus, а також багато комерційних/пропрієтарних інструментів) та надсилання даних до одного або кількох бекендів. Він також підтримує обробку та фільтрацію даних телеметрії перед їх експортом.

Для отримання додаткової інформації дивіться Колектор.

Мовні API та SDK реалізації

OpenTelemetry також має мовні SDK, які дозволяють використовувати API OpenTelemetry для генерації телеметричних даних за допомогою обраної мови програмування та експорту цих даних до бажаного бекенду. Ці SDK також дозволяють інтегрувати бібліотеки інструментування для поширених бібліотек та фреймворків, які можна використовувати для підключення до ручного інструментування у вашому застосунку.

Для отримання додаткової інформації дивіться Інструментування.

Бібліотеки інструментування

OpenTelemetry підтримує велику кількість компонентів, які генерують відповідні телеметричні дані з популярних бібліотек та фреймворків для підтримуваних мов. Наприклад, вхідні та вихідні HTTP-запити з HTTP-бібліотеки генерують дані про ці запити.

Аспіраційною метою OpenTelemetry є те, щоб усі популярні бібліотеки були стандартно спостережуваними, щоб не було необхідності у використанні окремих залежностей.

Для отримання додаткової інформації дивіться Бібліотеки інструментування.

Експортери

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.

Інструментування без коду

Якщо це можливо, мовна реалізація OpenTelemetry надає спосіб інструментувати ваш застосунок без зміни вихідного коду. Хоча основний механізм залежить від мови, інструментування без коду додає можливості API та SDK OpenTelemetry до вашого застосунку. Крім того, він може додати набір бібліотек інструментування та залежностей експортерів.

Для отримання додаткової інформації дивіться Інструментування без коду.

Детектори ресурсів

Ресурс представляє сутність, що генерує телеметрію як атрибути ресурсу. Наприклад, процес, що генерує телеметрію, який працює у контейнері в Kubernetes, має імʼя Podʼа, простір імен та, можливо, імʼя розгортання. Ви можете включити всі ці атрибути у ресурс.

Мовні реалізації OpenTelemetry забезпечують виявлення ресурсів зі змінної середовища OTEL_RESOURCE_ATTRIBUTES та для багатьох поширених сутностей, таких як процес, служба, хост або операційна система.

Для отримання додаткової інформації дивіться Ресурси.

Кросс-сервісні поширювачі

Поширення — це механізм, який переміщує дані між сервісами та процесами. Хоча це не обмежується трасуванням, поширення дозволяє трейсам будувати причинно-наслідкову інформацію про систему через сервіси, які довільно розподілені, через процеси та мережеві межі.

Для більшості випадків використання поширення контексту відбувається через бібліотеки інструментування. Якщо потрібно, ви можете використовувати поширювачі самостійно для серіалізації та десеріалізації різних аспектів, таких як контекст відрізка та baggage.

Семплери

Вибірка — це процес, який обмежує кількість трейсів, що генеруються системою. Кожна мовна реалізація OpenTelemetry пропонує кілька семплерів заголовків.

Для отримання додаткової інформації дивіться Вибірка.

Kubernetes оператор

Оператор OpenTelemetry є реалізацією оператора Kubernetes. Оператор керує Колектором OpenTelemetry та автоматичним інструментуванням робочих навантажень за допомогою OpenTelemetry.

Для отримання додаткової інформації дивіться K8s Оператор.

Функції як сервіс

OpenTelemetry підтримує різні методи моніторингу функцій як сервісу, що надаються різними хмарними постачальниками. Спільнота OpenTelemetry наразі надає попередньо зібрані шари Lambda, які можуть автоматично інструментувати ваш застосунок, а також опцію окремого шару Колектора Lambda, який можна використовувати при інструментуванні застосунків вручну або автоматично.

Для отримання додаткової інформації дивіться Функції як сервіс.