Хабрахабр

[Перевод] Слияние OpenTracing и OpenCensus: путь к конвергенции

Авторы: Тед Янг, Притам Шах и «Комитет технических спецификаций» (Карлос Альберто, Богдан Друту, Сергей Канжелев и Юрий Шкуро).

Совместный проект обзавелся названием: http://opentelemetry.io

Очень, очень коротко:

  • Мы создаем новый унифицированный набор библиотек и спецификаций для возможности наблюдения за телеметрией. Он объединит проекты OpenTracing и OpenCensus, а также предоставит поддерживаемый способ для миграции.
  • Эталонная реализация на Java будет доступна 24 апреля, работа над реализациями на других языках начнется в полной мере с 8 мая 2019 года. Ознакомиться с графиком можно здесь.
  • К сентябрю 2019 года запланирован паритет с существующими проектами для C#, Golang, Java, NodeJS и Python. Нас ждет уйма работы, но мы справимся, если будем работать параллельно. Если вы заинтересованы в участии в этом проекте, пожалуйста, зарегистрируйтесь и сообщите нам, как бы вы хотели посодействовать.
  • Когда реализация на каждом языке станет зрелой, соответствующие проекты OpenTracing и OpenCensus будут закрыты. Это означает заморозку старых проектов, а новый проект продолжит поддерживать существующий инструментарий в течение двух лет, используя обратную совместимость.

Обзор проекта

Наивысшая цель — собрать проекты OpenTracing и OpenCensus в один общий проект.
Ядро нового проекта будет набором чистых и продуманных интерфейсов, включая традиционную сборку библиотек, реализующих эти интерфейсы в виде т.н. Мы проводим слияние! Вишенкой на торте будут рекомендованные стандарты для данных и проводных протоколов, включая общие части инфраструктуры.
Результатом будет полноценная телеметрическая система, подходящая для мониторинга микросервисов и других типов современных распределенных систем, совместимая с большинством основных OSS и коммерческих базовых программ. SDK.

Основные события

04 — Эталонный кандидат предоставлен к обзору.
8. 24. 05 — Официальный запуск проекта на Kubecon Barcelona.
6. 05 — Формируется команда, приступающая к работе на всех языках.
20. 11 — Официальное завершение проектов OpenTracing и OpenCensus.
20. 09 — Реализации на C#, Golang, Java, NodeJS и Python достигают паритета с аналогами.
6. 11 — Прощальная вечеринка в честь завершения проектов на Observability Summit, Kubecon San Diego.

Хронология конвергенции

Мы поставили амбициозную цель на сентябрь 2019 года — достижение паритета для языков C#, Golang, Java, NodeJS и Python. Миграция для каждого языка включает сборку SDK, готового к промышленному внедрению, инструментарий для популярных библиотек, документацию, CI, средства обратной совместимости и закрытие связанных проектов OpenCensus и OpenTracing ("закат"). Но предпочтительнее избежать этого.
При просмотре целей, пожалуйста, подумайте о своем личном участии, сообщите нам об этом, заполнив форму регистрации, или поздоровавшись в чатах Gitter проектов OpenTracing и OpenCensus. Мы будем сдвигать дату "заката" до тех пор, пока все языки не будут готовы. Просмотреть график в виде инфографики можно здесь.

Цель: первый черновой вариант межъязыковой спецификации (завершение к 8 мая)

Межъязыковая спецификация обеспечивает руководство для проекта. Важно работать сплоченно, даже при параллельной работе на разных языках. Звучит прозаически, но это гарантия поддержки целостной системы, которая кажется знакомой независимо от языка программирования.

Обязательные требования для первого черновика спецификации для языка Х:

  • Определения общей терминологии.
  • Модель для описания распределенных транзакций, статистики и метрик.
  • Разъяснения по важным вопросам, возникшим в ходе реализации.

Эта цель блокирует остальные работы, первый черновик должен быть завершен к 8 мая.

Цель: первый черновик для спецификации данных (завершение к 6 июля)

Сюда включена схема данных для модели трассировки, описанная в межъязыковой спецификации. Спецификация данных определяет общий формат данных для трассировок и метрик, поэтому данные, экспортируемые всеми процессами, могут обрабатываться одной и той же телеметрической инфраструктурой независимо от процесса генерации данных. Эти семантические соглашения являются примером. Также включены определения метаданных для общих операций, которыми трассировка пользуется для захвата: к примеру, HTTP-запросы, ошибки и запросы к базе данных.

Первый черновик основан на текущем формате данных OpenCensus и будет содержать следующее:

  • Схема данных, реализующая межъязыковую спецификацию.
  • Определения метаданных для общих операций.
  • Определения JSON и Protobuf.
  • Реализация эталонных клиентов.

Формат распространения Trace-Context разрабатывается через W3C. Просим обратить внимание, что также существует проводной протокол, распространяющий трассировки внутриполосно, и который мы бы хотели также стандартизировать.

Цель: паритет по всем основным поддерживаемым языкам (завершение к 6 сентября)

Мы должны достигнуть паритета для текущей языковой экосистемы в порядке замещения старых проектов новым.

  • Определения интерфейса для трассировки, метрик и распространения контекста на основе межъязыковой спецификации.
  • Готовый к работе SDK, реализующий эти интерфейсы, экспортирующий Trace-Data. При возможности SDK будет создан путем переноса существующей реализации из OpenCensus.
  • Инструментарий для популярных библиотек, охваченных в настоящее время в OpenTracing и OpenCensus.

Мы также ценим обратную совместимость и хотим обеспечить плавный переход с существующих проектов.

  • В новом SDK будут средства обратной совместимости с текущими интерфейсами OpenTracing. Они позволят устаревшим инструментальным средствам OpenTracing работать вместе с новыми инструментальными средствами в одном и том же процессе, что позволит пользователям постепенно переносить свои наработки.
  • При готовности нового SDK будет создан план обновления для нынешних пользователей OpenCensus. Как и в случае с OpenTracing, устаревшие инструменты смогут продолжить работать вместе с новыми.
  • К ноябрю и OpenTracing, и OpenCensus будут закрыты для приема изменений. Обратная совместимость с устаревшими инструментами будет поддерживаться в течение двух лет.

Создание лучшего в своем классе SDK для каждого языка требует огромного труда, и именно в этом мы нуждаемся больше всего.

Цель: основная документация (завершение к 6 сентября)

Мы хотим иметь первоклассную документацию и средства для обучения, наши технические писатели — самые активные разработчики на проекте. Критическим фактором успеха любого проекта с открытым исходным кодом является документация. Обучение разработчиков правильному наблюдению за программным обеспечением — одно из важнейших воздействий, которое мы хотим оказать на мир.

Минимально необходимы для начала следующие части документации:

  • Ориентация проекта.
  • Наблюдаемость 101.
  • Начало работы.
  • Руководства по языкам (отдельно на каждый).

Наш новый сайт базируется на Hugo, используя обычную разметку, так что весьма легко внести свой вклад. Приглашаем писателей любого уровня!

Цель: Registry v1.0 (завершение к 6 июля)

Registry — еще один критически важный компонент, улучшенная версия OpenTracing Registry.

  • Легко найти библиотеки, плагины, установщики и прочие компоненты.
  • Легкое управление компонентами Registry.
  • Можно узнать, какие функции SDK доступны на каждом языке.

Если интересуетесь дизайном, интерфейсной частью и UX — у нас отличный проект для личного участия.

Цель: инфраструктура для тестирования и выпуска ПО (завершение к 6 сентября)

Сообщите нам, пожалуйста, если вы можете позаботиться о конвейерах для тестирования, измерения характеристик и выпуска ПО. Для того, чтобы мы продолжали поставлять безопасный код, на который можно положиться, у нас есть проектное обязательство по созданию качественных конвейеров для тестирования и выпуска ПО. Мы четко обозначаем уровень готовности производства, а зрелость тестирующей инфраструктуры будет основным решающим фактором для нас.

Цель: закрытие проектов OpenTracing и OpenCensus (завершение к 6 ноября)

2 месяца спустя, при паритете всех языков, мы планируем закрытие проектов OpenTracing и OpenCensus. Мы планируем начало закрытия старых проектов с 6 сентября, если новый проект достигнет с ними паритета. Это следует понимать так:

  • репозитории будут заморожены, внесение правок больше проводиться не будет.
  • для текущего инструментария запланирован двухлетний срок поддержки.
  • пользователи смогут обновиться на новый SDK, используя прежний инструментарий.
  • будет возможно постепенное обновление.

Присоединяйтесь

Если интересно узнать о наблюдаемости — сейчас самое время! Мы будем рады любой помощи, поскольку это огромный проект.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»