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

Error Tracking의 스택 트레이스 (Stack Traces in Error Tracking)

원문 보기 위키 갱신

Error Tracking이 스택 트레이스를 사용해 오류를 핑거프린팅하고 그룹화하며 발생 위치를 표시하는 방법을 안내해요.

출처: 문서

본문

개요

Error Tracking은 오류 스팬의 스택 트레이스를 사용해 오류를 핑거프린팅하고, 이슈로 그룹화하며, 발생 위치를 보여줘요. 이 페이지는 Error Tracking이 스택 트레이스를 위해 읽는 스팬 속성과 그것이 서비스의 언어 및 트레이서 버전에 따라 어떻게 달라지는지 설명해요.

스택 트레이스 스팬 속성

오류 스팬은 error.stack 스팬 속성에 스택 트레이스를 보고해요. 대부분의 트레이서에서 error.stack에는 오류가 처리될 때(예: catch 블록 또는 미들웨어에서) 캡처된 스택 트레이스가 포함돼요. 이는 항상 오류가 발생한 위치는 아니에요.

dd-trace-go v2.7.0 이상으로 계측된 Go 서비스의 경우 처리 스택 트레이스는 error.handling_stack 속성에 별도로 보고돼요. 이 경우 error.stack에는 사용 가능하다면 오류가 발생한 시점에 캡처된 스택 트레이스가 대신 포함돼요.

Error Tracking이 사용하는 스택 트레이스

Go 서비스의 경우

Go 서비스의 경우 Error Tracking은 사용할 스택 트레이스를 결정하는 폴백 메커니즘이 있어요:

  • Go 트레이서 v2.7.0 이상:
    • 발생 스택은 error.stack에 보고돼요. 사용 가능하면 이 스택이 사용돼요.
    • 처리 스택은 error.handling_stack에 보고돼요. 발생 스택을 사용할 수 없으면 이 스택이 사용돼요.
  • Go 트레이서 v2.7.0 미만:
    • 발생 스택은 error.details에 보고돼요. 사용 가능하면 이 스택이 사용돼요.
    • 처리 스택은 error.stack에 보고돼요. 발생 스택을 사용할 수 없으면 이 스택이 사용돼요.

모든 다른 언어의 경우

다른 모든 언어의 경우 처리 스택이 캡처되어 error.stack에 보고돼요. 이 속성은 Error Tracking이 이슈를 그룹화하고 의심되는 커밋 같은 정보를 파생하는 데 사용돼요.

더 알아보기 (Learn more)