Що таке OpenTelemetry?

Коротке пояснення, чим є та чим не є OpenTelemetry.

OpenTelemetry це:

  • Фреймворк та інструментарій Спостережуваності, призначений для створення та управління телеметричними даними, такими як трейси, метрики та логи.
  • Діагностики постачальників та інструментів, що означає, що його можна використовувати з широким спектром бекендів спостережуваності, включаючи інструменти з відкритим вихідним кодом, такі як Jaeger та Prometheus, а також комерційними пропозиціями.
  • Не є бекендом спостережуваності, як Jaeger, Prometheus або інші комерційні постачальники.
  • Фреймворк зосереджений на генерації, зборі, управлінні та експорті телеметрії. Основна мета OpenTelemetry полягає в тому, щоб ви могли легко інструментувати свої застосунки або системи, незалежно від мови, за допомогою якої вони створені, інфраструктури або середовища виконання. Зберігання та візуалізація телеметрії навмисно залишені для інших інструментів.

Що таке спостережуваність

Спостережність — це можливість розуміти внутрішній стан системи, досліджуючи її вивід. У контексті програмного забезпечення це означає можливість розуміти внутрішній стан системи, досліджуючи її телеметричні дані, які включають трейси, метрики та логи.

Для того, щоб зробити систему спостережуваною, її необхідно інструментувати. Це означає, що код повинен генерувати трейси, метрики або логи. Зібрані дані потім повинні бути відправлені до бекенду спостережуваності.

Чому OpenTelemetry?

З підвищенням популярності хмарних обчислень, мікросервісних архітектур та все складніших бізнес-вимог, потреба у спостережуваності програмного забезпечення та інфраструктури більша, ніж будь-коли.

OpenTelemetry задовольняє потребу у спостережуваності, дотримуючись двох ключових принципів:

  1. Ви володієте даними, які генеруєте. Ви не залежите від постачальника.
  2. Вам потрібно вивчити лише один набір API та домовленостей.

Обидва принципи разом надають командам та організаціям гнучкість, якої вони потребують у сучасному світі обчислень.

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

Основні компоненти OpenTelemetry

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

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

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

Розширюваність

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

  • Додавання приймача до колектора OpenTelemetry для підтримки телеметричних даних з власного джерела
  • Завантаження власних бібліотек інструментування в SDK
  • Створення дистрибутиву SDK або колектора, призначеного для конкретного використання
  • Створення нового експортера для власного бекенду, який ще не підтримує протокол OpenTelemetry (OTLP)
  • Створення власного розповсюджувача для нестандартного формату передачі контексту

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

Історія

OpenTelemetry є проєктом Cloud Native Computing Foundation (CNCF), який виник в результаті злиття двох попередніх проєктів, OpenTracing та OpenCensus. Обидва ці проєкти були створені для вирішення однієї й тієї ж проблеми: відсутності стандарту для інструментування коду та надсилання телеметричних даних до бекенду спостережуваності. Оскільки жоден з проєктів не міг повністю розвʼязати проблему самостійно, вони обʼєдналися, щоб створити OpenTelemetry та поєднати свої сили, пропонуючи одне рішення.

У випадку якщо ви вже використовуєте OpenTracing або OpenCensus, ви можете дізнатися, як перейти на OpenTelemetry в Посібнику з міграції.

Що далі?