OpenTelemetry
Что такое OpenTelemetry?
OpenTelemetry (OTel) - это фреймворк наблюдаемости с открытым исходным кодом, который предоставляет ИТ-командам стандартизированные протоколы и инструменты для сбора и маршрутизации телеметрических данных. Созданный в качестве инкубаторского проекта Cloud Native Computing Foundation (CNCF), OpenTelemetry предоставляет согласованный формат для создания инструментов, генерации, сбора и экспорта данных телеметрии приложений - метрик, журналов и трасс - на платформы мониторинга для анализа. В этой статье мы расскажем о том, как работает OpenTelemetry, о ее преимуществах и проблемах, а также об инструментах, которые помогут вам начать работу.
Как работает OpenTelemetry
OpenTelemetry состоит из нейтральных к производителю инструментов с открытым исходным кодом, API и SDK, которые могут быть реализованы с помощью различных языков программирования, включая Go, Java и Python. Эти инструменты работают вместе, чтобы определить, что нужно измерить, собрать соответствующие данные, очистить и организовать информацию, а также экспортировать ее в соответствующих форматах в бэкэнд мониторинга. Компоненты OpenTelemetry слабо связаны друг с другом, поэтому вы можете легко выбирать, какие части OTel вы хотите интегрировать.
Основными компонентами OpenTelemetry являются:
Интерфейсы прикладного программирования (API)
API-интерфейсы служат инструментом для вашего кода и координируют сбор данных в вашей системе. API зависят от языка, поэтому используемый вами API должен соответствовать языку, на котором написан ваш код.
Наборы для разработки программного обеспечения (SDK)
SDK реализуют и поддерживают API с помощью библиотек, которые помогают собирать, обрабатывать и экспортировать данные. Как и API, SDK зависят от конкретного языка.
Спецификации данных
Спецификации данных определяют протокол OpenTelemetry Protocol (OTLP), используемый для сбора данных, а также соответствующие семантические соглашения, обычно используемые приложениями.
Коллектор OpenTelemetry
Коллектор получает, обрабатывает и экспортирует телеметрические данные в один или несколько бэкендов. Он разработан как универсальный, что позволяет ему работать с несколькими системами с открытым исходным кодом или коммерческими системами. Коллектор состоит из трех компонентов:
Приемник
Приемник определяет, как собираются данные: через регулярные промежутки времени или только при запросе. При необходимости приемник может собирать данные из нескольких источников.
Процессор
Процессор выполняет промежуточные операции, подготавливающие данные к экспорту, такие как пакетная обработка и добавление метаданных.
Экспортер
Экспортер отправляет данные телеметрии в бэкэнд с открытым исходным кодом или коммерческий бэкэнд, в зависимости от того, что указал пользователь. Как и приемник, экспортер может отправлять или извлекать эти данные.
Преимущества OpenTelemetry
Мониторинг распределенных систем подразумевает сбор данных из различных источников, включая серверы, контейнеры и приложения. В крупных организациях отдельные команды могут даже использовать различные стеки и платформы, адаптированные к их потребностям, что затрудняет получение единого представления о производительности всей системы. Предоставляя единый, универсальный стандарт для сбора и отправки телеметрических данных, OpenTelemetry помогает оптимизировать усилия по наблюдению, облегчая командам оптимизацию производительности и устранение проблем.
Вот несколько ключевых преимуществ OpenTelemetry:
Нейтральность по отношению к поставщикам
С помощью OpenTelemetry вы можете собирать телеметрические данные из различных источников и отправлять их на несколько платформ без существенных изменений конфигурации. Это позволяет доносить информацию до ваших команд, используя те инструменты или форматы, которые им больше всего подходят. OTel также позволяет отправлять данные на альтернативный бэкэнд по мере необходимости, предотвращая привязку к поставщику.
Гибкость данных
OpenTelemetry позволяет вам контролировать, какие телеметрические данные вы отправляете на свои платформы. Это поможет вам убедиться, что вы собираете только ту информацию, которая вам необходима, сокращая ненужный шум и лишние расходы. Кроме того, фильтрация позволяет добавлять пользовательские теги к метрикам для упрощения организации и поиска.
Простая настройка
Используя OpenTelemetry, вашей организации не нужно тратить время на разработку собственного решения или поиск отдельных инструментов для множества различных приложений в вашем стеке. Вы также сможете сэкономить усилия своих инженерных команд при переходе на другого поставщика или добавлении инструментов в систему, поскольку им не придется разрабатывать новые механизмы телеметрии для их поддержки.