Skip to main content

분산추적

분산추적은 요청이 여러 서비스를 거쳐 처리되는 과정을 추적하고 분석할 수 있게 해주는 기능입니다.
Observability는 5개의 주요 탭을 통해 분산추적 데이터를 효과적으로 분석할 수 있습니다.

분산추적 기능은 Open Telemetry과 통합 후 사용할 수 있습니다.

〽️ ① 응답 시간 & 오류 히트맵
응답 시간 분포와 오류 발생 패턴을 시각적으로 분석

  • 요청 수에 따른 색상 변화 ( 연한색 -> 진한색 )
  • 마우스 Hover : 해당 시점의 응답 시간별 요청 수 확인
  • 영역 선택(드래그) : 해당 영역에 해당하는 요청만 확인

필터

  • 필터링 대상: Root Service Name, Root Span Name, Trace ID
  • 조건: =, !=, , !

개요

테이블 헤더

  • 루트 서비스 이름
    • 클릭 시 필터로 자동 추가 됨
  • 루트 스팬 이름
    • 요청의 시작점 span 이름
    • 클릭 시 필터로 자동 추가 됨
  • 초당 요청수
  • 오류 발생률
  • 백분위 응답시간
    • p50, p95, p99 의 응답시간을 제공하여, 응답시간 중앙값과 오래걸린 응답(p95, p99) 을 확인

추적

개별 추적 요청의 상세 정보를 확인하고 분석합니다.

테이블 헤더

  • 추적 ID
    • 고유 추적 식별자로 8자리로 축약하여 표시
    • 클릭 시 추적 상세를 보여주며, 해당 요청에 속한 모든 span 을 표시하고 각 span 정보와 응답시간을 표시
  • 루트 서비스 이름
  • 루트 스팬 이름
  • 상태: ✅ 성공 ❌ 에러
  • 응답시간

오류 원인

에러가 발생한 추적의 근본 원인을 자동으로 분석하고 분류합니다.

테이블 헤더

  • 에러가 발생한 루트 서비스 이름
  • 에러가 발생한 스팬 이름
  • 오류: 에러 메시지 표시
  • 샘플추적: 해당 에러의 샘플 추적 ID ( 클릭하면 해당 span 정보로 이동 )
    • ❗ 클릭 시 에러 상세 정보 확인 가능
  • 백분율: 전체 에러 중 해당 에러의 비율
    • 가장 빈번한 에러 유형 파악 가능

응답 시간 탐색기

느린 요청의 성능 병목 지점을 플레임그래프로 시각화하여 분석합니다.

플레임 그래프
  • 가로축 : 응답시간 ( 너비가 클수록 시간 소요 )
  • 세로축 : 호출 스택 ( 깊이가 클수록 중첩 호출 )
  • 노드 클릭 시 표시 정보
    • 함수명
    • 총 시간 : 해당 함수와 하위 함수들의 총 실행 시간
    • 자체 소요시간 : 해당 함수만의 실행 시간 ( 하위 함수 제외 )
    • 비율 : 전체 프로파일에서 차지하는 비율

속성 비교

선택한 추적 그룹과 다른 추적 그룹 간의 속성 차이를 자동 분석합니다.

속성 차이 분석

  • 자동 속성 탐지: 모든 span 속성을 자동으로 분석
  • 통계 비교: 선택영역(히트맵 차트) vs 기준선의 속성을 막대그래프로 비교

주요 비교 항목

  • HTTP 관련: URL, 메서드, 상태 코드
  • 데이터베이스: 쿼리, 테이블명, 연결 정보
  • 사용자 정보: 사용자 ID, 세션 정보
  • 시스템 정보: 호스트, 포트, 프로토콜
  • 커스텀 속성: 애플리케이션에서 추가한 모든 속성

OpenTelemetry 통합 버튼

Open Telemetry과 통합하는 방법으로 Open Telemetry Collector 를 통해서 수집하는 방법과 SDK 로 직접 Observability 서버로 수집하는 방식이 있습니다.
Open Telemetry Collector를 통해 수집하는 방법은 Collector에서 설정하며 SDK 방법은 각 애플리케이션에서 설정할 수 있습니다.