Кратко

  • В объяснении слияния от мая 2019 года его участники назвали главной проблемой само сосуществование двух близких, но недостаточно совместимых проектов. Приоритетом стали программные мосты; старые разработки планировалось сделать доступными только для чтения до конца года.
  • В мае 2023 года OpenTelemetry сообщил о функциональном паритете с OpenCensus в семи языках и наметил архивирование большинства его репозиториев на 31 июля. Для opencensus-python сохранили явное исключение.

Две системы присылали счёт за одну работу

Распределённую службу нельзя понять, глядя только на её вход и выход. Её части и сторонние библиотеки должны записывать путь запросов и измерения, которые затем можно сопоставить. OpenTracing и OpenCensus пытались разделить стоимость такого инструментирования между множеством участников. Их архитектурные решения различались, но за интеграции они обращались к одним и тем же сопровождающим библиотек. Тем приходилось выбирать одно решение, поддерживать оба или ждать победителя. Оператор службы получал итог всех этих разрозненных решений в работающей системе.

Бен Сигельман и Морган Маклин в тексте 2019 года признали неудобную вещь: главная проблема каждого проекта состояла в том, что проектов было два. Идея общей инструментальной базы должна была экономить труд. Вместо этого часть труда уходила на параллельные подключения и попытки собрать цельную картину работы службы из несовместимых участков. Разница была ощутима не на презентации, а в момент, когда запрос проходил через библиотеку с иной системой трассировки.

Майское слияние 2019 года создало единое место для новой работы под эгидой CNCF. В первые управляющие и технические комитеты вошли представители Google, LightStep, Microsoft и Uber. Комитет мог определить путь для будущих спецификаций и изменений. Он не мог в ту же ночь обновить все приложения. Учредители называли OpenTelemetry следующей крупной версией сразу обоих предшественников. Такая формулировка подразумевала необходимость миграции для тех, кто уже использовал старые версии.

Мост был в исходном проекте, а не в плане спасения

Обратная совместимость через программные мосты стояла в списке приоритетов с самого объявления. Старые вызовы инструментирования должны были продолжать передавать данные, пока приложение переходило на новый путь экспорта. Второй задачей было сократить период одновременной разработки трёх проектов. OpenTracing и OpenCensus намеревались перевести в режим только для чтения до конца 2019 года. Это был заявленный ориентир, а не утверждение, что к Новому году все пользователи уже вычистили прежний код.

Репозиторий может прекратить принимать новые функции, а сервер — продолжать загружать его библиотеку каждый день. Между этими событиями лежат выпуск SDK, обновление зависимостей и проверка того, что метрики и трассы по-прежнему значат то же самое. Мосты появились в первоначальном плане именно потому, что организационное объединение и смена работающего кода идут с разной скоростью.

В августе 2021 года CNCF объявил о переходе OpenTelemetry на стадию инкубации. Фонд перечислил API и SDK в одиннадцати языках и поддержку трасс и метрик протоколом проекта. В том же сообщении официальное архивирование OpenTracing и дальнейший вывод обоих предшественников из употребления оставались задачами на будущее. Спустя два года после слияния о старом коде всё ещё приходилось говорить отдельно.

В списке 2023 года нашлась строка с исключением

Сообщение OpenTelemetry от мая 2023 года превратило общий замысел в перечень. Проект заявил о функциональном паритете с OpenCensus для C++, .NET, Go, Java, JavaScript, PHP и Python. Большинство репозиториев OpenCensus на GitHub планировали архивировать 31 июля. Но opencensus-python оставили вне общего правила: части этого репозитория ещё рекомендовали для производственного использования. На схеме слияния обе старые ветки помещались в одну стрелку. В списке обслуживания одной из них понадобилось примечание.

Там же перечислили мосты для Go, Java, JavaScript и Python и указали, что некоторые адаптеры пока готовятся. Предлагаемый порядок был постепенным: существующий код измерения посылает данные через экспортеры OpenTelemetry, затем старые библиотеки убирают. Проект предупредил, что новая система не является строгим надмножеством OpenCensus и миграция может изменить выдаваемую телеметрию. Даже если график продолжает рисоваться, сопоставимость подписей и показателей нужно проверять.

Планируемое архивирование определяло и границу поддержки. Согласно объявлению, после 31 июля архивируемый OpenCensus больше не должен был получать новые функции и исправления уязвимостей; исходники и опубликованные пакеты оставались доступны. Загрузить библиотеку можно и после того, как её коллективное обслуживание закончится. Для владельца работающей службы это уже другая ответственность.

Комитеты объединились раньше приложений

Решение 2019 года прекратило спор о том, куда направлять общие усилия по инструментированию. Для уже запущенных служб оставались версии зависимостей, готовность языковых реализаций, качество мостов и графики множества сопровождающих. Четыре года до плана ухода OpenCensus показывают стоимость этой работы. Они не доказывают, что цель режима только для чтения в 2019-м не была достигнута: такой режим и архивирование — разные этапы. Но показывают, что в 2023-м всё ещё требовался подробный план с исключением. Табличку на двери сменили быстро; старые кабели вытаскивали по одному.