Эксперты OpenTelemetry рассказывают о будущем поддержки браузеров

Компания Embrace спонсировала этот пост.

Внедрение более эффективных методов наблюдения во внешний интерфейс имеет большой импульс, и отличным примером является запуск специальной группы по особым интересам браузера (SIG) в проекте OpenTelemetry. Хотя OpenTelemetry изначально была основана как решение проблемы наблюдения за серверной частью распределенной трассировки, инженерные группы и организации все чаще используют ее как открытый стандарт для наблюдения за всем стеком технологий.

Хотя OpenTelemetry поддерживает сбор телеметрии на языке JavaScript, API и SDK были разработаны для Node.js, среды выполнения сервера. Чтобы лучше поддерживать нюансы среды выполнения браузера, проект OpenTelemetry создал Browser SIG для создания лучших инструментов, инструментов и семантических соглашений для запуска JavaScript во внешних веб-приложениях.

Я встретился с несколькими ключевыми членами Browser SIG, чтобы провести веселую групповую дискуссию на тему фильма о некоторых ключевых проблемах в наблюдаемости браузера, над чем группа будет работать и как веб-разработчики могут начать работу с OpenTelemetry. В число участников дискуссии вошли:

  • Тед Янг, директор программы разработчиков Grafana Labs, соучредитель OTel.
  • Пурви Канал, старший инженер-программист в Honeycomb, специалист по утверждению JavaScript в OTel и инженер по внедрению браузеров.
  • Мартин Куба, штатный инженер-программист Grafana Labs, участник OTel и утверждающий JavaScript SDK.
  • Джаред Фриз, старший инженер-программист в Embrace, участник SIG OTel Browser.

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

OpenTelemetry уже давно имеет реализацию JavaScript и может работать в браузере. Однако реализация в первую очередь ориентирована на производственную среду для работы в Node.js.

Как объяснил Янг: «На самом деле это не то, что мы считаем профессиональным продуктом, который можно сравнить с другими существующими вещами. Но он действительно работал. Но с точки зрения простого управления ресурсами, браузерами, мобильными устройствами и всем подобным, он настолько отличается от серверных продуктов. Мы знали, что нам нужно подходить к этому очень сознательно».

Одна из причин, по которой браузеру нужен подход, отличный от серверных систем, заключается в том, что среда выполнения браузера управляется событиями, а не запросами. Канал объяснил, что подход распределенной трассировки к наблюдаемости не совсем работает в браузерах.

«Сложность браузера заключается в том, что вместо перехода от этой распределенной системы отслеживания вы переходите к системе, управляемой событиями, с несколькими входными данными. Так что здесь у нас не просто один вход. У вас как бы их несколько. У вас есть пользователь, который что-то делает. Вы щелкаете мышью в браузере. Вы прокручиваете. Пользователи создают сотни и сотни событий, даже сотни событий в секунду. Например, браузерные приложения в наши дни довольно сложны», — сказала она.

«Итак, пользовательский ввод, у вас есть ввод кода вашего приложения. Таким образом, когда пользователь что-то делает, приложение потенциально реагирует на некоторые из этих вещей, но оно также может делать и другие вещи, такие как выборка ресурсов в фоновом режиме или выполнение каких-то других фоновых задач, предварительная выборка других ресурсов».

Все браузеры похожи на цикл событий, реагируя на прослушиватели событий из любого количества входных источников. Они не разработаны так, чтобы их можно было идеально отслеживать, и непросто даже решить, где начинать и заканчивать трассировку в браузере. Поэтому вместо того, чтобы просто измерять отдельные запросы или трассировки, полезнее наблюдать за внешними приложениями через призму пользовательских сеансов. И, к сожалению, OpenTelemetry не имеет четко определенной модели данных для сеансов.

Над чем работает браузер SIG?

Изначально группа Browser SIG не занимается созданием нового JavaScript SDK для браузера. Вместо этого он работает над API OpenTelemetry, инструментами и моделью данных для среды выполнения браузера.

Как сказал Куба: «Мы знаем, что существуют проблемы с существующим инструментарием. Поэтому, возможно, нам следует сделать шаг назад и посмотреть на API и SDK и сравнить их с другими существующими решениями».

Например, существуют основные инструменты, которые либо отсутствуют, либо требуют переоценки, такие как загрузка/выгрузка страниц, пользовательские события, синхронизация ресурсов, основные веб-показатели и ошибки. Добавьте к этому пробелы в модели данных браузера, которые необходимо устранить, например, определение концепции сеанса.

Куба сказал: «Сеанс — это нечто, что связывает вместе множество различных событий и множество различных трассировок или интервалов. Поэтому мы хотим рассматривать сеансы как ресурс. И это также интересно, поскольку сеансы охватывают загрузки страниц».

Пользователи запускают веб-сайты и могут переходить на несколько страниц за один раз. Фриз объяснил некоторые проблемы моделирования сеанса пользователя в таких ситуациях.

«Мне нравится использовать пример электронной коммерции, верно? Я нахожусь на главной странице, там куча товаров, и я открываю товары в новой вкладке, верно? Но я еще не заходил на эту страницу. Это произошло в фоновом режиме… А потом я перехожу к первому продукту. Я такой: «Это действительно круто». Положите его в корзину. Отслеживайте все эти события, вернитесь на домашнюю страницу. У меня все еще тот же опыт. Итак, вы включаете это? Какие есть варианты?»

Огромное разнообразие веб-приложений также означает, что у инженерных групп разные требования к наблюдаемости в зависимости от потребностей их бизнеса. Пакет SDK OpenTelemetry JavaScript не оптимизирован для браузера, и группа SIG браузера работает над обновлением существующего.

Как сказал Куба: «Некоторые приложения действительно заботятся о минимально возможном размере пакета, потому что скорость загрузки страницы является наиболее важной вещью… Мы немного отходим от инструментов на основе интервалов к инструментам на основе событий, я надеюсь, что это может уменьшить размер пакета. Или, по крайней мере, дать пользователям возможность, если они хотят собирать только определенные события, им не нужно включать SDK для трассировки. Они могут просто включить SDK для журналов. Трассировка сложна, если они связаны с пакетом. размер, потому что API и SDK больше и сложнее».

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

Как веб-разработчики могут начать работу с OpenTelemetry

Веб-разработчики сегодня могут использовать существующий OpenTelemetry JavaScript SDK в своих веб-приложениях, но с некоторыми оговорками, самая большая из которых заключается в том, что он не ориентирован на браузер. Например, веб-разработчики, желающие использовать трассировку, столкнутся с некоторыми препятствиями, когда дело доходит до распространения контекста.

Как сказал Канал: «Если вы думаете о распространении контекста через что-то вроде асинхронной границы, вам придется использовать для этого библиотеку под названием Zone.js, которую, я думаю, сложно продать, потому что она огромна. Сама по себе она занимает около мегабайта. И она также не очень хорошо поддерживается. И в любом случае она не работает для async-await. Так что, возможно, лучше оставить это и связать все вместе через сеансы, а не эти идеальные трассировки, которые охватывают всю сессию, а это мир, к которому мы все равно хотим двигаться».

Как отметил Куба: «Сейчас определенно возможно просто включить SDK журналов и генерировать свои собственные события из разных частей вашего приложения. Некоторые события нетрудно зафиксировать. Вы можете начать с этого. А затем, когда мы создадим официальные инструменты, вы можете просто заменить их. Прямо сейчас мы работаем над семантическими соглашениями для некоторых из этих событий. Поэтому я думаю, что вы могли бы начать с генерации пользовательских событий с этими семантическими соглашениями, а затем просто заменить их официальными инструментами, когда они будут доступны».

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

Участники дискуссии согласились, что лучшее место для веб-разработчиков, чтобы узнать об OpenTelemetry, — это посетить веб-сайт OpenTelemetry и опробовать демонстрационное приложение OTel. Он включает в себя множество различных типов инструментов, таких как языки и SDK, включая браузер.

Янг сказал: «Демо-приложение OTel — действительно отличная отправная точка, потому что, прежде чем вы приступите к инструментированию и проверке всего, может быть очень полезно просто просмотреть данные в продукте, в котором вы собираетесь просматривать данные. И это то, что хорошо инструментировано и имеет нагрузочный тестер, который может генерировать всю нагрузку и позволяет вам покопаться и получить представление о том, как это должно выглядеть, прежде чем пытаться сделать это самостоятельно. Это действительно полезно».

Фриз упомянул еще одну вещь, которая помогла ему познакомиться с OpenTelemetry, — это экспортер консоли.

«Вы можете запускать библиотеки и не нуждаться в конечной точке. Вам не обязательно начинать с этого. Вы можете запускать в браузере. Вы можете видеть все, что генерируется, в хорошо структурированном виде и думать типа: «ОК, круто, у меня есть правильные атрибуты. Я сделал правильную вещь. Я назвал это правильно. Или я правильно расставляю знаки препинания для именования ключей, какими бы они ни были».

Другой вариант для веб-разработчиков — использовать Embrace Web SDK. Он имеет открытый исходный код, создан на основе OpenTelemetry и подключается к любому OTel-совместимому инструменту, поэтому является альтернативой использованию OpenTelemetry JavaScript SDK для веб-приложений.

Чтобы узнать больше, вы можете посмотреть полную панель ниже.

Embrace — это ориентированная на пользователя платформа наблюдения, которая связывает техническую производительность с воздействием на конечного пользователя. Embrace, основанный на OpenTelemetry, обеспечивает реальный мониторинг пользователей на мобильных устройствах и в Интернете, поэтому инженерные группы могут быстрее решать проблемы, повышать производительность и предоставлять исключительные цифровые возможности. Узнайте больше Последние новости от Embrace TRENDING STORIES YOUTUBE.COM/THENEWSTACK Технологии развиваются быстро, не пропустите ни одной серии. Подпишитесь на наш канал YouTube, чтобы смотреть все наши подкасты, интервью, демонстрации и многое другое. ПОДПИСАТЬСЯ Группа, созданная в Sketch. Колин Контрири — руководитель отдела контента в Embrace. Его карьера охватывает множество ролей в трех основных увлечениях: писательство, технологии и развлечения. До работы в сфере технологий он писал и выступал для сцены и экрана, а также… Подробнее от Колина Контрири

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

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