• Время чтения ~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 Автоматическое контрольно-измерительные приборы - это инструмент, который можно использовать для автоматического создания данных телеметрии из вашего приложения. Сгенерированные данные телеметрии будут отправлены на сервер OpenTelemetry для хранения и дальнейшего анализа.

Это гарантирует, что сервер OpenTelemetry всегда будет следить за вашим приложением. Кроме того, собранные данные телеметрии хранятся в базе данных OpenTelemetry.

Ручное инструментирование

Средство ручного инструментирования OpenTelemetry — это средство командной строки, которое разработчики могут использовать для ручного создания данных телеметрии из своих приложений. Разработчики могут использовать это средство для создания данных телеметрии, когда они хотят отслеживать свои приложения. Они также могут использовать это средство для отправки созданных данных телеметрии на сервер 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.

Ручное инструментирование 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.

Это сложный вызов, зависящий от того, что вы хотите от инструментовки. Выбор инструментов также может зависеть от вашего времени и ресурсов навыков. Не хватает времени или навыков? Автоматический ответ. Вам нужно более индивидуальное решение? Руководство станет шагом вперед.

Поддерживаемые фреймворки и языки

OpenTelemetry SDK поддерживает 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