Предварительные требования
- Доступный OTel collector, к которому можно подключиться и который отправляет данные в ваш сервис Управляемый ClickStack. Вам понадобятся его конечная точка OTLP и токен для ингестии.
- Node 18+ и npm.
Клонируйте и запустите приложение
Клонируйте репозиторий, установите зависимости и создайте файл.env:Получите сведения о подключении
Приложению нужны два значения для подключения к коллектору:OTEL_EXPORTER_OTLP_ENDPOINT: конечная точка OTLP, которую предоставляет ваш коллектор (обычно это порт4318для OTLP по HTTP).OTEL_EXPORTER_OTLP_HEADERS: заголовок авторизации с вашим токеном ингестии в форматеauthorization=<token>.
.env и задайте их:OTEL_EXPORTER_OTLP_HEADERS для задания заголовка авторизации для всех трёх сигналов: трассировок, метрик и журналов. Если ваш коллектор запущен локально и не требует аутентификации, можно оставить значение пустым (OTEL_EXPORTER_OTLP_HEADERS=authorization=), но сама переменная должна присутствовать; если она не задана или полностью пуста, SDK вообще пропускает инициализацию.Инструментируйте приложение
Инструментирование включает три части: установку SDK, изменение команды запуска и включение браузерного SDK. Ничто из этого не меняет бизнес-логику приложения.Установите SDK
Установите OpenTelemetry SDK и для backend, и для браузера:Используйте CLI opentelemetry-instrument
Приложение запускается с помощью run.sh; в конце файла есть две строки exec: одна активная, другая закомментирована. Поменяйте, какая из них активна, чтобы Node запускался через opentelemetry-instrument:opentelemetry-instrument при запуске процесса.Включите браузерный SDK
Чтобы собирать распределённые трассировки (от браузера до сервера) и воспроизведения сеансов, включите браузерный SDK вsrc/web/telemetry.ts. Раскомментируйте импорт и блок HyperDX.init({...}):.env не нужны. __OTLP_ENDPOINT__ и __OTLP_AUTH_TOKEN__ — это константы, подставляемые на этапе сборки через vite.config.ts: конечная точка берётся из OTEL_EXPORTER_OTLP_ENDPOINT, а токен извлекается из OTEL_EXPORTER_OTLP_HEADERS — используются те же значения, что и на стороне сервера.Сгенерируйте трафик и просмотрите телеметрию
Перезапустите приложение, чтобы вступили в силу новая команда запуска и свежесобранный браузерный бандл:- Перейдите в Search и отфильтруйте данные за последние 5 минут. Появятся журналы для
hn-analyzer-api.
- Откройте запрос и поднимитесь вверх по трейсу. Вы увидите спан обработчика Express, дочерний HTTP-спан, указывающий на кластер ClickHouse с реальной длительностью сетевого взаимодействия, а также коррелированные записи
console.logв том же трейсе.
- Откройте Воспроизведение сеанса, чтобы просмотреть видео сеанса браузера с возможностью перемотки, синхронизированное с временной шкалой трейса.
Подробнее
- Воспроизведение сеанса: обзор этой возможности, варианты SDK и настройки конфиденциальности.
- Демо воспроизведения сеанса: автономное демо с локальным экземпляром ClickStack.
- Начало работы с ClickStack: разверните ClickStack и настройте приём первых данных.
- Все демонстрационные наборы данных: другие демонстрационные наборы данных и руководства.