APM의 Java 에이전트는 애플리케이션 내에서 발생하는 오류에 대한 자세한 정보를 보고합니다. 이를 통해 애플리케이션의 성능이나 최종 사용자의 경험에 영향을 미칠 수 있는 문제 영역에 대한 통찰력을 얻을 수 있습니다.
Java 에이전트 버전 3.40.0 이상 에는 다음을 포함하여 오류가 보고되는 방식을 제어할 수 있는 몇 가지 구성 옵션이 있습니다.
오류율 또는 Apdex에 영향을 미치지 않도록 예상 오류 구성
오류 무시
자동으로 보고되지 않는 오류 보고
오류 데이터 보기에 대한 자세한 내용은 오류 분석 을 참조하십시오. 모든 에이전트의 오류 데이터에 대한 개요는 APM의 오류 관리 를 참조하십시오.
일반적으로 보고되는 오류 예
Java 에이전트는 다음 시나리오에서 오류를 보고합니다.
오류 보고
Comments
처리되지 않은 오류(스택 추적 포함)
Java 에이전트가 추적한 트랜잭션 내에서 처리되지 않은 오류가 발생하면 전체 스택 추적과 함께 오류가 보고됩니다.
HTTP 상태 코드(스택 추적 없음)
애플리케이션의 트랜잭션이 HTTP 상태 코드(예: 클라이언트 오류의 경우 400 를 생성하면 스택 추적 없이 오류를 보고합니다. 그 이유는 다음과 같습니다.
애플리케이션 서버가 오류 조건을 감지하고 상태 코드를 명시적으로 설정했습니다.
또는
프로그램 로직이 오류 조건을 감지했으므로 예외 개체나 스택이 없습니다.
이러한 유형의 트랜잭션에 스택 추적을 포함하려면 noticeError(...) API 호출을 사용해야 합니다.
noticeError(...) API 호출
Java 에이전트가 noticeError(...) API 호출을 사용하여 명시적으로 호출하는 경우 트랜잭션 내에서 발생하는지 여부에 관계없이 오류가 보고됩니다. 보고된 정보는 Javadocs 에 설명된 대로 noticeError(...) API 호출에 사용된 매개변수에 따라 다릅니다.
100% 이상 보고되는 범위 없는 오류
저항 에이전트는 프로세서와 관련되지 않은 오류인 범위가 지정되지 않은 오류를 보고할 수 있습니다. 이로 인해 타임슬라이스에 하나의 트랜잭션이 있을 수 있고 동일한 타임슬라이스에 여러 오류가 있을 수 있습니다. 이 상황에서 뉴렐릭은 오류율 over 100% 을 표시합니다.
오류 보고 구성
중요
이 기능을 사용하려면 최신 릴리스 (Java 에이전트 3.40.0 이상)로 업그레이드 하십시오.
Java 에이전트는 오류가 보고되는 방식을 제어하는 몇 가지 유연한 구성 옵션을 제공합니다.
이러한 noticeError 버전에서 보고된 오류는 newrelic.yml 에서 예상 오류 로 구성할 수 있습니다. 이 API에 대한 호출은 오류가 newrelic.yml 에서 무시 된 것으로 구성된 경우 무시됩니다. 자세한 내용은 오류 구성 우선 순위 를 참조하십시오.
이 noticeError() API 호출을 사용하여 자동으로 보고되지 않는 오류를 보고하고 newrelic.yml 에서 예상 오류 로 구성합니다.
애플리케이션 비즈니스 로직의 일부로 expected 인 오류는 오류율이나 Apdex 점수에 영향을 미치지 않도록 방지할 수 있지만 여전히 APM에 보고됩니다. 이를 통해 문제 해결을 위해 UI 에 오류 정보를 유지하는 동시에 이러한 오류로 인해 발생하는 알림(설명율 및 Apdex 점수 기준)을 방지할 수 있습니다.
noticeError API 호출의 expected 매개변수는 YAML의 expected_classes 를 재정의합니다. 따라서 오류는 정상으로 보고됩니다( expected 로 표시되지 않음).
YAML 구성:
error_collector:
ignore_classes:
-"com.example.ErrorClass"
그리고
추가 YAML 구성:
error_collector:
expected_classes:
-"com.example.ErrorClass"
결과:
YAML ignore_classes/ignore_messages 은 YAML expected_classes/expected_messages 을 재정의하므로 오류가 무시됩니다. 이 동일한 원칙이 ignore_status_codes 및 expected_status_codes 에 적용됩니다.
오류 세부정보에 대한 로그 검사
로그와 애플리케이션의 데이터를 함께 가져와 문제 해결을 더 쉽고 빠르게 할 수 있습니다. 컨텍스트의 로그를 사용하면 앱의 UI에서 직접 오류 및 추적과 관련된 로그 메시지를 볼 수 있습니다.