Протокол OpenTelemetry з Apache Arrow — оголошення другої фази

Ми раді оголосити про наступний етап проєкту OpenTelemetry Protocol з Apache Arrow (OTel-Arrow). Ми розпочали цей проєкт кілька років тому з метою налагодження звʼязку між даними OpenTelemetry та екосистемою Apache Arrow. Apache Arrow - це фреймворк, призначений для обміну структурованими даними без копіювання між постачальниками та споживачами даних, орієнтованих на стовпці.

Ми вважаємо, що доступність даних OpenTelemetry для зовнішніх систем через Apache Arrow призведе до потужної інтеграції, з потенціалом для появи нових телеметричних систем і застосунків. Ми знаємо, що для великих потоків телеметрії обробка даних, орієнтованих на стовпці, є значно ефективнішою, з покращеним стисненням даних та продуктивністю.

Ми вирішили дослідити цю фазу проєкту на Rust. За допомогою Комітету з управління OpenTelemetry ми визначили обсяг проєкту, який передбачає вивчення потенціалу конвеєрів OpenTelemetry на основі Rust без того, щоб «бути» колектором. Ми дослідимо як продуктивність Rust-конвеєрів, так і те, як успішно інтегрувати нашу роботу з екосистемою OpenTelemetry Collector, що базується на Golang, в екосистему OpenTelemetry Collector.

Цей проєкт має на меті відповісти на нашу початкову гіпотезу. Ми досліджуємо, що відбувається і що можливо, якщо ми використовуємо парадигму з нульовим копіюванням, орієнтовану на стовпці, від початку і до кінця, починаючи з SDK і закінчуючи конвеєром.

Ми не могли не помітити: екосистема Rust навколо Apache Arrow є великою та динамічною, і ми вважаємо, що це було б втраченою можливістю не дослідити цей простір. Ми особливо зацікавлені в підключенні бібліотеки Apache DataFusion до конвеєрів OpenTelemetry, і ми вважаємо, що користувачі OpenTelemetry отримають вигоду від більш прямої інтеграції з їхнім сховищем даних.

Ми прагнемо створити наскрізний конвеєр OTAP в Rust, де телеметричні дані будуть поміщатися в пакети записів Arrow в міру їх надходження. Проєкт OTel-Arrow планує тісно співпрацювати з OpenTelemetry-Rust SDK, оскільки ми вивчаємо цю можливість. Ми зацікавлені в тому, щоб зробити OTAP конвеєри безпечними для вбудовування, завдяки суворому контролю над памʼяттю та підтримці багатопотокового виконання.

На першому етапі проєкту ми розробили протокол за допомогою бібліотеки адаптерів Golang та відповідної пари компонентів Exporter та Receiver у репозиторії OpenTelemetry Collector Contrib. Ми продовжимо підтримувати ці компоненти, гарантуючи відсутність барʼєрів між конвеєрами Go та Rust, і ми продовжимо дотримуватися цього зобовʼязання. Ми гарантуємо, що конвеєри OTAP можуть бути виконані з OpenTelemetry Collector. Ми також хочемо надати OTAP-конвеєрам, написаним на Rust, доступ до компонентів Golang Collector.

Щоб розпочати фазу 2 проєкту, Laurent Quérel з F5 надав роботу над своїм оригінальним прототипом OTel-Arrow, фреймворком конвеєра на основі Rust, змодельованим на основі OpenTelemetry Collector. Lei Huang з Greptime надав Rust-реалізацію для перетворення сигналу метрики з OTAP в OTLP.

Дізнатися більше

Новостворена SIG OTel-Arrow має час для зустрічей у календарі OpenTelemetry. Побачимося там!

Востаннє змінено December 26, 2024: [uk] Ukrainian documentation for OpenTelemetry (2a3c5648)