본문으로 바로가기
본문으로 바로가기

ClickStack - 로그, 트레이스, 메트릭 샘플

이 가이드는 샘플 데이터 세트를 사용하여 ClickStack Open Source와 Managed ClickStack을 모두 소개합니다.

서비스를 선택하세요

ClickHouse Cloud 메인 랜딩 페이지에서 Managed ClickStack 서비스를 선택하세요.

서비스 선택

ClickStack UI(HyperDX)로 이동하기

왼쪽 메뉴에서 ClickStack을 선택하여 ClickStack UI로 이동하십시오. 자동으로 인증됩니다.

ClickStack UI

샘플 데이터 다운로드하기

UI에 샘플 데이터를 표시하려면 다음 파일을 다운로드하세요:

샘플 데이터

# curl
curl -O https://storage.googleapis.com/hyperdx/sample.tar.gz
# or
# wget https://storage.googleapis.com/hyperdx/sample.tar.gz

이 파일에는 공개 OpenTelemetry demo의 예제 로그, 메트릭, 트레이스가 포함되어 있습니다. 이는 마이크로서비스로 구성된 간단한 전자상거래 스토어입니다. 원하는 디렉터리에 이 파일을 복사하세요.

샘플 데이터 로드하기

이 데이터를 로드하려면 배포된 OpenTelemetry(OTel) 컬렉터의 HTTP 엔드포인트로 전송하십시오.

다음 명령을 실행하여 데이터를 OTel collector로 전송하세요:

for filename in $(tar -tf sample.tar.gz); do
  endpoint="http://localhost:4318/v1/${filename%.json}"
  echo "loading ${filename%.json}"
  tar -xOf sample.tar.gz "$filename" | while read -r line; do
    printf '%s\n' "$line" | curl -s -o /dev/null -X POST "$endpoint" \
    -H "Content-Type: application/json" \
    -H "authorization: ${CLICKSTACK_API_KEY}" \
    --data-binary @-
  done
done

이는 OTLP 로그, 트레이스 및 메트릭 소스가 OTel collector로 데이터를 전송하는 것을 시뮬레이션합니다. 프로덕션 환경에서 이러한 소스는 언어 클라이언트 또는 다른 OTel collector가 될 수 있습니다.

Search 뷰로 돌아가면 데이터 로드가 시작된 것을 확인할 수 있습니다(데이터가 표시되지 않는 경우 시간 범위를 Last 1 hour로 조정하세요):

HyperDX 검색

데이터 로딩에는 몇 분이 소요됩니다. 다음 단계로 진행하기 전에 로드가 완료될 때까지 기다리세요.

세션 탐색하기

사용자가 상품 결제 시 문제를 겪고 있다는 보고를 받았다고 가정하겠습니다. HyperDX의 세션 재생(session replay) 기능을 사용하여 해당 사용자의 경험을 확인할 수 있습니다.

왼쪽 메뉴에서 Client Sessions를 선택하세요.

세션

이 뷰를 통해 전자상거래 스토어의 프론트엔드 세션을 확인할 수 있습니다. 세션은 사용자가 체크아웃하고 구매를 완료하려고 시도하기 전까지 익명으로 유지됩니다.

이메일이 포함된 일부 세션에 오류가 연결되어 있으며, 이는 실패한 트랜잭션 보고를 확인할 수 있는 가능성을 보여줍니다.

실패한 트레이스와 연결된 이메일을 선택하세요. 다음 화면에서 사용자의 세션을 재생하고 문제를 검토할 수 있습니다. 재생 버튼을 눌러 세션을 확인하세요.

세션 리플레이

재생 화면에서는 사용자가 사이트를 탐색하고 장바구니에 항목을 추가하는 과정을 보여줍니다. 세션 후반부로 건너뛰어 결제 시도 부분을 확인하세요.

모든 오류는 타임라인에 빨간색으로 표시됩니다.

사용자가 주문을 완료할 수 없었으나 명확한 오류는 표시되지 않았습니다. 사용자의 브라우저에서 발생한 네트워크 및 콘솔 이벤트가 포함된 왼쪽 패널의 하단으로 스크롤하세요. /api/checkout 호출 시 500 오류가 발생한 것을 확인할 수 있습니다.

세션에서 오류가 발생했습니다

500 오류를 선택하세요. OverviewColumn Values 모두 오류가 예상치 못한 것이며 Internal Error를 발생시킨다는 사실 외에는 문제의 원인을 표시하지 않습니다.

트레이스 탐색하기

Trace 탭으로 이동하여 전체 분산 추적을 확인하세요.

세션 트레이스

트레이스를 아래로 스크롤하여 오류의 원인인 checkout 서비스 스팬을 확인하세요. Payment 서비스 스팬을 선택하세요.

스팬

Column Values 탭을 선택하고 아래로 스크롤하세요. 캐시가 가득 차서 발생한 문제임을 확인할 수 있습니다.

컬럼 값

위로 스크롤하여 트레이스로 돌아가면, 이전 구성 덕분에 로그가 스팬과 연관되어 있는 것을 확인할 수 있습니다. 이는 추가적인 컨텍스트를 제공합니다.

연관 로그

결제 서비스의 캐시가 가득 차서 결제 완료를 방해하고 있음을 확인했습니다.

로그 탐색하기

자세한 내용을 확인하려면 Search로 돌아가세요:

소스에서 Logs를 선택하고 payment 서비스에 필터를 적용하세요.

로그

문제가 최근에 발생했음에도 불구하고 영향을 받은 결제 건수가 많은 것을 확인할 수 있습니다. 또한 Visa 결제와 관련된 캐시가 문제를 일으키는 것으로 보입니다.

차트 메트릭

코드에 오류가 명확히 도입되었지만, 메트릭을 사용하여 캐시 크기를 확인할 수 있습니다. Chart Explorer 뷰로 이동하세요.

데이터 소스로 Metrics를 선택하세요. 차트 빌더를 완성하여 visa_validation_cache.size (Gauge)Maximum을 플롯하고 재생 버튼을 누르세요. 캐시는 최대 크기에 도달하기 전까지 명확히 증가했으며, 그 이후 오류가 발생했습니다.

메트릭