조사 워크스루

조사 워크스루 (Investigation walkthrough)

이 단계별 워크스루를 따라 play.grafana.org에서 Grafana Traces Drilldown으로 오류를 조사해요. 이 튜토리얼은 직접 해보면서 배울 수 있도록 기본 워크플로를 안내해요.

출처: 문서

본문

이 단계별 워크스루를 따라 play.grafana.org에서 Grafana Traces Drilldown으로 오류를 조사하세요. 이 튜토리얼은 직접 해보며 배울 수 있도록 기본 워크플로를 안내해요.

Grafana Play에서 실용적인 예시를 배우며 탐색하고 작동 방식을 확인할 수 있어요. 이 기능은 Grafana Play 사이트에서 볼 수 있어요.

play.grafana.org는 공개 데모이므로 데이터는 시간이 지나며 변하고 리셋될 수 있어요. 데이터가 보이지 않으면 새로고침하고 시간 범위와 데이터 소스가 올바른지 확인하세요.

시나리오 (Scenario)

애플리케이션에서 오류가 발생한 것을 발견했고 어떤 요청이 왜 실패하는지 조사하고 싶어요.

Traces Drilldown 열기 (Open Traces Drilldown)

  1. play.grafana.org을 열어요.
  2. 메인 메뉴에서 Drilldown > Traces를 선택해요.
  3. Traces Drilldown이 트레이싱 데이터 소스를 선택한 상태로 열려요.

스팬 데이터 선택 (Choose span data)

기본적으로 Traces Drilldown은 정확한 서비스 수준 인사이트를 위해 Root spans(트레이스당 하나의 스팬)를 보여줘요. 더 깊은 오류 조사를 위해 Root spans로 시작한 다음, 자식 스팬의 다운스트림 또는 내부 오류를 포함하려면 All spans로 전환해요. 자세한 내용은 Choose root or full span data를 참고해요.

Errors 메트릭 선택 (Select Errors metric)

  1. Select metric type 섹션에서 세 가지 옵션이 보일 거예요:
    • Rate: 전체 요청/스팬 비율
    • Errors: 실패한 요청/스팬
    • Duration: 대기 시간 분포(히트맵)
  2. Errors를 클릭해 실패한 요청에 집중해요.
  3. 보기가 오류 특화 탭들을 보여주도록 업데이트돼요: Breakdown, Root cause errors, Comparison, Exceptions, Errored traces.

오류가 있는 트레이스 보기 (View traces with errors)

  1. Errored traces 탭을 클릭해 오류가 있는 개별 트레이스를 봐요.
  2. Search 필드를 사용해 보이는 열(예: 서비스 이름, 트레이스 이름 또는 상태)로 테이블을 필터링해요.
  3. 테이블에 트레이스가 다음 열로 표시돼요:
    • Start time: 요청이 발생한 시각
    • Status: 이 보기의 모든 트레이스에 대해 error 표시
    • Trace Service: 요청을 처리한 서비스(예: frontend)
    • Trace Name: 작업 이름(예: GET /api/quotes, POST /api/pizza)

특정 트레이스 살펴보기 (Examine a specific trace)

트레이스는 단일 요청이 서비스를 통과하는 것을 나타내는 스팬의 트리예요. 각 스팬은 하나의 작업을 캡처하고, 자식 스팬은 부모 안에 중첩되어 호출 체인을 보여줘요. 트레이스 구조를 이해하면 오류의 근본 원인을 식별할 수 있어요.

  1. 트레이스 행에서 Open in new tab을 클릭해 전체 트레이스 세부 정보를 봐요.
  2. 트레이스 보기가 Explore에서 열리며 다음을 보여줘요:
    • Trace header: 서비스 이름, HTTP 메서드, 상태 코드(예: 502)
    • Trace ID: 이 요청의 고유 식별자
    • Duration: 요청의 총 시간(예: 250.41ms)
    • Overview timeline: 오류 스팬이 강조된 모든 스팬의 시각적 표현
  3. span timeline은 작업의 시퀀스를 보여줘요:
    • Parent spans(예: frontend GET /api/quotes)
    • Child spans(예: HTTP GET)
    • 오류 스팬은 빨간색/주황색으로 강조돼요.
  4. Filters를 사용해 다음에 집중할 수 있어요:
    • Critical path: 트레이스를 통한 가장 느린 경로
    • Errors: 오류가 있는 스팬만
    • High latency: 느린 스팬

Breakdown으로 오류 패턴 탐색 (Explore error patterns with breakdown)

  1. Breakdown 탭으로 돌아가 오류 패턴을 봐요.
  2. Attributes 패널이 사용 가능한 차원을 보여줘요:
    • resource.service.name: 어떤 서비스에 오류가 있는지
    • span.name: 어떤 작업이 실패하는지
    • span.status: 오류 상태 코드
    • span.http.status_code: HTTP 응답 코드
  3. 속성을 클릭해 해당 차원으로 오류를 분해해요.

배운 것 (What you learned)

이 워크스루를 따라 다음을 배웠어요:

  • Traces Drilldown을 탐색하고 Errors 메트릭을 선택하는 방법
  • 테이블 형식으로 오류가 있는 트레이스 보기
  • 개별 트레이스 세부 정보 살펴보기
  • Breakdown을 사용해 오류 패턴 식별

Comparison 탭과 Inspect 기능 사용 같은 더 고급 조사 기법은 Example: Investigate source of errors 섹션을 참고해요.

다음 단계 (Next steps)

기본 워크스루를 완료했으니:

트레이스를 다른 텔레메트리 신호와 사용 (Use traces with other telemetry signals)

다른 텔레메트리 신호의 데이터가 있나요?

  • 메트릭을 다른 텔레메트리 데이터와 사용하는 방법과 상관관계가 중요한 이유는 Use signals together를 참고해요.
  • 모든 Drilldown 앱의 워크플로 탐색은 Telemetry signal workflows를 참고해요.

더 알아보기 (Learn more)