에러 상세
Last updated
Last updated
IMQA Crash 에러 상세는 특정 에러가 어떤 앱 버전에서 얼마나 발생했고, 어떤 사용자 환경에서 주로 발생했는지 분석할 수 있습니다. 호출 스택과 에러 발생 경로 등을 확인하고 관리자는 해당 에러에 태그를 달거나 처리 과정을 기록, 확인할 수 있습니다.
통합 에러 상세의 경우 통합적 관점에서 에러를 분석할 수 있습니다. 누적 발생이 많았던 에러에 대한 인사이트를 얻을 수 있습니다. 사용자별 에러 상세의 경우 사용자 관점에서 에러를 분석할 수 있습니다. 특정 사용자에게 발생했던 에러에 대한 인사이트를 얻을 수 있습니다.
통합 에러 상세는 통합적 관점에서 에러 정보를 분석할 수 있습니다. 누적 발생이 많았던 에러에 대한 인사이트를 얻을 수 있습니다.
‘대시보드'와 ‘통합 에러 목록'에서 특정 에러를 클릭하면 이동할 수 있으며, IMQA Crash 통합 에러 상세는 다음과 같이 구성됩니다.
❶ 에러 정보 ❷ 에러 분포 ❸ 사용자 정보 ❹ 성능 정보 ❺ 태그 ❻ 호출 스택/인스턴스/이동 경로
에러 정보와 누적 횟수를 확인하고 관리자가 처리 과정을 기록, 확인할 수 있습니다.
❶ 에러 정보 에러 명, 클래스 명, 에러가 발생한 코드 라인 번호를 표시합니다.
❷ 상태 담당자 확인 후 에러의 처리 상태를 변경할 수 있습니다. 클릭 시 상태를 변경할 수 있는 옵션을 표시합니다. 상태 변경 기준은 별도로 정해져 있지는 않으며 관리자 판단 후 아래와 같이 설정할 수 있습니다.
신규: 새롭게 발생된 에러일 경우
처리: 담당자 원인 파악 후 처리 중일 경우
완료: 담당자 처리 업무가 완료되었을 경우
마감: 관리자 확인 후 해당 에러 처리 업무를 완료시킬 경우
❸ 최신 버전/누적 해당 에러가 발생한 가장 최신 앱 버전 정보, 해당 에러의 발생 총 누적 횟수를 표시합니다.
❶ 캐치된 에러 인스턴스 웹뷰에서 에러가 생성되었을 경우 해당 에러의 캐치된 에러 인스턴스명을 표시합니다.
❷ 에러 메시지 특정 에러 타입 에러가 생성될 때 수집된 로그 메시지를 표시합니다.
❸ 에러 타입 / 코드 라인 넘버 웹뷰 에러의 타입과 해당 에러의 라인 넘버를 확인 할 수 있습니다.
Error
사용자가 설정한 에러 타입입니다.
EvalError
eval()에서 발생하는 오류입니다.
RangeError
변수의 유효한 범위를 벗어났을 경우 생성되는 오류입니다.
ReferenceError
잘못된 참조를 했을 경우 생성되는 오류입니다.
SyntaxError
잘못된 구문이 존재하는 경우 오류입니다.
TypeError
유효한 자료형이 아닐 경우 해당 타입의 오류입니다.
URIError
encodeURI()나 decodeURI() 함수에 부적절한 매개변수를 넘겨준 경우 생성되는 오류입니다.
AggregateError
여러 오류를 하나의 오류로 감싸는 오류 형태입니다.
최근 1주일간 해당 에러가 어떤 앱 버전에서 얼마나 발생했는지를 표시합니다. 발생 추이와 앱 버전별 비율을 확인할 수 있습니다.
앱 버전별 에러 발생률: 최근 1주일 동안 일별 에러 발생 수를 앱 버전별로 할당합니다.
최근 1주일간 해당 에러가 어떤 사용자 환경에서 많이 발생했는지를 표시합니다.
Wi-Fi/통신사*: 해당 에러가 발생한 사용자의 네트워크 환경을 표시합니다. Wi-Fi 환경과 통신사별로 확인할 수 있습니다.
최신 iOS 버전의 경우, Apple의 보안정책에 의해 통신사 정보 수집이 불가능합니다. 이 경우 통신사 정보가 표시되지 않거나, ‘Unknown’ 등으로 표시될 수 있습니다.
GPS: 해당 에러가 발생한 사용자의 GPS 상태를 표시합니다. ‘ON’과 ‘OFF’로 분류합니다.
앱 버전: 해당 에러가 발생한 사용자의 앱 버전을 표시합니다.
OS 버전: 해당 에러가 발생한 사용자의 OS 버전을 표시합니다.
디바이스: 해당 에러가 발생한 사용자의 디바이스를 표시합니다.
국가: 해당 에러가 발생한 사용자의 접속 국가를 표시합니다.
해당 에러가 발생했을 때의 평균 자원 사용량을 표시합니다.
CPU 사용량: 해당 에러가 발생했을 때의 평균 CPU 사용량을 ‘%’로 표시합니다.
메모리 사용량: 해당 에러가 발생했을 때의 평균 메모리 사용량을 ‘MB’로 표시합니다.
해당 에러에 대한 추가 정보를 자유롭게 태그로 관리할 수 있습니다.
➀ 태그에 원하는 태그 이름을 입력하고 [+] 아이콘을 클릭합니다.
➁ 아래 빈 영역에 등록한 태그가 표시됩니다. [X] 아이콘을 클릭해서 삭제할 수 있습니다.
크래시 발생 스택 정보와 전체 스레드의 스택을 확인할 수 있습니다. 개별 사용자의 상세 정보와 에러 발생 사용자들의 이동 경로를 분석할 수 있습니다.
크래시 발생 스택 정보와 전체 스레드의 스택을 확인하여 에러의 원인과 발생 위치를 확인할 수 있습니다. 스택에 관련된 정보를 파일 형태로 다운로드하여 구성원과 공유할 수 있습니다.
❶ 스택 필터 기본 크래시 정보를 가장 상단에 보여주고 있으며, 다른 Thread Call Stack에서 발생한 에러를 확인 할 수 있도록 다른 Stack 정보를 선택하여 보실 수 있습니다.
❷ 크래시 발생 스택 크래시 스택 정보 중 상위 스택 라인을 표시합니다.
❸ 전체 스택 전체 스레드의 스택 정보를 표시합니다. 이를 통해 보다 정확하게 에러의 원인을 파악하는 데에 참고할 수 있습니다.
❹ 원본 다운로드 스택에 관련된 정보를 ‘.txt’ 파일 형태로 다운로드하여 구성원과 공유할 수 있습니다. [원본 다운로드]를 클릭하면 ‘stacktrace.txt’ 파일을 ‘Download’ 폴더에 저장합니다.
크래시가 발생한 사용자 정보를 확인할 수 있습니다. 개별 사용자의 LogCat(로그켓, 로그 상세 정보)과 화면 이동 경로, 사용자 환경에 대한 상세 정보를 확인할 수 있습니다.
❶ 사용자 정보 개별 사용자의 IP 주소, 앱 버전, 디바이스, 국가 정보를 표시하고 로그켓, 이동 경로, 상세 정보를 팝업으로 확인할 수 있습니다.
❷ 로그켓 *안드로이드 앱 전용 안드로이드 앱의 경우 로그켓 정보를 확인할 수 있습니다. 개별 사용자 항목에서 로그켓 [보기]를 클릭하면 로그켓 정보 팝업이 표시됩니다.
로그켓은 안드로이드 상세 로그 정보를 의미하며, 에러 스택 정보로 파악하지 못한 문제를 크래시 발생 시점 이전에 기록된 로그 정보를 보여주고 있습니다.
❸ 상세 사용자의 디바이스, 앱 정보, OS 등의 환경 정보를 자세하게 확인할 수 있습니다. 개별 사용자 항목에서 상세 [보기]를 클릭하면 상세 정보 팝업이 표시됩니다.
사용자 정보: 해당 사용자의 이름, 고유ID, IP주소, 이메일 주소를 표시합니다.
디바이스*: 해당 사용자의 디바이스 관련 정보를 표시합니다.
최신 iOS 버전의 경우, Apple의 보안정책에 의해 통신사 정보 수집이 불가능합니다. 이 경우 통신사 정보가 표시되지 않거나, ‘Unknown’ 등으로 표시될 수 있습니다.
앱 정보: 해당 사용자의 앱 실행 시작시간, 버전 등의 정보를 표시합니다.
OS 정보: 해당 사용자의 플랫폼, OS 버전, 루팅 여부 등을 표시합니다.
SDK 정보: 해당 사용자의 앱에 설치된 IMQA SDK 버전을 표시합니다.
사용자 정의 로그*: 별도로 SDK에서 제공되는 API를 통해 로그 정보를 전송한 경우에 제공한 로그 정보를 표시합니다.
사용자 정의 키*: 별도로 SDK에서 제공되는 API를 통해 키/값 정보를 전송한 경우에 제공한 키/값 정보를 표시합니다.
현재 사용자 정의 로그 / 사용자 정의 키 등록은 안드로이드 SDK에서만 지원합니다.
❹ 사용자 행동분석 특정 크래시가 발생한 사용자가 어떤 흐름으로 앱을 이용했는지 행동분석으로 연계하여 추적 조회할 수 있습니다. 크래시 정보를 확인하고, 크래시 발생 전후 원인 분석이 가능합니다. 개별 사용자 항목에서 [사용자 행동분석]을 클릭하면 해당 사용자의 앱 실행 ~ 앱 종료까지의 화면 흐름을 ‘행동분석' 페이지를 통해 확인할 수 있습니다.
해당 에러가 발생했던 사용자들의 이동 경로를 확인할 수 있습니다.
사용자들의 에러 발생 지점 직전 5단계의 이동 경로를 표시합니다. 가장 방문 빈도가 높은 경로와 에러 발생 지점까지 어떤 경로들이 있었는지를 Sankey 다이어그램을 통해 확인할 수 있습니다. Sankey 다이어그램은 전체 흐름에서 가장 주된, 중요한 흐름을 찾을 때 유용합니다.
경로 단위 및 화면-화면 단위로 확인할 수 있으며, 화면과 화면 사이 영역에 마우스 포인터를 올리면 ‘순서:화면 → 순서:화면: 이동 수’로 툴팁이 표시됩니다.
이동 수: 특정 화면에서 특정 화면으로 이동한 사용자의 데이터 수를 카운트합니다.
사용자별 에러 상세는 사용자 관점에서 에러를 분석할 수 있습니다. 특정 사용자에게 발생했던 에러에 대한 인사이트를 얻을 수 있습니다.
‘사용자별 에러 목록'과 MPM 행동분석을 통해 연계한 ‘행동분석별 에러 목록'에서 특정 에러를 클릭하면 이동할 수 있으며, IMQA Crash 사용자별 에러 상세는 다음과 같이 구성됩니다.
❶ 에러 정보 ❷ 이슈 정보/사용자 정보 ❸ 호출 스택
특정 사용자에게 발생한 에러 정보를 확인할 수 있습니다.
에러 명, 클래스 명, 에러가 발생한 코드 라인 번호를 표시합니다.
❶ 캐치된 에러 인스턴스 웹뷰에서 에러가 생성되었을 경우 해당 에러의 캐치된 에러 인스턴스명을 표시합니다.
❷ 에러 메시지 특정 에러 타입 에러가 생성될 때 수집된 로그 메시지를 표시합니다.
❸ 에러 타입 / 코드 라인 넘버 웹뷰 에러의 타입과 해당 에러의 라인 넘버를 확인 할 수 있습니다.
Error
사용자가 설정한 에러 타입입니다.
EvalError
eval()에서 발생하는 오류입니다.
RangeError
변수의 유효한 범위를 벗어났을 경우 생성되는 오류입니다.
ReferenceError
잘못된 참조를 했을 경우 생성되는 오류입니다.
SyntaxError
잘못된 구문이 존재하는 경우 오류입니다.
TypeError
유효한 자료형이 아닐 경우 해당 타입의 오류입니다.
URIError
encodeURI()나 decodeURI() 함수에 부적절한 매개변수를 넘겨준 경우 생성되는 오류입니다.
AggregateError
여러 오류를 하나의 오류로 감싸는 오류 형태입니다.
해당 에러의 기본 정보와 사용자 환경 정보를 확인할 수 있습니다.
❶ 이슈 정보
발생일시: 해당 에러의 발생 일시를 표시합니다.
화면명: 해당 에러가 발생한 화면명을 표시합니다.
현재 웹 크래시 발생 화면명은 네이티브 화면 정보로 표시됩니다.
상태: 해당 에러 상위 통합 에러의 ‘통합 에러 상세’ 페이지에서 설정한 상태를 표시합니다.
❷ 사용자 정보
사용자 ID: SDK에서 사전 정의한 사용자의 ID 정보가 수집되었을 경우 해당 정보로 표시합니다. 설정한 사용자 정보가 없을 경우 ‘-’ 표시됩니다.
IP 주소: 해당 에러가 발생한 사용자의 GeoIP 주소를 표시합니다.
디바이스: 해당 에러가 발생한 사용자의 디바이스를 표시합니다.
앱 버전: 해당 에러가 발생한 사용자의 앱 버전을 표시합니다.
OS 버전: 해당 에러가 발생한 사용자의 OS 버전을 표시합니다.
Wi-Fi/통신사*: 해당 에러가 발생한 사용자의 네트워크 환경을 표시합니다. Wi-Fi 환경과 통신사별로 확인할 수 있습니다.
국가*: 해당 에러가 발생한 사용자의 접속 국가를 표시합니다.
❸ 상세 사용자의 디바이스, 앱 정보, OS 등의 환경 정보를 자세하게 확인할 수 있습니다. 사용자 정보에서 [상세]를 클릭하면 상세정보 팝업이 표시됩니다.
❹ 사용자 행동분석 특정 크래시가 발생한 사용자가 어떤 흐름으로 앱을 이용했는지 행동분석으로 연계하여 추적 조회할 수 있습니다. 크래시 정보를 확인하고, 크래시 발생 전후 원인 분석이 가능합니다. 사용자 정보에서 [사용자 행동분석]을 클릭하면 해당 사용자의 앱 실행 ~ 앱 종료까지의 화면 흐름을 ‘행동분석' 페이지를 통해 확인할 수 있습니다.
크래시 발생 스택 정보와 전체 스레드의 스택을 확인하여 에러의 원인과 발생 위치를 확인할 수 있습니다. 스택에 관련된 정보를 파일 형태로 다운로드하여 구성원과 공유할 수 있습니다.
❶ 스택 필터 기본 크래시 정보를 가장 상단에 보여주고 있으며, 다른 Thread Call Stack에서 발생한 에러를 확인 할 수 있도록 다른 Stack 정보를 선택하여 보실 수 있습니다.
❷ 크래시 발생 스택 크래시 스택 정보 중 상위 스택 라인을 표시합니다.
❸ 스택 정보 스택 정보를 표시합니다. 이를 통해 보다 정확하게 에러의 원인을 파악하는 데에 참고할 수 있습니다.
❹ 로그켓 *안드로이드 앱 전용 안드로이드 앱의 경우 로그켓 정보를 확인할 수 있습니다. [로그켓]을 클릭하면 로그켓 정보 팝업이 표시됩니다. 로그켓은 안드로이드 상세 로그 정보를 의미하며, 에러 스택 정보로 파악하지 못한 문제를 크래시 발생 시점 이전에 기록된 로그 정보를 보여주고 있습니다.
❺ 원본 다운로드 선택한 스레드의 스택 정보를 ‘.txt’ 파일 형태로 다운로드하여 구성원과 공유할 수 있습니다. [원본 다운로드]를 클릭하면 ‘스레드명_stacktrace.txt’ 파일을 ‘Download’ 폴더에 저장합니다.