
Авторите: Тед Янг, Притам Шах и «Комитет за технически спецификации» (Карлос Алберто, Богдан Друту, Сергей Канжелев и Юрий Шкуро).
Съвместният проект получи името:
Много, много накратко:
- Създаваме нов унифициран набор от библиотеки и спецификации за наблюдение на телеметрия. Той ще обедини проектите 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 май)
Важно е да работим съвместно, дори при паралелна работа на различни езици. Междуезиковата спецификация осигурява ръководство за проекта. Звучи прозаично, но това е гаранция за поддръжка на цялостната система, която изглежда позната, независимо от езика за програмиране.
Задължителни изисквания за първия чернови вариант на спецификацията за език X:
- Определения на общата терминология.
- Модел за описание на разпределените транзакции, статистики и метрики.
- Разяснения по важни въпроси, възникнали по време на реализирането.
Тази цел блокира останалите работи, първият чернови вариант трябва да бъде завършен до 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, използвайки стандартна маркировка, така че е много лесно да се включите.
Цел: Registry v1.0 (завършване до 6 юли)
Registry — още една критично важна компонента, подобрена версия. .
- Лесно е да намерите библиотеки, плъгини, инсталатори и други компоненти.
- Лесно управление на компонентите на Registry.
- Можете да разберете какви функции на SDK са налични на всеки език.
Ако се интересувате от дизайн, интерфейсната част и UX — имаме страхотен проект за лично участие.
Цел: инфраструктура за тестване и пускане на софтуер (завършване до 6 септември)
За да продължим да предоставяме безопасен код, на който може да се разчита, имаме проектно задължение за изграждане на качествени конвейери за тестване и пускане на софтуер. Моля, уведомете ни, ако можете да се погрижите за конвейерите за тестване, измерване на характеристики и пускане на софтуер. Ясно обозначаваме нивото на готовност за производство, а зрелостта на тестовата инфраструктура ще бъде основен решаващ фактор за нас.
Цел: затваряне на проектите OpenTracing и OpenCensus (завършване до 6 ноември)
Планираме начало на затварянето на стари проекти от 6 септември, ако новият проект достигне паритет с тях. Два месеца по-късно, при паритет на всички езици, планираме затваряне на проектите OpenTracing и OpenCensus. Това трябва да се разбира така:
- репозиториите ще бъдат замразени, корекции вече няма да се правят.
- за текущия инструментариум е предвиден двугодишен срок на поддръжка.
- потребителите ще могат да актуализират до нов SDK, използвайки предишния инструментариум.
- ще бъде възможно постепенното обновление.
Присъединете се
Ще се радваме на всяка помощ, тъй като това е огромен проект. Ако се интересувате от наблюдаемост — сега е моментът!
- Попълнете за директно участие и присъединяване към екипа.
- Свържете се с нас на каналите и Gitter.
- Запознайте се с , която е в процес на разработка.
Източник: habr.com
