Skip to main content
ClickStack использует стандарт OpenTelemetry для сбора телеметрических данных (журналов, метрик, трассировок и исключений). Трассировки генерируются автоматически благодаря автоматическому инструментированию, поэтому для получения пользы от трассировки ручное инструментирование не требуется.

Начало работы

Установите пакет для инструментирования HyperDX OpenTelemetry

Используйте следующую команду, чтобы установить пакет ClickStack OpenTelemetry.

Инициализация SDK

Чтобы инициализировать SDK, вызовите функцию init в начале файла точки входа вашего приложения.
Это позволит автоматически собирать трассировку, метрики и журналы вашего приложения Node.js.

Настройка сбора журналов

По умолчанию собираются журналы console.*. Если вы используете логгер, например winston или pino, вам потребуется добавить в него transport, чтобы отправлять журналы в ClickStack. Если вы используете другой тип логгера, свяжитесь с нами или, если применимо, воспользуйтесь одной из наших интеграций (например, Kubernetes).
Если вы используете winston в качестве логгера, вам потребуется добавить в него следующий transport.

Настройка сбора ошибок

SDK ClickStack может автоматически перехватывать необработанные исключения и ошибки в вашем приложении, включая полную трассировку стека и контекст кода. Чтобы включить эту возможность, добавьте следующий код в конец middleware обработки ошибок вашего приложения или вручную регистрируйте исключения с помощью функции recordException.

Устранение неполадок

Если у вас возникают проблемы с SDK, включите подробное логирование, установив для переменной окружения OTEL_LOG_LEVEL значение debug.

Расширенная настройка инструментирования

Сбор логов консоли

По умолчанию SDK ClickStack собирает логи консоли. Это можно отключить, задав для переменной окружения HDX_NODE_CONSOLE_CAPTURE значение 0.
copy

Добавление информации о пользователе или метаданных

Чтобы пометить все события, связанные с определённым атрибутом или идентификатором (например, ID пользователя или email), можно вызвать функцию setTraceAttributes, которая после вызова добавит указанные атрибуты ко всем журналам/спанам, связанным с текущей трассировкой. Эту функцию рекомендуется вызывать как можно раньше в рамках конкретного запроса/трассировки (например, как можно раньше в стеке middleware Express). Это удобный способ гарантировать, что все журналы/спаны будут автоматически помечены нужными идентификаторами для последующего поиска, вместо того чтобы вручную добавлять метки и самостоятельно передавать идентификаторы. userId, userEmail, userName и teamName заполнят интерфейс сеансов соответствующими значениями, но их можно не указывать. Также можно задать любые другие дополнительные значения и использовать их для поиска событий.
Убедитесь, что включён бета-режим: для этого установите переменную окружения HDX_NODE_BETA_MODE в значение 1 или передайте betaMode: true в функцию init, чтобы включить атрибуты трассировки.

Google Cloud Run

Если ваше приложение работает в Google Cloud Run, Cloud Trace автоматически добавляет заголовки сэмплирования во входящие запросы, что сейчас ограничивает сэмплирование трасс до 0,1 запроса в секунду на каждый экземпляр. Пакет @hyperdx/node-opentelemetry по умолчанию переопределяет коэффициент выборки на 1.0. Чтобы изменить это поведение или настроить другие установки OpenTelemetry, вы можете вручную задать переменные окружения OTEL_TRACES_SAMPLER=parentbased_always_on и OTEL_TRACES_SAMPLER_ARG=1, чтобы получить тот же результат. Чтобы узнать больше и принудительно включить трассировку для определённых запросов, см. документацию Google Cloud Run.

Автоматически инструментируемые библиотеки

SDK будет автоматически инструментировать (трассировать) следующие библиотеки:

Альтернативный способ установки

Запуск приложения с помощью ClickStack OpenTelemetry CLI

В качестве альтернативы можно включить автоинструментирование приложения без каких-либо изменений в коде — с помощью CLI opentelemetry-instrument или флага Node.js --require. Установка через CLI предоставляет более широкий набор автоматически инструментируемых библиотек и фреймворков.
Управляемый ClickStackДля Управляемого ClickStack HYPERDX_API_KEY можно не указывать.
Переменная окружения OTEL_SERVICE_NAME используется для идентификации вашего сервиса в интерфейсе HyperDX; ей можно задать любое имя.

Включение перехвата исключений

Чтобы включить перехват необработанных исключений, установите переменную окружения HDX_NODE_EXPERIMENTAL_EXCEPTION_CAPTURE в значение 1.
После этого, чтобы автоматически собирать исключения в Express и Koa или вручную перехватывать их, следуйте инструкциям в разделе Настройка сбора ошибок выше.

Автоматически инструментируемые библиотеки

Для следующих библиотек трассировка будет включена автоматически с помощью указанных выше методов установки:
Последнее изменение 26 сентября 2026 г.