사전 요구 사항
- Managed ClickStack 서비스로 수집되도록 구성되어 있으며 접근 가능한 OTel collector가 필요합니다. OTLP endpoint와 수집 토큰이 필요합니다.
- Node 18+ 및 npm.
애플리케이션 복제 및 실행
리포지토리를 복제하고 의존성을 설치한 다음,.env 파일을 생성합니다:연결 정보 가져오기
애플리케이션이 collector에 연결하려면 두 개의 값이 필요합니다:OTEL_EXPORTER_OTLP_ENDPOINT: collector가 노출하는 OTLP endpoint입니다(일반적으로 HTTP 기반 OTLP에는 포트4318을 사용합니다).OTEL_EXPORTER_OTLP_HEADERS:authorization=<token>형식으로 수집 토큰을 전달하는 인증 header입니다.
.env를 열고 다음과 같이 설정하십시오:OTEL_EXPORTER_OTLP_HEADERS를 사용합니다. collector가 로컬에서 실행되고 인증을 강제하지 않는 경우 값은 비워 둘 수 있지만(OTEL_EXPORTER_OTLP_HEADERS=authorization=), 변수는 반드시 존재해야 합니다. 이 변수가 설정되지 않았거나 완전히 비어 있으면 SDK는 초기화를 아예 수행하지 않습니다.애플리케이션 계측
계측은 세 부분으로 구성됩니다. SDKs를 설치하고, 실행 명령을 전환하고, 브라우저 SDK를 활성화합니다. 이 중 어느 것도 애플리케이션의 비즈니스 로직을 변경하지 않습니다.SDKs 설치
백엔드와 브라우저 OpenTelemetry SDKs를 모두 설치합니다:opentelemetry-instrument CLI 사용
애플리케이션은 run.sh로 시작되며, 파일 하단에는 exec 줄이 2개 있습니다. 하나는 활성화되어 있고 다른 하나는 주석 처리되어 있습니다. Node가 opentelemetry-instrument로 래핑되도록 활성화된 줄을 서로 바꾸십시오:opentelemetry-instrument에 의해 로드됩니다.Browser SDK 활성화
분산 추적(브라우저에서 백엔드까지)과 세션 리플레이를 수집하려면src/web/telemetry.ts에서 Browser SDK를 활성화하세요. import와 HyperDX.init({...}) 블록의 주석을 해제하십시오:.env 수정은 필요하지 않습니다. __OTLP_ENDPOINT__ 및 __OTLP_AUTH_TOKEN__은 vite.config.ts에서 주입되는 컴파일 시점 상수입니다. endpoint는 OTEL_EXPORTER_OTLP_ENDPOINT이고, token은 backend가 사용하는 것과 동일한 값인 OTEL_EXPORTER_OTLP_HEADERS에서 파싱되어 추출됩니다.트래픽을 생성하고 telemetry를 확인합니다
변경된 실행 명령과 새로 빌드한 브라우저 번들이 적용되도록 애플리케이션을 다시 시작하십시오:- 검색으로 이동해 최근 5분으로 필터링합니다.
hn-analyzer-api의 로그가 스트리밍되어 들어옵니다.
- 요청을 클릭해 열고 트레이스를 상위 스팬 방향으로 따라갑니다. Express handler 스팬, 실제 네트워크 지속 시간을 보여주면서 ClickHouse 클러스터를 가리키는 하위 HTTP 스팬, 그리고 동일한 트레이스에 연관된
console.log레코드를 확인할 수 있습니다.
- 세션 리플레이를 열어 트레이스 타임라인과 동기화된 브라우저 세션 영상을 재생합니다. 재생 위치도 자유롭게 이동할 수 있습니다.
더 알아보기
- 세션 리플레이: 기능 개요, SDK 옵션, 개인정보 보호 제어.
- Session Replay Demo: 로컬 ClickStack 인스턴스로 실행하는 독립형 데모입니다.
- ClickStack 시작하기: ClickStack을 배포하고 첫 데이터를 수집합니다.
- 모든 샘플 데이터셋: 다른 예시 데이터셋과 가이드입니다.