이 페이지에서는 BigQuery에서 내보낸 Crashlytics 데이터 및 Firebase 세션 데이터의 데이터 세트 스키마를 제공합니다.
Firebase는 내보낸 데이터에 대해 BigQuery에 새 데이터 세트를 만듭니다.
Firebase 세션 데이터 세트(세션 데이터 내보내기가 사용 설정된 경우)
데이터 세트 Crashlytics 작업
Crashlytics 데이터는 firebase_crashlytics라는 BigQuery 데이터 세트로 내보내집니다. 이 데이터 세트는 프로젝트에 여러 개의 앱이 있더라도 프로젝트 전체를 포함합니다.
테이블
기본적으로 Firebase는 BigQuery에 연결된 프로젝트의 각 앱에 대해 Crashlytics 데이터 세트 내에 개별 테이블을 만듭니다.
테이블 이름은 앱의 식별자(마침표가 밑줄로 변환됨)를 기반으로 지정되며 앱의 플랫폼(_IOS 또는 _ANDROID)이 추가됩니다. 예를 들어 패키지 이름이 com.google.test인 Android 앱의 데이터는 com_google_test_ANDROID라는 이름의 테이블에 포함됩니다.
BigQuery로 스트리밍 내보내기가 사용 설정된 경우 데이터도
_REALTIME이 추가된 테이블(예:com_google_test_ANDROID_REALTIME)로 실시간 스트리밍됩니다.테이블의 각 행은 비정상 종료, 심각하지 않은 오류, ANR을 포함하여 앱에서 발생한 이벤트를 나타냅니다.
표에는 앱에서 정의한 커스텀 Crashlytics 키(iOS+ | Android | Flutter | Unity) 외에 표준 Crashlytics 데이터 세트가 포함됩니다.
행
테이블의 각 행은 앱에 발생한 오류를 나타냅니다.
열
비정상 종료, 심각하지 않은 오류, ANR의 테이블 열은 동일합니다.
BigQuery로 스트리밍 내보내기가 사용 설정되어 있으면 실시간 테이블에 배치 테이블과 동일한 열이 포함됩니다.
스택 트레이스가 없는 이벤트를 나타내는 행에 열이 있을 수 있습니다.
내보낸 Crashlytics 데이터의 테이블에 있는 열은 다음과 같습니다.
| 필드 이름 | 데이터 유형 | 설명 |
|---|---|---|
app_orientation |
STRING | 예: PORTRAIT, LANDSCAPE, FACE_UP, FACE_DOWN, 등 |
application |
RECORD | 이벤트를 생성한 앱 |
application.build_version |
STRING | 앱의 빌드 버전 |
application.display_version |
STRING | |
blame_frame |
RECORD | 비정상 종료나 오류의 근본 원인으로 확인된 프레임 |
blame_frame.address |
INT64 | 코드가 포함된 바이너리 이미지의 주소 Java 예외에 대해 설정되지 않음 |
blame_frame.blamed |
부울 | Crashlytics에서 이 프레임이 비정상 종료나 오류의 근본 원인이라고 판단했는지 여부 |
blame_frame.file |
STRING | 프레임 파일의 이름 |
blame_frame.library |
STRING | 프레임을 포함하는 라이브러리의 표시 이름 |
blame_frame.line |
INT64 | 프레임 파일의 줄 번호 |
blame_frame.offset |
INT64 | 코드가 포함된 바이너리 이미지로의 바이트 오프셋 Java 예외에 대해 설정되지 않음 |
blame_frame.owner |
STRING | 예: DEVELOPER, VENDOR, RUNTIME, PLATFORM, SYSTEM 등 |
blame_frame.symbol |
STRING | 수화 기호 또는 원시 기호(수화될 수 없는 경우) |
breadcrumbs |
반복 레코드 | 타임스탬프가 적용된 Google Analytics 탐색경로(사용 설정된 경우) |
breadcrumbs.name |
STRING | 탐색경로와 연결된 이름 |
breadcrumbs.params |
반복 레코드 | 탐색경로와 연결된 매개변수 |
breadcrumbs.params.key |
STRING | 탐색경로와 연결된 매개변수 키 |
breadcrumbs.params.value |
STRING | 탐색경로와 연결된 매개변수 값 |
breadcrumbs.timestamp |
TIMESTAMP | 탐색경로와 연결된 타임스탬프 |
bundle_identifier |
STRING | Firebase 프로젝트에 등록된 앱의 고유 식별자입니다(예: com.google.gmailApple 플랫폼 앱의 경우 앱의 번들 ID입니다. Android 앱의 경우 앱의 패키지 이름입니다. |
crashlytics_sdk_versions |
STRING | 이벤트를 생성한 Crashlytics SDK 버전 |
custom_keys |
반복 레코드 | 개발자가 정의한 키-값 쌍 |
custom_keys.key |
STRING | 개발자가 정의한 키 |
custom_keys.value |
STRING | 개발자가 정의한 값 |
device |
RECORD | 이벤트가 발생한 기기 |
device_orientation |
STRING | 예: PORTRAIT, LANDSCAPE, FACE_UP, FACE_DOWN, 등 |
device.architecture |
STRING | 예를 들면 X86_32, X86_64, ARMV7, ARM64, ARMV7S 또는 ARMV7K입니다. |
device.manufacturer |
STRING | 기기 제조업체 |
device.model |
STRING | 기기 모델 |
error |
반복 레코드 | (Apple 앱만 해당) 심각하지 않은 오류 |
error_type |
STRING | 이벤트의 오류 유형입니다(예: FATAL, NON_FATAL, ANR 등). |
error.blamed |
부울 | Crashlytics에서 이 프레임이 오류의 근본 원인이라고 판단했는지 여부 |
error.code |
INT64 | 앱에서 커스텀 로깅된 NSError와 관련된 오류 코드 |
error.frames |
반복 레코드 | 스택 추적의 프레임 |
error.frames.address |
INT64 | 코드가 포함된 바이너리 이미지의 주소 |
error.frames.blamed |
부울 | Crashlytics에서 이 프레임이 오류의 근본 원인이라고 판단했는지 여부 |
error.frames.file |
STRING | 프레임 파일의 이름 |
error.frames.library |
STRING | 프레임을 포함하는 라이브러리의 표시 이름 |
error.frames.line |
INT64 | 프레임 파일의 줄 번호 |
error.frames.offset |
INT64 | 코드가 포함된 바이너리 이미지로의 바이트 오프셋 |
error.frames.owner |
STRING | 예: DEVELOPER, VENDOR, RUNTIME, PLATFORM, SYSTEM 등 |
error.frames.symbol |
STRING | 수화 기호 또는 원시 기호(수화될 수 없는 경우) |
error.queue_name |
STRING | 스레드가 실행 중인 큐 |
error.subtitle |
STRING | 스레드의 부제목 |
error.title |
STRING | 스레드의 제목 |
event_id |
STRING | 이벤트의 고유 ID입니다. |
event_timestamp |
TIMESTAMP | 이벤트가 발생한 시점 |
exceptions |
반복 레코드 | (Android만 해당) 이 이벤트 중에 발생한 예외. 중첩된 예외는 최신순으로 표시됩니다. 즉, 마지막 레코드가 처음 발생한 예외입니다. |
exceptions.blamed |
부울 | Crashlytics에서 예외를 오류 또는 비정상 종료의 원인으로 판단한 경우 True |
exceptions.exception_message |
STRING | 예외와 관련된 메시지 |
exceptions.frames |
반복 레코드 | 예외와 관련된 프레임 |
exceptions.frames.address |
INT64 | 코드가 포함된 바이너리 이미지의 주소 Java 예외에 대해 설정되지 않음 |
exceptions.frames.blamed |
부울 | Crashlytics에서 이 프레임이 비정상 종료나 오류의 근본 원인이라고 판단했는지 여부 |
exceptions.frames.file |
STRING | 프레임 파일의 이름 |
exceptions.frames.library |
STRING | 프레임을 포함하는 라이브러리의 표시 이름 |
exceptions.frames.line |
INT64 | 프레임 파일의 줄 번호 |
exceptions.frames.offset |
INT64 | 코드가 포함된 바이너리 이미지로의 바이트 오프셋 Java 예외에 대해 설정되지 않음 |
exceptions.frames.owner |
STRING | 예: DEVELOPER, VENDOR, RUNTIME, PLATFORM, SYSTEM 등 |
exceptions.frames.symbol |
STRING | 수화 기호 또는 원시 기호(수화될 수 없는 경우) |
exceptions.nested |
부울 | 마지막으로 발생한 예외를 제외하고 모두 True(즉, 첫 번째 레코드) |
exceptions.subtitle |
STRING | 스레드의 부제목 |
exceptions.title |
STRING | 스레드의 제목 |
exceptions.type |
STRING | 예외 유형(예: java.lang.IllegalStateException) |
firebase_session_id |
STRING | Crashlytics의 이벤트에 매핑된 Firebase 세션의 자동 생성 ID |
installation_uuid |
STRING | 고유의 앱 및 기기 설치를 식별하는 ID |
is_fatal |
부울 | 앱의 비정상 종료 여부 |
issue_id |
STRING | 이벤트와 관련된 문제 |
logs |
반복 레코드 | Crashlytics 로거에서 생성한 타임스탬프가 적용된 로그 메시지(사용 설정된 경우) |
logs.message |
STRING | 로깅된 메시지 |
logs.timestamp |
TIMESTAMP | 로그가 작성된 시점 |
memory |
RECORD | 기기의 메모리 상태 |
memory.free |
INT64 | 남은 메모리(바이트) |
memory.used |
INT64 | 메모리 사용량(바이트) |
operating_system |
RECORD | 기기의 OS 세부정보 |
operating_system.device_type |
STRING | 기기 유형(예: MOBILE, TABLET, TV 등), '기기 카테고리'라고도 함 |
operating_system.display_version |
STRING | 기기의 OS 버전 |
operating_system.modification_state |
STRING | 기기가 수정되었는지 여부(예: 탈옥된 앱은 MODIFIED이고 루팅된 앱은 UNMODIFIED) |
operating_system.name |
STRING | 기기의 OS 이름 |
operating_system.type |
STRING | (Apple 앱만 해당) 기기에서 실행되는 OS 유형(예: IOS, MACOS 등) |
platform |
STRING | Firebase 프로젝트에 등록된 앱의 플랫폼입니다(유효한 값: IOS 또는 ANDROID).
|
process_state |
STRING | BACKGROUND 또는 FOREGROUND |
storage |
RECORD | 기기의 영구 스토리지 |
storage.free |
INT64 | 남은 스토리지(바이트) |
storage.used |
INT64 | 스토리지 사용량(바이트) |
threads |
반복 레코드 | 이벤트 발생 시점에 표시된 스레드 |
threads.blamed |
부울 | Crashlytics에서 이 프레임이 비정상 종료나 오류의 근본 원인이라고 판단했는지 여부 |
threads.code |
INT64 | (Apple 앱만 해당) 애플리케이션에서 커스텀 로깅된 NSError의 오류 코드 |
threads.crash_address |
INT64 | 앱의 비정상 종료를 유발한 신호의 주소(비정상 종료된 네이티브 스레드에만 있음) |
threads.crashed |
부울 | 스레드의 비정상 종료 여부 |
threads.frames |
반복 레코드 | 스레드의 프레임 |
threads.frames.address |
INT64 | 코드가 포함된 바이너리 이미지의 주소 |
threads.frames.blamed |
부울 | Crashlytics에서 이 프레임이 오류의 근본 원인이라고 판단했는지 여부 |
threads.frames.file |
STRING | 프레임 파일의 이름 |
threads.frames.library |
STRING | 프레임을 포함하는 라이브러리의 표시 이름 |
threads.frames.line |
INT64 | 프레임 파일의 줄 번호 |
threads.frames.offset |
INT64 | 코드가 포함된 바이너리 이미지로의 바이트 오프셋 |
threads.frames.owner |
STRING | 예: DEVELOPER, VENDOR, RUNTIME, PLATFORM, SYSTEM 등 |
threads.frames.symbol |
STRING | 수화 기호 또는 원시 기호(수화될 수 없는 경우) |
threads.queue_name |
STRING | (Apple 앱만 해당) 스레드가 실행 중인 큐 |
threads.signal_code |
STRING | 앱의 비정상 종료를 유발한 신호의 코드(비정상 종료된 네이티브 스레드에만 있음) |
threads.signal_name |
STRING | 앱의 비정상 종료를 유발한 신호의 이름(비정상 종료된 네이티브 스레드에만 있음) |
threads.subtitle |
STRING | 스레드의 부제목 |
threads.thread_name |
STRING | 스레드의 이름 |
threads.title |
STRING | 스레드의 제목 |
unity_metadata.debug_build |
부울 | 디버그 빌드인 경우 |
unity_metadata.graphics_copy_texture_support |
STRING | Unity API에 정의된 대로 그래픽 텍스처 복사 지원 |
unity_metadata.graphics_device_id |
INT64 | 그래픽 기기의 식별자 |
unity_metadata.graphics_device_name |
STRING | 그래픽 기기의 이름 |
unity_metadata.graphics_device_type |
STRING | 그래픽 기기의 유형 |
unity_metadata.graphics_device_vendor_id |
INT64 | 그래픽 프로세서 공급업체의 식별자 |
unity_metadata.graphics_device_vendor |
STRING | 그래픽 기기의 공급업체 |
unity_metadata.graphics_device_version |
STRING | 그래픽 기기의 버전 |
unity_metadata.graphics_max_texture_size |
INT64 | 렌더링 텍스처 전용 최대 크기 |
unity_metadata.graphics_memory_size_mb |
INT64 | 그래픽 메모리(MB) |
unity_metadata.graphics_render_target_count |
INT64 | 그래픽 렌더링 대상 수 |
unity_metadata.graphics_shader_level |
INT64 | 그래픽의 셰이더 수준 |
unity_metadata.processor_count |
INT64 | 프로세서 수(코어) |
unity_metadata.processor_frequency_mhz |
INT64 | 프로세서의 주파수(MHz) |
unity_metadata.processor_type |
STRING | 프로세서 유형 |
unity_metadata.screen_refresh_rate_hz |
INT64 | 화면 재생 빈도(Hz) |
unity_metadata.screen_resolution_dpi |
STRING | 화면의 DPI(부동 소수점 수) |
unity_metadata.screen_size_px |
STRING | 너비x높이 형식의 화면 크기(픽셀) |
unity_metadata.system_memory_size_mb |
INT64 | 시스템의 메모리 크기(MB) |
unity_metadata.unity_version |
STRING | 이 기기에서 실행 중인 Unity 버전 |
user |
RECORD | (선택사항) 앱 사용자에 대해 수집된 정보 |
user.email |
STRING | (선택사항) 사용자의 이메일 주소 |
user.id |
STRING | (선택사항) 사용자와 연결된 앱별 ID |
user.name |
STRING | (선택사항) 사용자의 이름 |
variant_id |
STRING | 이 이벤트와 관련된 문제 변형 모든 이벤트에 관련된 문제 변형이 있는 것은 아닙니다. |
Firebase 세션 데이터 세트
Firebase 세션 데이터는 firebase_sessions라는 BigQuery 데이터 세트로 내보내집니다. 이 데이터 세트는 프로젝트에 여러 개의 앱이 있더라도 프로젝트 전체를 포함합니다.
테이블
기본적으로 Firebase는 BigQuery에 연결된 프로젝트의 각 앱에 대해 Firebase 세션 데이터 세트 내에 개별 테이블을 만듭니다.
테이블 이름은 앱의 식별자(마침표가 밑줄로 변환됨)를 기반으로 지정되며 앱의 플랫폼(_IOS 또는 _ANDROID)이 추가됩니다. 예를 들어 패키지 이름이 com.google.test인 Android 앱의 데이터는 com_google_test_ANDROID라는 이름의 테이블에 포함됩니다.
행
테이블의 각 행은 발생한 세션 이벤트를 나타냅니다.
열
BigQuery로 스트리밍 내보내기가 사용 설정되어 있으면 실시간 테이블에 배치 테이블과 동일한 열이 포함됩니다.
내보낸 Firebase 세션 데이터의 테이블에 있는 열은 다음과 같습니다.
| 필드 이름 | 데이터 유형 | 설명 |
|---|---|---|
instance_id |
STRING | 기기의 Firebase 설치 ID(FID)입니다. 고유한 앱 + 기기 설치를 식별합니다. |
session_id |
STRING | 이 세션의 고유 ID입니다. |
first_session_id |
STRING |
앱이 콜드 스타트된 이후 이 세션이 속한 일련의 세션 중 첫 번째 ID입니다. 콜드 스타트 이후에 발생한 모든 세션을 그룹화하는 데 사용할 수 있습니다. 이 세션이 첫 번째 세션인 경우 이 필드는 session_id와 동일합니다.
|
session_index |
INTEGER |
앱이 콜드 스타트된 후 이 세션이 들어온 순서입니다. 콜드 스타트 후 첫 번째 세션의 경우 0입니다. 콜드 스타트가 발생하지 않고 세션이 생성될 때마다(예: 30분 동안 활동이 없는 경우) 색인이 증가합니다.
|
event_type |
STRING |
세션에서 발생한 이벤트의 유형입니다(예: SESSION_START).
|
event_timestamp |
TIMESTAMP | 이벤트가 발생한 시간입니다. |
received_timestamp |
TIMESTAMP | 기기에서 서버로 이벤트를 수신한 시간입니다. |
performance_data_collection_enabled |
부울 | 세션 시점에 Firebase Performance Monitoring SDK 데이터 수집이 사용 설정되었는지 여부입니다. |
crashlytics_data_collection_enabled |
부울 | 세션 시점에 Firebase Crashlytics SDK 데이터 수집이 사용 설정되었는지 여부입니다. |
application |
RECORD | 애플리케이션을 설명합니다. |
application.build_version |
STRING |
애플리케이션의 빌드 버전입니다(예: 1523456).
|
application.display_version |
STRING |
애플리케이션의 디스플레이 버전입니다(예: 4.1.7).
|
device |
RECORD | 이벤트가 발생한 기기입니다. |
device.model |
STRING | 기기의 모델입니다. |
device.manufacturer |
STRING |
기기의 제조업체입니다. Apple 플랫폼 앱의 경우 NULL입니다.
|
operating_system |
RECORD | 기기의 OS를 설명합니다. |
operating_system.display_version |
STRING |
운영체제의 디스플레이 버전입니다(예: 10.2.1).
|
operating_system.name |
STRING | 운영체제의 이름입니다. |
operating_system.type |
STRING |
운영체제의 유형입니다(예: IOS). 이 필드는 Apple 기기에만 설정됩니다.
|
operating_system.device_type |
STRING |
기기의 유형입니다(예: MOBILE, TABLET, TV).
|