
Автори: Тед Янг, Притам Шах и «Комитет за технически спецификации» (Карлос Алберто, Богдан Друту, Сергей Канжелев и Юрий Шкуро).
Съвместният проект получи името:
Много, много накратко:
- Ние създаваме нов унифициран набор от библиотеки и спецификации за наблюдение на телеметрията. Той ще обедини проектите OpenTracing и OpenCensus, а също така ще предостави поддържан начин за миграция.
- Референтната реализация на Java ще бъде налична на 24 април, а работата по реализациите на други езици ще започне в пълна степен от 8 май 2019 година. Запознайте се с графика .
- До септември 2019 година е планирано постигането на паритет с съществуващите проекти за C#, Golang, Java, NodeJS и Python. Очаква ни много работа, но ще се справим, ако работим паралелно. Ако сте заинтересовани да се включите в този проект, моля, регистрирайте се и ни уведомете как бихте искали да помогнете.
- Когато реализацията на всеки език достигне зрялост, съответните проекти OpenTracing и OpenCensus ще бъдат закрити. Това означава замразяване на старите проекти, а новият проект ще продължи да поддържа съществуващия инструментариум в продължение на две години, използвайки обратна съвместимост.
Преглед на проекта

Правим сливане! Най-висшата цел е да обединим проектите OpenTracing и OpenCensus в един общ проект.
Ядрото на новия проект ще бъде набор от чисти и добре обмислени интерфейси, включително традиционното изграждане на библиотеки, които реализират тези интерфейси под формата на т.нар. SDK. Вишенката на тортата ще бъдат препоръчаните стандарти за данни и проводими протоколи, включително общи части от инфраструктурата.
Резултатът ще бъде напълно функционираща телеметрична система, подходяща за мониторинг на микросервизи и други видове съвременни разпределени системи, съвместима с повечето основни OSS и търговски базови приложения.
Основни събития
24.04 — Референтният кандидат предоставен за преглед.
8.05 — Създава се екип, който започва работа на всички езици.
20.05 — Официален старт на проекта на Kubecon Barcelona.
6.09 — Реализациите на C#, Golang, Java, NodeJS и Python достигат паритет с аналогите.
6.11 — Официално приключване на проектите OpenTracing и OpenCensus.
20.11 — Прощална вечеринка в чест на завършването на проектите на Observability Summit, Kubecon San Diego.
Хронология на конвергенцията
Миграцията за всеки език включва изграждане на SDK, готово за промишлено внедряване, инструменти за популярни библиотеки, документация, CI, средства за обратно съвместимост и затваряне на свързани проекти OpenCensus и OpenTracing („залез“). Поставихме амбициозна цел за септември 2019 година — постигане на паритет за езиците C#, Golang, Java, NodeJS и Python. Ще преместим датата за „залез“ докато всички езици не са готови. Но за предпочитане е да избегнем това.
Когато преглеждате целите, моля, помислете за своето лично участие, уведомете ни за това, като попълните , или приветствайки в чатове Gitter на проектите и . Можете да видите графика под формата на инфографика .
Цел: първа чернова на междудисциплинарната спецификация (завършване до 8 май)
Важно е да работим сплотено, дори когато работим паралелно на различни езици. Междудисциплинарната спецификация осигурява ръководство за проекта. Звучи прозаично, но това е гаранция за поддръжка на цялостната система, която изглежда позната независимо от езика на програмиране.
Задължителни изисквания за първия черновик на спецификацията за език Х:
- Определения на обща терминология.
- Модел за описване на разпределени транзакции, статистики и метрики.
- Разяснения по важни въпроси, възникнали по време на реализацията.
Тази цел блокира останалата работа, първият черновик трябва да бъде завършен до 8 май.
Цел: първа чернова на спецификацията за данни (завършване до 6 юли)
Спецификацията за данни определя общ формат за данни за трасировки и метрики, така че данните, експортирани от всички процеси, да могат да бъдат обработвани от една и съща телеметрична инфраструктура, независимо от процеса на генериране на данните. Включена е схема на данните за модела на трасировка, описан в междудисциплинарната спецификация. Също така са включени определения на метаданни за общи операции, които трасировката използва за улавяне: например, HTTP-заяви, грешки и заявки към базата данни. Тези са пример.
Първата чернова се базира на текущия формат на данни OpenCensus и ще съдържа следното:
- Схема на данните, реализираща междудисциплинарната спецификация.
- Определения на метаданни за общи операции.
- Определения на JSON и Protobuf.
- Реализация на еталонни клиенти.
Молим да обърнете внимание, че съществува и проводен протокол, който разпространява трасировки вътреполосно и който също бихме искали да стандартизираме. Формат на разпространение разработва се чрез W3C.
Цел: паритет за всички основни поддържани езици (завършване до 6 септември)
Трябва да постигнем паритет за текущата езиковата екосистема, за да можем да заменим старите проекти с нови.
- Определения на интерфейса за трасировка, метрики и разпространение на контекст на база на междуспецификация.
- Готов за работа SDK, реализиращ тези интерфейси, експортиращ Trace-Data. Когато е възможно, SDK ще бъде създаден чрез прехвърляне на съществуващата реализация от OpenCensus.
- Инструментариум за популярни библиотеки, обхванати в момента в OpenTracing и OpenCensus.
Ние също ценим обратно съвместимостта и искаме да осигурим плавен преход от съществуващите проекти.
- В новия SDK ще има средства за обратно съвместимост с текущите интерфейси на OpenTracing. Те ще позволят остарели инструментални средства OpenTracing да работят заедно с новите инструментални средства в един и същи процес, което ще позволи на потребителите постепенно да прехвърлят своите разработки.
- При готовността на новия SDK ще бъде изготвен план за обновление за настоящите потребители на OpenCensus. Както в случая с OpenTracing, остарелите инструменти ще могат да продължат да работят заедно с новите.
- До ноември и OpenTracing, и OpenCensus ще бъдат затворени за приемане на изменения. Обратната съвместимост с остарелите инструменти ще бъде поддържана в продължение на две години.
Създаването на най-добрия в своя клас SDK за всеки език изисква огромно усилие и точно това ни трябва най-много.
Цел: основна документация (завършване до 6 септември)
Критичен фактор за успеха на всеки проект с отворен код е документацията. Искаме да имаме първокласна документация и средства за обучение, нашите технически писатели са най-активните разработчици в проекта. Обучението на разработчиците как да наблюдават софтуера правилно е едно от най-важните въздействия, което желаем да окажем на света.
Минимално необходимите части на документацията за начало са:
- Ориентация на проекта.
- Наблюдаемост 101.
- Започи́н.
- Ръководства за езици (отделно за всеки).
Каним писатели на всяко ниво! Нашият нов сайт е основан на Hugo, използвайки стандартна маркировка, така че е много лесно да se включите.
Цел: Registry v1.0 (завършване до 6 юли)
Registry — още един критично важен компонент, подобрена версия .
- Лесно е да се намерят библиотеки, плъгини, инсталатори и други компоненти.
- Лесно управление на компонентите на Registry.
- Можете да разберете какви функции на SDK са налични на всеки език.
Ако се интересувате от дизайн, интерфейсна част и UX — имаме страхотен проект за лично участие.
Цел: инфраструктура за тестване и пускане на софтуер (завършване до 6 септември)
За да продължим да предоставяме безопасен код, на който може да се разчита, имаме ангажимент да създадем качествени конвейери за тестване и пускане на софтуер. Кажете ни, моля, ако може да се погрижите за конвейерите за тестване, измерване на характеристики и пускане на софтуер. Ясно определяме нивото на готовност за производство, а зрялостта на тествалната инфраструктура ще бъде основният решаващ фактор за нас.
Цел: закриване на проектите OpenTracing и OpenCensus (завършване до 6 ноември)
Планираме да започнем закриването на стари проекти от 6 септември, ако новият проект достигне паритет с тях. Два месеца по-късно, при паритет на всички езици, планираме закриване на проектите OpenTracing и OpenCensus. Това трябва да се разбира така:
- репозиториите ще бъдат замразени, внасяне на поправки вече няма да се извършва.
- за текущия инструментариум е предвиден двугодишен срок на поддръжка.
- потребителите ще могат да се обновят на нов SDK, използвайки предишния инструментариум.
- ще бъде възможно постепенно обновление.
Присъединете се
Ще се радваме на всяка помощ, тъй като това е огромен проект. Ако ви е интересно да научите повече за наблюдаемостта — сега е най-подходящото време!
- Попълнете за пряко участие и присъединяване към екипа.
- Свържете се с нас на каналите и Gitter.
- Запознайте се с , която е в процес на разработка.
Източник: habr.com
