На этой странице представлена схема логирования для экспортированных данных Crashlytics и данных сессий Firebase в Cloud Logging .
Схема сессий Firebase (если экспорт данных сессий разрешен).
Схема Crashlytics
Event
Сообщение, описывающее отдельное событие Crashlytics.
JSON-представление
{
"name": string,
"platform": string,
"bundleOrPackage": string,
"eventId": string,
"sessionId": string,
"eventTime": string,
"receivedTime": string,
"issue": {
object (Issue)
},
"issueVariant": {
object (IssueVariant)
},
"device": {
object (Device)
},
"memory": {
object (Memory)
},
"storage": {
object (Storage)
},
"operatingSystem": {
object (OperatingSystem)
},
"browser": {
object (Browser)
},
"version": {
object (Version)
},
"user": {
object (User)
},
"customKeys": {
string: string,
...
},
"installationUuid": string,
"crashlyticsSdkVersion": string,
"appOrientation": string,
"deviceOrientation": string,
"logs": [
{
object (Log)
}
],
"breadcrumbs": [
{
object (Breadcrumb)
}
],
"blameFrame": {
object (Frame)
},
"exceptions": [
{
object (Exception)
}
],
"errors": [
{
object (Error)
}
],
"threads": [
{
object (Thread)
}
],
"processState": string,
"issueTitle": string,
"issueSubtitle": string,
"buildStamp": string
}
| Поля | Описание |
|---|---|
name | string Обязательно. Только для вывода. Неизменяемый. Идентификатор. Название ресурса события. Формат: |
platform | stringМобильная платформа (Android или iOS). |
bundleOrPackage | string Имя пакета для приложений iOS или имя файла для приложений Android. Формат: |
eventId | stringТолько для вывода. Неизменяемый. Уникальный идентификатор события присваивается во время обработки. |
sessionId | stringУникальный идентификатор сессии Firebase. |
eventTime | string (Timestamp format)Отметка времени устройства, в которую было зафиксировано событие. Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30". |
receivedTime | string (Timestamp format)Временная метка сервера, в которую событие было получено системой Crashlytics. Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30". |
issue | object (Issue)Подробная информация по [Выпуску], относящемуся к этому [Мероприятию]. |
issueVariant | object (IssueVariant)Подробная информация о [Варианте выпуска], присвоенном этому [Событию]. |
device | object (Device)Метаданные мобильных устройств. |
memory | object (Memory)Использование памяти мобильного устройства. |
storage | object (Storage)Использование дискового пространства/флэш-памяти мобильного устройства. |
operatingSystem | object (OperatingSystem)Операционная система и версия. |
browser | object (Browser)Браузер и версия. |
version | object (Version)Версия мобильного приложения. |
user | object (User)Идентификаторы конечного пользователя для владельца устройства. |
customKeys | map (key: string, value: string)Пользовательские клавиши, установленные разработчиком во время сессии. Объект, содержащий список пар "ключ": значение. Пример: { "имя": "ключ", "масса": "1,3 кг", "количество": "3" }. |
installationUuid | stringУникальный идентификатор установки приложения на устройстве. Это поле используется для вычисления уникального количества затронутых пользователей. |
crashlyticsSdkVersion | stringВерсия SDK Crashlytics. |
appOrientation | stringОриентация приложения в момент сбоя (портретная или альбомная). |
deviceOrientation | stringОриентация устройства в момент аварии (вертикальная или горизонтальная). |
logs[] | object (Log)Сообщения журнала, записанные разработчиком во время сессии. |
breadcrumbs[] | object (Breadcrumb)Аналитические события, регистрируемые SDK для аналитики во время сессии. |
blameFrame | object (Frame)Кадр трассировки стека, признанный причиной ошибки в результате обработки Crashlytics. Возможно, он отсутствует в будущих версиях анализатора. |
exceptions[] | object (Exception)Только для Android. Исключения, возникшие во время этого события. Вложенные исключения представлены в обратном хронологическом порядке, так что последняя запись соответствует первому выброшенному исключению. |
errors[] | object (Error)Только для Apple. Некритическая ошибка, зафиксированная SDK iOS и отображенная в трассировке стека. |
threads[] | object (Thread)Потоки приложения, присутствовавшие на момент регистрации события. Каждый поток содержит трассировку стека. Вину за ошибку возложат на один из потоков. |
processState | stringСостояние процесса приложения на момент события. |
issueTitle | stringЗаголовок выпуска, к которому было отнесено событие. Обычно это название исходного файла или метода. |
issueSubtitle | stringПодзаголовок выпуска, в который было включено данное событие. Обычно это символ или сообщение об исключении. |
buildStamp | stringМетаданные, предоставляемые системой сборки приложения, включая информацию о репозитории системы контроля версий. |
Memory
Использование памяти мобильного устройства.
JSON-представление
{
"used": string,
"free": string
}
| Поля | Описание |
|---|---|
used | string (int64 format)Используемые байты. |
free | string (int64 format)Свободные байты. |
Storage
Использование дискового пространства/флэш-памяти мобильного устройства. Данные отображаются не для всех устройств.
JSON-представление
{
"used": string,
"free": string
}
| Поля | Описание |
|---|---|
used | string (int64 format)Использовано байтов. |
free | string (int64 format)Свободные байты. |
User
Идентификаторы конечных пользователей, предоставленные разработчиком.
JSON-представление
{
"id": string
}
| Поля | Описание |
|---|---|
id | stringИдентификатор пользователя, если он предоставлен разработчиком приложения. |
Frame
Кадр в трассировке стека.
JSON-представление
{
"line": string,
"file": string,
"symbol": string,
"offset": string,
"address": string,
"library": string,
"owner": string,
"blamed": boolean
}
| Поля | Описание |
|---|---|
line | string (int64 format)Номер строки в файле кадра. |
file | stringИмя исходного файла, в котором находится фрейм. |
symbol | stringСимвол рамки после деобфускации или символизации. Исходный символ устройства, если его не удалось восстановить. |
offset | string (int64 format)Смещение в байтах в двоичном образе, содержащем код. Присутствует для нативных кадров. |
address | string (int64 format)Адрес в двоичном образе, содержащий код. Присутствует для нативных кадров. |
library | stringОтображаемое имя библиотеки, в которую входит данный фрейм. |
owner | stringОдин из вариантов: DEVELOPER, VENDOR, RUNTIME, PLATFORM или SYSTEM. |
blamed | booleanВерно, если анализ Crashlytics определил, что именно этот кадр, вероятно, является причиной ошибки. |
Exception
Исключение Java и трассировка стека, наблюдаемые только в приложениях Android.
JSON-представление
{
"type": string,
"exceptionMessage": string,
"nested": boolean,
"title": string,
"subtitle": string,
"blamed": boolean,
"frames": [
{
object (Frame)
}
]
}
| Поля | Описание |
|---|---|
type | stringТип исключения, например, java.lang.IllegalStateException. |
exceptionMessage | stringСообщение, связанное с исключением. |
nested | booleanЭто справедливо для всех исключений, кроме последнего выброшенного исключения (т.е. первой записи). |
title | stringНазвание исключения. |
subtitle | stringПодзаголовок исключения. |
blamed | booleanВерно, если анализ Crashlytics определил, что ошибка произошла именно в этом потоке. |
frames[] | object (Frame)Кадры в трассировке стека исключения. |
Error
Некритическая ошибка и трассировка стека, встречающаяся только в приложениях Apple.
JSON-представление
{
"queue": string,
"code": string,
"title": string,
"subtitle": string,
"blamed": boolean,
"frames": [
{
object (Frame)
}
]
}
| Поля | Описание |
|---|---|
queue | stringОчередь, в которой выполнялся поток. |
code | string (int64 format)Код ошибки, связанный с пользовательской записью NSError в журнале приложения. |
title | stringНазвание ошибки. |
subtitle | stringПодзаголовок ошибки. |
blamed | booleanЭто верно, если анализ Crashlytics определил, что трассировка стека в этой ошибке указывает на место возникновения сбоя. |
frames[] | object (Frame)Кадры в трассировке стека ошибки. |
Thread
Обсуждение приложения.
JSON representation</code></th>
</tr>
</thead>
<tbody>
<tr>
<td><code>{
"crashed": boolean,
"name": string,
"queue": string,
"signal": string,
"signalCode": string,
"crashAddress": string,
"title": string,
"subtitle": string,
"blamed": boolean,
"frames": [
{
object (Frame)
}
],
"threadId": string,
"sysThreadId": string,
"threadState": enum (State)
}
| Поля | Описание |
|---|---|
crashed | booleanВозвращает true, когда поток завершился с ошибкой. |
name | stringНазвание темы. |
queue | stringОчередь, в которой выполнялся поток. |
signal | stringНазвание сигнала, вызвавшего сбой приложения. Присутствует только в потоках, завершившихся с ошибкой. |
signalCode | stringКод сигнала, вызвавшего сбой приложения. Присутствует только в потоках, выполнение которых завершилось с ошибкой. |
crashAddress | string (int64 format)Адрес сигнала, вызвавшего сбой приложения. Присутствует только в потоках, завершившихся с ошибкой. |
title | stringЗаголовок темы. |
subtitle | stringПодзаголовок темы. |
blamed | booleanВерно, если анализ Crashlytics определил, что ошибка произошла именно в трассировке стека в этом потоке. |
frames[] | object (Frame)Кадры в трассировке стека потока. |
threadId | string (int64 format)Идентификатор потока, доступен только для потоков ANR. |
sysThreadId | string (int64 format)Системный идентификатор потока, доступный только для потоков ANR. |
threadState | enum (State)Только вывод. Состояние потока в момент возникновения ошибки ANR. |
State
Состояние потока в момент возникновения ошибки ANR.
| Перечисления | Описание |
|---|---|
STATE_UNSPECIFIED | Состояние потока не указано. |
THREAD_STATE_TERMINATED | Работа потока завершена. |
THREAD_STATE_RUNNABLE | Поток был работоспособен. |
THREAD_STATE_TIMED_WAITING | Поток ожидал завершения по истечении времени ожидания. |
THREAD_STATE_BLOCKED | Обсуждение заблокировано. |
THREAD_STATE_WAITING | Тема ждала. |
THREAD_STATE_NEW | Поток запущен, но ничего ещё не выполнено. |
THREAD_STATE_NATIVE_RUNNABLE | Поток был встроенным, и мы не смогли эвристически определить, что он ожидает завершения, поэтому предполагаем, что он готов к выполнению. |
THREAD_STATE_NATIVE_WAITING | Мы эвристически определили, что поток находится в состоянии ожидания. |
Схема сессий Firebase
FirebaseSessionEvent
Записи сессий, произведенные с помощью Firebase App Quality Sessions SDK.
JSON-представление
{
"sessionId": string,
"eventType": enum (SessionEventType),
"firstSessionId": string,
"sessionIndex": integer,
"firebaseInstallationId": string,
"eventTime": string,
"version": {
object (Version)
},
"device": {
object (Device)
},
"operatingSystem": {
object (OperatingSystem)
}
}
| Поля | Описание |
|---|---|
sessionId | stringУникальный идентификатор сессии Firebase. |
eventType | enum (SessionEventType)Тип события сессии. В настоящее время SDK поддерживает только события SESSION_START. |
firstSessionId | stringИдентификатор первой сессии после последнего холодного запуска. Этот идентификатор и sessionId будут одинаковыми для всех запусков приложения. |
sessionIndex | integerУказывает количество сессий, прошедших с момента последнего холодного запуска. |
firebaseInstallationId | stringУникально идентифицирует устройство с установленными приложениями Firebase. |
eventTime | string (Timestamp format)Отметка времени начала сессии. Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30". |
version | object (Version)Номера версий мобильного приложения. |
device | object (Device)Метаданные мобильных устройств. |
operatingSystem | object (OperatingSystem)Операционная система и версия. |
SessionEventType
Типы SessionEvent , которые записываются.
| Перечисления | Описание |
|---|---|
SESSION_EVENT_TYPE_UNKNOWN | Неизвестный. |
SESSION_START | Началась сессия подачи заявок. |
Схема журнала устройства
DeviceLog
Представляет структуру записей deviceLog.
JSON-представление
{
"eventId": string,
"sessionId": string,
// Union field payload can be only one of the following:
"log": {
object (Log)
},
"breadcrumb": {
object (Breadcrumb)
}
// End of list of possible types for union field payload.
}
| Поля | Описание |
|---|---|
eventId | stringТолько для вывода. Неизменяемый. Идентификатор события, с которым это связано. |
sessionId | stringУникальный идентификатор сессии Firebase. |
| |
log | object (Log)Журнал Crashlytics. |
breadcrumb | object (Breadcrumb)Хлебные крошки Crashlytics. |
Log
Логи, предоставленные разработчиком и записанные во время сессии.
JSON-представление
{
"logTime": string,
"message": string
}
| Поля | Описание |
|---|---|
logTime | string (Timestamp format)Отметка времени устройства на момент регистрации линии. Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30". |
message | stringСообщение в журнале. |
Breadcrumb
Аналитические события, записанные во время сессии.
JSON-представление
{
"eventTime": string,
"title": string,
"params": {
string: string,
...
}
}
| Поля | Описание |
|---|---|
eventTime | string (Timestamp format)Отметка времени события на устройстве. Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30". |
title | stringНазвание аналитического события. |
params | map (key: string, value: string)Параметры события. Объект, содержащий список пар "ключ": значение. Пример: { "имя": "ключ", "масса": "1,3 кг", "количество": "3" }. |