• Час читання ~1 хв
  • 10.04.2023

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

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

Мета полягає в тому, щоб дозволити розробникам один раз написати код, а потім розгорнути його в будь-якому місці за своїм вибором. Немає необхідності займатися різними операційними системами та мовами.

Сучасний станOpenTelemetry OpenTelemetry

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

Кожен з них незалежний, але вони мають деякі стандартні функції. Як результат, частоти випуску є груповими. Різні частини OpenTelemetries можуть перебувати на різних стадіях циклу зрілості.

  • Компоненти проекту ще не додані до специфікації. Вони все ще знаходяться на стадії планування.
  • Експериментальні компоненти були випущені, але доступні лише для бета-тестування.
  • Стабільні компоненти зворотно сумісні і покриті довгостроковою підтримкою.
  • Застарілі компоненти можуть бути видалені в майбутньому, хоча вони стабільні.

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

Визначення OpenTelemetry було оновлено до версії 1.0 у квітні 2020 року, тоді команда також розпочала роботу над процесом додавання повідомлень журналу.

Станом на травень 2019 року в даний час не було планів щодо впровадження будь-яких подальших видів телеметрії.

Концепції

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

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

Глибокий і широкий

Ви маєте доступ до найрізноманітніших матеріалів при використанні OpenTelemetry.

Оскільки він є відкритим вихідним кодом, ви можете скористатися роботою понад 100 000 учасників.

Підвищений захист, підвищена адаптивність і повсюдність є відмінними рисами цієї системи - це одна з обіцянок OpenTelemetry.

Оперативна сумісність Крім того, ви також отримуєте повну видимість

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

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

Гнучкість

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

Нові технології

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

Зручність

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

Автоматичні та ручні контрольно-вимірювальні прилади

У OpenTelemetry є можливість як автоматичного, так і ручного приладобудування.

Автоматичні контрольно-вимірювальні прилади

OpenTelemetry Automatic Instrumentation - це інструмент, який можна використовувати для автоматичного генерування телеметричних даних з вашої програми. Згенеровані дані телеметрії потім будуть відправлені на сервер OpenTelemetry для зберігання та подальшого аналізу.

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

Ручні контрольно-вимірювальні прилади OpenTelemetry Manual Instrumentation — це інструмент командного рядка, який розробники

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

Подібності та ключові відмінності

Почнемо з того, що ці інструменти надають схожі функції. Наприклад, обидва інструменти можуть збирати різні типи телеметричних даних, такі як сліди, лічильники, датчики та гістограми. Крім того, обидва інструменти можуть експортувати ці дані в різні формати, такі як JSON, CSV, YAML тощо.

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

З іншого боку, ручна апаратура OpenTelemetry вимагає написання власних сценаріїв або програм для створення власних правил приладів. Потім двигун приладів виконує ці правила для генерації телеметричних даних.

Що слід використовувати?

That’s up to you. Автоматичні контрольно-вимірювальні прилади is undoubtedly easier to use and leaves little room for error. However, it means that you cannot control precisely what gets instrumented. It may cause problems if you need to know exactly where your telemetry data comes from. Also, since the automated instrumentation relies heavily on static analysis, it may miss out on certain dynamic aspects of your application.

Ручні контрольно-вимірювальні прилади OpenTelemetry Manual Instrumentation — це інструмент командного рядка, який розробники provides more control but takes time to set up. You must first understand the instrumentation requirements of your application before writing any instrumentation rules. Then, once you have written those rules, you must run them against your codebase using the manual instrumentation tool. Next, you must ensure that all the required instrumentation rules exist in your codebase. Finally, you must verify that the instrumentation works correctly.

Це важкий дзвінок, який залежить від того, що ви хочете від приладів. Вибір контрольно-вимірювальних приладів також може залежати від вашого часу та ресурсів. Бракує часу чи навичок? Автоматична - це відповідь. Потрібне більш індивідуальне рішення? Ручний буде шляхом вперед.

Підтримувані фреймворки та мови

SDK OpenTelemetry підтримує 11 мов програмування: Java, Go, Python, C#, Ruby, NodeJS, PHP, Swift, Rust, Haskell та Erlang. Кожен з них має свій специфічний API.

SDK OpenTelemetry дозволяють генерувати телеметричні дані за допомогою механізму контрольно-вимірювальних приладів. Вони також дозволяють інтегрувати OpenTelemetry з існуючими системами.

API дозволяє визначати та додавати нові правила контрольно-вимірювальних приладів до двигуна контрольно-вимірювальних приладів. Це також дозволяє отримати останню версію правил контрольно-вимірювальних приладів за допомогою HTTP-запитів.

Колектор OpenTelemetry отримує, обробляє та експортує телеметричні дані в різні пункти призначення, а потім колектор OpenTelemetry використовує їх. Нарешті, протокол OTLP призначений для доставки телеметричних даних.

Найкращі практики

Після того, як ви вирішили використовувати OpenTelemetry, вам слід дотримуватися деяких найкращих практик, щоб отримати максимальну віддачу від вашого користувацького досвіду. Ось три поради:

Використовуйте правильні версії

Окрім використання правильного SDK та API для мови програмування, вам потрібно використовувати правильний SDK для вашої операційної системи. Існують SDK для Windows, Linux, macOS, Android, iOS та Raspberry Pi. Переконайтеся, що ви використовуєте правильні та найновіші версії.

Використання семантичних атрибутів Ви можете використовувати семантичні атрибути

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

Зосередьтеся на рівнях обслуговування Збираючи дані телеметрії, зосередьтеся на рівнях

обслуговування, а не на окремих подіях. Наприклад, не просто записуйте повідомлення про помилку під час відстеження події помилки. Замість цього відстежуйте контекст навколо помилки та її вплив на користувача. Якщо можливо, спробуйте зібрати цю інформацію на рівні запиту.

висновок Ми

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

Якщо ви шукаєте перспективний інструмент моніторингу, ми рекомендуємо спробувати TelemetryHub, який підтримується OpenTelemetry. З іншого боку, якщо ви хочете контролювати свої системи, але не знаєте, з чого почати, Scout APM створений розробниками для розробників.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Про автора CrazyBoy49z
WORK EXPERIENCE
Контакти
Ukraine, Lutsk
+380979856297