Об этом проекте

OpenTelemetry JavaScript — это реализация OpenTelemetry на JavaScript, независимый от поставщика фреймворк для сбора трассировок, метрик и логов из приложений. Он ориентирован на Node.js и веб-браузеры и публикуется в виде набора npm-пакетов в области @opentelemetry. Проект разделяет ответственность на слой API и реализации SDK. Пакет API предоставляет интерфейсы TypeScript, перечисления и no-op реализации для базовой модели трассировки и метрик, поэтому авторы библиотек могут зависеть только от публичного API, не подтягивая конкретный SDK. Пакет core предоставляет реализации по умолчанию и no-op. На стороне SDK sdk-trace дает контроль над инструментированием и созданием span без загрузки async_hooks или инструментирования по умолчанию, а sdk-metrics предоставляет инструменты и метры для отчетности по временным рядам. Начало работы обычно включает установку @opentelemetry/api, @opentelemetry/sdk-node и метапакета auto-instrumentations-node, затем создание файла настройки трассировки, который конфигурирует NodeSDK с resource, экспортером, таким как ConsoleSpanExporter, и автоинструментированием. Затем приложение запускается с предварительной загрузкой файла трассировки. Через API можно включить логгер диагностики для отладки случаев, когда телеметрия не доходит до коллектора. Статус функций документируется по каждому сигналу: трассировка и метрики стабильны как в API, так и в SDK, тогда как логи все еще находятся в разработке. README также публикует матрицу совместимости, сопоставляющую стабильные версии пакетов с экспериментальными версиями пакетов, и отмечает, что стабильные пакеты используют одну линейку версий, а экспериментальные — другую. Поддерживаемые среды выполнения включают текущие LTS-выпуски Node.js, при этом инструментирование браузера описывается как экспериментальное и в значительной степени неопределенное; минимальная базовая версия языковых возможностей — ECMAScript 2022. Поддержка TypeScript следует двухлетнему окну поддержки. Экспортеры не зависят от поставщика, и реестр перечисляет доступные реализации экспортеров, при этом пользователи также могут написать свои собственные. Автоматическая трассировка доступна через инструментирования, с основными инструментированиями Node для gRPC и HTTP, основными веб-инструментированиями для XMLHttpRequest и fetch, а также дополнительными contrib-инструментированиями, размещенными в отдельном репозитории. Проект лицензирован под Apache-2.0 и приветствует вклад через теги up-for-grabs и good-first-issue, с еженедельной встречей SIG.