Error Reporting은 실행 중인 클라우드 서비스에서 발생한 오류를 집계합니다. 이러한 오류는 Error Reporting API에서 보고되거나 Error Reporting이 로그 항목에서 스택 추적과 같은 일반적인 텍스트 패턴을 검사할 때 오류로 유추됩니다. Error Reporting은 근본 원인이 동일한 것으로 간주되는 오류를 그룹화합니다.
그룹화하기 전에
Error Reporting은 그룹화에 대한 오류를 평가하기 전에 다음과 같은 결정을 내립니다.
- App Engine 표준 환경에서
ERROR
보다 낮은 심각도로 로깅된 오류는 무시됩니다. - 사용자가 소유하지 않은 스택 프레임은 무시됩니다(예: 공개 라이브러리에 속한 프레임).
- 하나 이상의 스택 프레임의 반복 시퀀스는 해당 시퀀스의 단일 어커런스로 대체됩니다.
- 컴파일러에서 도입된 메소드와 기호는 삭제됩니다.
그룹화
시스템이 오류를 평가할 때 다음과 같은 일반적인 패턴을 따릅니다.
- 예외가 동일한 예외 유형 및 유사한 스택을 갖는 경우 함께 그룹화됩니다.
- 일반적으로 발생하는 소스 위치와 관련이 없는 예외에 대해서는 스택 추적이 무시됩니다.
- 예외 스택이 없는 오류는 보고된 소스 위치(
reportLocation
)를 계산하여 동일한 로그 항목으로 작성된 경우 함께 그룹화됩니다.
특히 다음과 같은 그룹화 규칙이 다음 순서대로 적용됩니다.
오류 유형 | 그룹 기준 |
---|---|
환경의 일반적인 문제점으로 발생한 오류.
예를 들어 App Engine 관련 문제는 다음과 같습니다. com.google.apphosting.runtime.HardDeadlineExceededError com.google.appengine.api.datastore.DatastoreTimeoutException 자바 문제: java.util.concurrent.CancellationException | 예외 유형별로 그룹화됩니다. |
스택 추적 오류. 중첩된 예외의 경우 가장 안쪽의 예외가 고려됩니다.
예: runtime error: index out of range package1.func1() file1:20 package2.func2() file2:33 | 예외 유형 및 최상위 프레임 5개로 그룹화됩니다. |
스택 트레이스는 없지만 메시지가 있는 오류.
예를 들면 다음과 같습니다. runtime error: index out of range func1() | 메시지(있는 경우) 및 함수 이름별로 그룹화됩니다. 메시지의 처음 3자 리터럴 토큰만 고려됩니다. 왼쪽의 예시에서는 runtime , error , index 입니다.
|