본문 바로가기
WIKI 기술 지식 베이스

백엔드 서비스용 오류 추적 (Error Tracking for Backend Services)

원문 보기 위키 갱신

시스템의 건강 상태를 위해서는 Datadog가 수집한 오류를 지속적으로 모니터링하는 것이 중요해요. 개별 오류 이벤트가 많아지면 트러블슈팅을 위해 어떤 오류를 우선 처리할지 정하기 어려워져요.

출처: 문서

본문

Error Tracking은 수천 개의 유사한 오류를 하나의 이슈(issue)로 그룹화해 디버깅을 단순화해요. 이슈는 다음과 같은 인사이트를 제공하는 오류 데이터의 집계예요:

  • 얼마나 많은 사용자가 영향을 받았는지
  • 오류가 처음 발생한 시기
  • 어떤 커밋이 오류를 일으켰을 가능성이 높은지

Error Tracking은 다음을 가능하게 해줘요:

  • 치명적 오류 추적, 분류(triage), 디버깅
  • 유사한 오류를 이슈로 그룹화해 중요한 오류를 더 쉽게 식별하고 노이즈를 줄이기
  • 높은 오류 볼륨이나 새 이슈 같은 오류 추적 이벤트에 모니터 설정
  • 이슈를 시간에 따라 추적해 언제 시작됐는지, 여전히 진행 중인지, 얼마나 자주 발생하는지 알기

설정 (Setup)

Error Tracking은 APM이 지원하는 모든 언어에서 사용할 수 있어요. 추가 SDK나 구성 변경이 필요 없어요.

선택적으로 스택 트레이스에서 코드 스니펫을 보려면 GitHub 통합을 설정해요.

저장소 구성 시작에 대한 내용은 Source Code Integration 문서를 참고해요.

스팬 속성을 사용해 오류 스팬 추적하기

Datadog SDK는 통합과 백엔드 서비스 소스 코드의 수동 계측을 통해 오류를 수집해요. 오류 스팬은 추적되려면 error.stack, error.message, error.type 스팬 속성을 포함하고 완전한 trace에 속해야 해요. 서비스 내에서 오류가 여러 번 보고되면 맨 위의 오류만 유지돼요.

⚠️ Go tracer는 v2.7.0 버전에서 스택 트레이스를 보고하는 데 사용하는 속성을 변경했어요. 이전 Go tracer 버전(v2.7.0 이전)에서는 스택 트레이스가 error.stack 스팬 속성으로 보고됐어요. v2.7.0부터 Go tracer는 처리 스택 트레이스를 error.handling_stack 스팬 속성으로 보고해요(error.stack은 사용 가능할 때 던지는(throw) 스택을 담음). 자세한 내용은 Error Tracking의 스택 트레이스를 참고해요.

Error Tracking은 처리하는 각 오류 스팬에 대한 지문(fingerprint)을 계산해요. 이 지문은 오류 유형, 오류 메시지, 스택 트레이스를 이루는 프레임을 사용해요. 같은 지문을 가진 오류는 함께 그룹화되어 같은 이슈에 속해요. 자세한 내용은 Trace Explorer 문서를 참고해요.

어떤 오류를 추적할지 제어하기

Error Tracking은 모든 오류 스팬을 자동으로 처리하지만, 어떤 오류를 수집하고 어떻게 관리할지는 제어할 수 있어요:

  • 포함·제외 규칙으로 오류 필터링: 서비스, 환경, 오류 유형 같은 속성에 따라 오류를 포함하거나 제외하는 규칙을 정의해요. Manage Data Collection 참고.
  • 비율 제한 설정: 비용 관리를 위해 하루 수집 오류 볼륨을 제어해요. Manage Data Collection 참고.
  • 특정 이슈 제외: 반복되는 실행 불가능한 이슈를 EXCLUDED로 표시해 수집을 중지해요. Issue States 참고.
  • 전체 trace 필터링: (오류를 필터링하는 대신) trace가 Datadog로 전송되지 않도록 방지해요. APM에서 원하지 않는 리소스 무시하기 참고.

문제를 시작·디버깅하려면 이슈를 살펴보기

Error Tracking은 Error Tracking Explorer에서 백엔드 서비스에서 수집한 오류를 자동으로 이슈로 분류해요. 주요 기능 둘러보기는 Error Tracking Explorer 문서를 참고해요.

APM에서 만들어진 이슈에는 영향받은 스팬의 분포, 가장 최근의 가장 관련 있는 스택 트레이스, 스팬 속성, 호스트 태그, 컨테이너 태그, 메트릭이 포함돼요.

더 알아보기 (Learn more)