Вы можете экспортировать данные Crashlytics в BigQuery для дальнейшего анализа. BigQuery позволяет анализировать данные с помощью BigQuery SQL, экспортировать их в другой облачный провайдер и использовать для визуализации и создания пользовательских информационных панелей с помощью Google Data Studio.
Включить экспорт BigQuery
- Перейдите на страницу «Интеграции» в консоли Firebase.
- На карточке BigQuery нажмите «Ссылка» .
- Следуйте инструкциям на экране, чтобы включить BigQuery.
Когда вы связываете свой проект с BigQuery:
- Firebase настраивает ежедневную синхронизацию ваших данных из вашего проекта Firebase с BigQuery.
- По умолчанию все приложения в вашем проекте связаны с BigQuery, и все приложения, которые вы позже добавите в проект, автоматически связываются с BigQuery. Вы можете управлять тем, какие приложения отправляют данные .
- Firebase экспортирует копию существующих данных в BigQuery. Для каждого связанного приложения это включает пакетную таблицу, содержащую данные ежедневной синхронизации.
- Если вы включите потоковый экспорт Crashlytics BigQuery, все связанные приложения также будут иметь таблицу в реальном времени , содержащую постоянно обновляемые данные.
Чтобы деактивировать экспорт BigQuery, отсоедините свой проект в консоли Firebase.
Какие данные экспортируются в BigQuery?
Данные Firebase Crashlytics экспортируются в набор данных BigQuery с именем firebase_crashlytics
. По умолчанию внутри набора данных Crashlytics будут созданы отдельные таблицы для каждого приложения в вашем проекте. Firebase называет таблицы на основе идентификатора пакета приложения, с точками, преобразованными в символы подчеркивания, и названием платформы, добавляемым в конец.
Например, данные приложения с идентификатором com.google.test
будут находиться в таблице с именем com_google_test_ANDROID
. Эта пакетная таблица обновляется один раз в день. Если вы включите потоковый экспорт Crashlytics BigQuery, данные Firebase Crashlytics также будут передаваться в режиме реального времени в com_google_test_ANDROID_REALTIME
.
Каждая строка в таблице представляет событие, произошедшее в приложении, включая сбои, нефатальные ошибки и ошибки ANR.
Включить экспорт потоковой передачи Crashlytics BigQuery
Вы можете осуществлять потоковую передачу данных Crashlytics в режиме реального времени с помощью BigQueryStreaming . Вы можете использовать его для любых целей, требующих оперативных данных, например для представления информации на интерактивной информационной панели, просмотра развертывания в реальном времени или мониторинга проблем приложений, которые вызывают оповещения и настраиваемые рабочие процессы.
Экспорт потоковой передачи Crashlytics BigQuery недоступен для тестовой среды BigQuery.
Когда вы включаете потоковый экспорт Crashlytics BigQuery, в дополнение к пакетной таблице у вас будет таблица реального времени. Вот различия, о которых вам следует знать между таблицами:
Таблица партий | Таблица реального времени |
---|---|
|
|
Пакетная таблица идеально подходит для долгосрочного анализа и выявления тенденций с течением времени, поскольку мы надежно сохраняем события перед их записью, и их можно повторно заполнять в таблице на срок до 90 дней. Когда мы записываем данные в вашу таблицу реального времени, мы сразу же записываем их в BigQuery, поэтому они идеально подходят для интерактивных информационных панелей и пользовательских оповещений. Эти две таблицы можно объединить с запросом на сшивание, чтобы получить преимущества обеих. См. пример запроса 9 ниже.
По умолчанию срок действия раздела таблицы реального времени составляет 30 дней. Чтобы узнать, как это изменить, см. Обновление срока действия раздела .
Включить потоковую передачу Crashlytics BigQuery
Чтобы включить потоковую передачу, перейдите в раздел Crashlytics на странице интеграции BigQuery и установите флажок Включить потоковую передачу .
Шаблон Студии данных
Чтобы включить данные в реальном времени в шаблоне Data Studio, следуйте инструкциям в разделе Визуализация экспортированных данных Crashlytics с помощью Data Studio .
Взгляды
Вы можете превратить приведенные ниже примеры запросов в представления с помощью пользовательского интерфейса BigQuery. Подробные инструкции см. в разделе Создание представлений .
Что можно делать с экспортированными данными?
Экспорт BigQuery содержит необработанные данные о сбоях, включая тип устройства, операционную систему, исключения (приложения Android) или ошибки (приложения Apple), журналы Crashlytics, а также другие данные.
Работа с данными Firebase Crashlytics в BigQuery
В следующих примерах демонстрируются запросы, которые можно выполнять к данным Crashlytics. Эти запросы создают отчеты, которые недоступны на панели управления Crashlytics.
Примеры запросов Crashlytics
В следующих примерах показано, как создавать отчеты, объединяющие данные о событиях сбоя в более понятные сводки.
Пример 1: Сбои по дням
Поработав над исправлением как можно большего количества ошибок, ведущий разработчик считает, что ее команда наконец-то готова запустить новое приложение для обмена фотографиями. Прежде чем это сделать, они хотят проверить количество сбоев в день за последний месяц, чтобы убедиться, что их исправление ошибок сделало приложение более стабильным с течением времени:
SELECT COUNT(DISTINCT event_id) AS number_of_crashes, FORMAT_TIMESTAMP("%F", event_timestamp) AS date_of_crashes FROM `projectId.firebase_crashlytics.package_name_ANDROID` GROUP BY date_of_crashes ORDER BY date_of_crashes DESC LIMIT 30;
Пример 2. Найдите наиболее распространенные сбои
Чтобы правильно расставить приоритеты в производственных планах, менеджер проекта обдумывает, как указать 10 наиболее распространенных сбоев в его продукте. Они создают запрос, который предоставляет соответствующие данные:
SELECT DISTINCT issue_id, COUNT(DISTINCT event_id) AS number_of_crashes, COUNT(DISTINCT installation_uuid) AS number_of_impacted_user, blame_frame.file, blame_frame.line FROM `projectId.firebase_crashlytics.package_name_ANDROID` WHERE event_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(),INTERVAL 168 HOUR) AND event_timestamp < CURRENT_TIMESTAMP() GROUP BY issue_id, blame_frame.file, blame_frame.line ORDER BY number_of_crashes DESC LIMIT 10;
Пример 3: 10 частых сбоев устройств
Осень – новый сезон телефонов! Разработчик знает, что это также означает, что наступил сезон проблем, связанных с конкретными устройствами. Чтобы обойти надвигающиеся проблемы совместимости, они составили запрос, который идентифицирует 10 устройств, которые столкнулись с наибольшим количеством сбоев за последнюю неделю:
SELECT device.model, COUNT(DISTINCT event_id) AS number_of_crashes FROM `projectId.firebase_crashlytics.package_name_ANDROID` WHERE event_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 168 HOUR) AND event_timestamp < CURRENT_TIMESTAMP() GROUP BY device.model ORDER BY number_of_crashes DESC LIMIT 10;
Пример 4. Фильтрация по пользовательскому ключу
Разработчик игры хочет знать, на каком уровне его игры происходит больше всего сбоев. Чтобы помочь им отслеживать эту статистику, они устанавливают специальный ключ Crashlytics current_level
и обновляют его каждый раз, когда пользователь достигает нового уровня.
Цель-C
CrashlyticsKit setIntValue:3 forKey:@"current_level";
Быстрый
Crashlytics.sharedInstance().setIntValue(3, forKey: "current_level");
Джава
Crashlytics.setInt("current_level", 3);
Используя этот ключ в экспорте BigQuery, они затем пишут запрос, чтобы сообщить о распределении значений current_level
, связанных с каждым событием сбоя:
SELECT COUNT(DISTINCT event_id) AS num_of_crashes, value FROM `projectId.firebase_crashlytics.package_name_ANDROID` UNNEST(custom_keys) WHERE key = "current_level" GROUP BY key, value ORDER BY num_of_crashes DESC
Пример 5: извлечение идентификатора пользователя
У разработчика есть приложение в раннем доступе. Большинству пользователей он нравится, но трое из них столкнулись с необычно большим количеством сбоев. Чтобы разобраться в сути проблемы, они пишут запрос, который извлекает все события сбоя для этих пользователей, используя их идентификаторы пользователей:
SELECT * FROM `projectId.firebase_crashlytics.package_name_ANDROID` WHERE user.id IN ("userid1", "userid2", "userid3") ORDER BY user.id
Пример 6. Найдите всех пользователей, столкнувшихся с определенной проблемой сбоя.
Разработчик сообщил группе бета-тестеров о критической ошибке. Команда смогла использовать запрос из примера 2 выше, чтобы определить конкретный идентификатор проблемы сбоя. Теперь они хотели бы выполнить запрос, чтобы получить список пользователей приложения, на которых повлиял этот сбой:
SELECT user.id as user_id FROM `projectId.firebase_crashlytics.package_name_ANDROID` WHERE issue_id = "YOUR_ISSUE_ID" AND application.display_version = "" AND user.id != "" ORDER BY user.id;
Пример 7. Количество пользователей, затронутых проблемой сбоя, с разбивкой по странам.
Теперь команда обнаружила критическую ошибку во время развертывания нового релиза. Они смогли использовать запрос из примера 2 выше, чтобы определить конкретный идентификатор проблемы сбоя. Теперь команда хотела бы посмотреть, распространился ли этот сбой на пользователей в разных странах мира.
Чтобы написать этот запрос, команде потребуется:
Включите экспорт BigQuery для Google Analytics. См. раздел Экспорт данных проекта в BigQuery .
Обновите свое приложение, чтобы передать идентификатор пользователя как в Google Analytics SDK, так и в Crashlytics SDK.
Цель-C
CrashlyticsKit setUserIdentifier:@"123456789"; FIRAnalytics setUserID:@"12345678 9";
Быстрый
Crashlytics.sharedInstance().setUserIdentifier("123456789"); Analytics.setUserID("123456789");
Джава
Crashlytics.setUserIdentifier("123456789"); mFirebaseAnalytics.setUserId("123456789");
Напишите запрос, который использует поле идентификатора пользователя для объединения событий в наборе данных Google Analytics BigQuery со сбоями в наборе данных Crashlytics BigQuery:
SELECT DISTINCT c.issue_id, a.geo.country, COUNT(DISTINCT c.user.id) as num_users_impacted FROM `projectId.firebase_crashlytics.package_name_ANDROID` c INNER JOIN `projectId.analytics_YOUR_TABLE.events_*` a on c.user.id = a.user_id WHERE c.issue_id = "YOUR_ISSUE_ID" AND a._TABLE_SUFFIX BETWEEN '20190101' AND '20200101' GROUP BY c.issue_id, a.geo.country, c.user.id
Пример 8: 5 основных проблем на сегодняшний день
Требуется включить экспорт потоковой передачи Crashlytics BigQuery.
SELECT issue_id, COUNT(DISTINCT event_id) AS events FROM `your_project.firebase_crashlytics.package_name_ANDROID_REALTIME` WHERE DATE(event_timestamp) = CURRENT_DATE() GROUP BY issue_id ORDER BY events DESC LIMIT 5;
Пример 9: 5 основных проблем с DATE, включая сегодняшний день
Требуется включить потоковый экспорт Crashlytics BigQuery.
В этом примере мы объединяем таблицы партий и таблицы реального времени, чтобы добавить информацию в реальном времени к надежным данным партии. Поскольку event_id
является первичным ключом, мы можем использовать DISTINCT event_id
для дедупликации любых общих событий из двух таблиц.
SELECT issue_id, COUNT(DISTINCT event_id) AS events FROM ( SELECT issue_id, event_id, event_timestamp FROM `your_project.firebase_crashlytics.package_name_ANDROID_REALTIME` UNION ALL SELECT issue_id, event_id, event_timestamp FROM `your_project.firebase_crashlytics.package_name_ANDROID`) WHERE event_timestamp >= "2020-01-13" GROUP BY issue_id ORDER BY events DESC LIMIT 5;
Понимание схемы Firebase Crashlytics в BigQuery
Когда вы связываете Crashlytics с BigQuery, Firebase экспортирует недавние события (сбои, нефатальные ошибки и ANR), включая события, произошедшие за два дня до связывания, с возможностью обратного заполнения за девяносто дней.
С этого момента и до тех пор, пока вы не отключите ссылку, Firebase ежедневно экспортирует события Crashlytics. После каждого экспорта данные могут появиться в BigQuery через несколько минут.
Наборы данных
Firebase Crashlytics создает новый набор данных в BigQuery для данных Crashlytics. Набор данных охватывает весь ваш проект, даже если в нем имеется несколько приложений.
Таблицы
Firebase Crashlytics создает таблицу в наборе данных для каждого приложения в вашем проекте, если вы не отключили экспорт данных для этого приложения. Firebase называет таблицы на основе идентификатора пакета приложения, с точками, преобразованными в символы подчеркивания, и названием платформы, добавляемым в конец.
Например, данные для приложения Android с идентификатором com.google.test
будут находиться в таблице с именем com_google_test_ANDROID
, а данные в реальном времени (если они включены) будут в таблице с именем com_google_test_ANDROID_REALTIME
.
Таблицы содержат стандартный набор данных Crashlytics в дополнение к любым пользовательским ключам Crashlytics, определенным разработчиками.
Строки
Каждая строка в таблице представляет ошибку, с которой столкнулось приложение.
Столбцы
Столбцы в таблице идентичны для сбоев, нефатальных ошибок и ошибок ANR. Если включен потоковый экспорт Crashlytics BigQuery, таблица реального времени будет иметь те же столбцы, что и пакетная таблица. Столбцы экспорта перечислены ниже.
Без следов стека
Столбцы представлены в строках, которые представляют события без трассировки стека.
Имя поля | Тип данных | Описание |
---|---|---|
Платформа | НИТЬ | Приложения Apple или Android |
идентификатор_пакета | НИТЬ | Идентификатор пакета, например com.google.gmail. |
event_id | НИТЬ | Уникальный идентификатор мероприятия. |
is_fatal | БУЛЕВОЕ значение | Сбой приложения |
тип_ошибки | НИТЬ | Тип ошибки события (FATAL, NON_FATAL, ANR) |
идентификатор_выпуска | НИТЬ | Проблема, связанная с событием |
вариант_ид | НИТЬ | Вариант проблемы, связанный с этим событием Обратите внимание, что не со всеми событиями связан вариант проблемы. |
event_timestamp | ВРЕМЯ | Когда произошло событие |
устройство | ЗАПИСЫВАТЬ | Устройство, на котором произошло событие |
устройство.производитель | НИТЬ | Производитель устройства |
устройство.модель | НИТЬ | Модель устройства |
устройство.архитектура | НИТЬ | X86_32, X86_64, ARMV7, ARM64, ARMV7S или ARMV7K |
Память | ЗАПИСЫВАТЬ | Состояние памяти устройства |
память.используется | ИНТ64 | Использовано байт памяти |
память.свободно | ИНТ64 | Осталось байт памяти |
хранилище | ЗАПИСЫВАТЬ | Постоянное хранилище устройства |
хранилище.используется | ИНТ64 | Использовано байт памяти |
хранилище.бесплатно | ИНТ64 | Осталось места в байтах |
Операционная система | ЗАПИСЫВАТЬ | Подробности об ОС на устройстве |
операционная_система.display_version | НИТЬ | Версия ОС на устройстве |
операционная_система.имя | НИТЬ | Название ОС на устройстве |
Operating_system.modification_state | НИТЬ | Было ли устройство модифицировано, например взломано/рутировано (МОДИФИЦИРОВАНО или НЕМОДИФИЦИРОВАНО) |
операционная_система.тип | НИТЬ | Тип ОС, работающей на устройстве (например, IOS, MACOS); доступно только для приложений платформ Apple |
операционная_система.тип_устройства | НИТЬ | Тип устройства (например, МОБИЛЬНЫЙ, ПЛАНШЕТ, ТВ и т. д.); также известная как «категория устройства» |
приложение | ЗАПИСЫВАТЬ | Приложение, сгенерировавшее событие |
application.build_version | НИТЬ | Версия сборки приложения |
application.display_version | НИТЬ | |
пользователь | ЗАПИСЫВАТЬ | Необязательно: информация, собранная о пользователе приложения. |
имя пользователя | НИТЬ | Необязательно: имя пользователя |
user.email | НИТЬ | Необязательно: адрес электронной почты пользователя. |
ID пользователя | НИТЬ | Необязательно: идентификатор приложения, связанный с пользователем. |
custom_keys | ПОВТОРНАЯ ЗАПИСЬ | Определенные разработчиком пары ключ-значение |
custom_keys.key | НИТЬ | Ключ, определенный разработчиком |
custom_keys.value | НИТЬ | Значение, определенное разработчиком |
install_uuid | НИТЬ | Идентификатор, идентифицирующий уникальную установку приложения и устройства. |
крашlytics_sdk_versions | НИТЬ | Версия Crashlytics SDK, сгенерировавшая событие. |
app_orientation | НИТЬ | ПОРТРЕТ, ЛАНДШАФТ, ЛИЦОМ_ВВЕРХ или ЛИЦОМ_ВНИЗ. |
ориентация_устройства | НИТЬ | ПОРТРЕТ, ЛАНДШАФТ, ЛИЦОМ_ВВЕРХ или ЛИЦОМ_ВНИЗ. |
процесс_состояние | НИТЬ | ФОН или ПЕРЕДНИЙ ПЛАН |
журналы | ПОВТОРНАЯ ЗАПИСЬ | Сообщения журнала с отметкой времени, созданные регистратором Crashlytics, если он включен. |
журналы.метка времени | ВРЕМЯ | Когда был сделан журнал |
журналы.сообщение | НИТЬ | Зарегистрированное сообщение |
панировочные сухари | ПОВТОРНАЯ ЗАПИСЬ | Хлебные крошки Google Analytics с отметкой времени, если они включены |
хлебные крошки.метка времени | ВРЕМЯ | Временная метка, связанная с навигационной цепочкой |
хлебные крошки.имя | НИТЬ | Имя, связанное с хлебными крошками |
хлебные крошки.парамс | ПОВТОРНАЯ ЗАПИСЬ | Параметры, связанные с навигационной цепочкой |
хлебные крошки.params.key | НИТЬ | Ключ параметра, связанный с навигационной цепочкой |
хлебные крошки.params.value | НИТЬ | Значение параметра, связанное с навигационной цепочкой. |
виноват_фрейм | ЗАПИСЫВАТЬ | Кадр, определенный как основная причина сбоя или ошибки. |
обвинять_frame.line | ИНТ64 | Номер строки файла кадра |
обвиняемый_frame.file | НИТЬ | Имя файла кадра |
виноват_фрейм.символ | НИТЬ | Гидратированный символ или необработанный символ, если он не гидратируется. |
обвинять_frame.offset | ИНТ64 | Смещение байтов в двоичном изображении, содержащем код, не настроенное для исключений Java. |
виноват_фрейм.адрес | ИНТ64 | Адрес в двоичном изображении, содержащий код, не заданный для кадров Java. |
обвинять_frame.library | НИТЬ | Отображаемое имя библиотеки, включающей фрейм. |
виноват_фрейм.владелец | НИТЬ | РАЗРАБОТЧИК, ПОСТАВЩИК, СРЕДА ВЫПОЛНЕНИЯ, ПЛАТФОРМА или СИСТЕМА |
обвиняемый_frame.blamed | БУЛЕВОЕ значение | Определил ли анализ Crashlytics, что этот кадр является причиной сбоя или ошибки. |
исключения | ПОВТОРНАЯ ЗАПИСЬ | Только для Android: исключения, возникшие во время этого события. Вложенные исключения представлены в обратном хронологическом порядке (читай: последняя запись — это первое выброшенное исключение). |
исключения.тип | НИТЬ | Тип исключения, например java.lang.IllegalStateException. |
исключения.Exception_message | НИТЬ | Сообщение, связанное с исключением |
исключения.вложенные | БУЛЕВОЕ значение | Истинно для всех, кроме последнего созданного исключения (т. е. первой записи). |
исключения.название | НИТЬ | Название темы |
исключения.подзаголовок | НИТЬ | Подзаголовок темы |
исключения.виноват | БУЛЕВОЕ значение | Истинно, если Crashlytics определяет, что исключение является причиной ошибки или сбоя. |
исключения.кадры | ПОВТОРНАЯ ЗАПИСЬ | Кадры, связанные с исключением |
исключения.frames.line | ИНТ64 | Номер строки файла кадра |
исключения.frames.file | НИТЬ | Имя файла кадра |
исключения.frames.symbol | НИТЬ | Гидратированный символ или необработанный символ, если он не гидратируется. |
исключения.frames.offset | ИНТ64 | Смещение байтов в двоичном изображении, содержащем код, не настроенное для исключений Java. |
исключения.frames.address | ИНТ64 | Адрес в двоичном изображении, содержащий код, не заданный для кадров Java. |
исключения.frames.library | НИТЬ | Отображаемое имя библиотеки, включающей фрейм. |
исключения.frames.owner | НИТЬ | РАЗРАБОТЧИК, ПОСТАВЩИК, СРЕДА ВЫПОЛНЕНИЯ, ПЛАТФОРМА или СИСТЕМА |
исключения.frames.blamed | БУЛЕВОЕ значение | Определил ли анализ Crashlytics, что этот кадр является причиной сбоя или ошибки. |
ошибка | ПОВТОРНАЯ ЗАПИСЬ | Только приложения Apple: нефатальные ошибки |
error.queue_name | НИТЬ | Очередь, в которой выполнялся поток |
код ошибки | ИНТ64 | Код ошибки, связанный с зарегистрированной в приложении NSError. |
ошибка.название | НИТЬ | Название темы |
ошибка.субтитр | НИТЬ | Подзаголовок темы |
ошибка.виноват | БУЛЕВОЕ значение | Определил ли анализ Crashlytics, что именно этот кадр является причиной ошибки |
ошибка.кадры | ПОВТОРНАЯ ЗАПИСЬ | Кадры трассировки стека |
ошибка.frames.line | ИНТ64 | Номер строки файла кадра |
error.frames.file | НИТЬ | Имя файла кадра |
ошибка.фреймы.символ | НИТЬ | Гидратированный символ или необработанный символ, если он не гидратируется. |
ошибка.frames.offset | ИНТ64 | Смещение байта в двоичном изображении, содержащем код. |
ошибка.фреймы.адрес | ИНТ64 | Адрес в двоичном изображении, содержащем код |
ошибка.frames.library | НИТЬ | Отображаемое имя библиотеки, включающей фрейм. |
ошибка.frames.owner | НИТЬ | РАЗРАБОТЧИК, ПОСТАВЩИК, СРЕДА ВЫПОЛНЕНИЯ, ПЛАТФОРМА или СИСТЕМА |
error.frames.blamed | БУЛЕВОЕ значение | Определил ли анализ Crashlytics, что именно этот кадр является причиной ошибки |
потоки | ПОВТОРНАЯ ЗАПИСЬ | Темы, присутствующие на момент события |
темы.разбился | БУЛЕВОЕ значение | Разбился ли поток |
threads.thread_name | НИТЬ | Название темы |
threads.queue_name | НИТЬ | Только приложения Apple: очередь, в которой выполнялся поток. |
threads.signal_name | НИТЬ | Имя сигнала, вызвавшего сбой приложения, присутствует только в сбойных собственных потоках. |
threads.signal_code | НИТЬ | Код сигнала, вызвавшего сбой приложения; присутствует только в поврежденных собственных потоках |
threads.crash_address | ИНТ64 | Адрес сигнала, вызвавшего сбой приложения; присутствует только в поврежденных собственных потоках |
потоки.код | ИНТ64 | Только приложения Apple: код ошибки пользовательского журнала NSError приложения. |
темы.название | НИТЬ | Название темы |
темы.субтитры | НИТЬ | Подзаголовок темы |
темы.виноваты | БУЛЕВОЕ значение | Определил ли анализ Crashlytics, что этот кадр является причиной сбоя или ошибки. |
потоки.фреймы | ПОВТОРНАЯ ЗАПИСЬ | Кадры из нити |
потоки.frames.line | ИНТ64 | Номер строки файла кадра |
threads.frames.file | НИТЬ | Имя файла кадра |
потоки.frames.symbol | НИТЬ | Гидратированный символ или необработанный символ, если он не гидратируется. |
threads.frames.offset | ИНТ64 | Смещение байта в двоичном изображении, содержащем код. |
threads.frames.address | ИНТ64 | Адрес в двоичном изображении, содержащем код |
потоки.frames.library | НИТЬ | Отображаемое имя библиотеки, включающей фрейм. |
threads.frames.owner | НИТЬ | РАЗРАБОТЧИК, ПОСТАВЩИК, СРЕДА ВЫПОЛНЕНИЯ, ПЛАТФОРМА или СИСТЕМА |
темы.frames.blamed | БУЛЕВОЕ значение | Определил ли анализ Crashlytics, что именно этот кадр является причиной ошибки |
unity_metadata.unity_version | НИТЬ | Версия Unity, работающая на этом устройстве. |
unity_metadata.debug_build | БУЛЕВОЕ значение | Если это отладочная сборка |
unity_metadata.processor_type | НИТЬ | Тип процессора |
unity_metadata.processor_count | ИНТ64 | Количество процессоров (ядер) |
unity_metadata.processor_ Frequency_mhz | ИНТ64 | Частота процессора(ов) в МГц |
unity_metadata.system_memory_size_mb | ИНТ64 | Размер системной памяти в Мб |
unity_metadata.graphics_memory_size_mb | ИНТ64 | Графическая память в МБ |
unity_metadata.graphics_device_id | ИНТ64 | Идентификатор графического устройства |
unity_metadata.graphics_device_vendor_id | ИНТ64 | Идентификатор производителя графического процессора |
unity_metadata.graphics_device_name | НИТЬ | Имя графического устройства |
unity_metadata.graphics_device_vendor | НИТЬ | Поставщик графического устройства |
unity_metadata.graphics_device_version | НИТЬ | Версия графического устройства |
unity_metadata.graphics_device_type | НИТЬ | Тип графического устройства |
unity_metadata.graphics_shader_level | ИНТ64 | Уровень шейдеров графики |
unity_metadata.graphics_render_target_count | ИНТ64 | Количество целей графического рендеринга |
unity_metadata.graphics_copy_texture_support | НИТЬ | Поддержка копирования графической текстуры, как определено в Unity API. |
unity_metadata.graphics_max_texture_size | ИНТ64 | Максимальный размер, предназначенный для рендеринга текстуры |
unity_metadata.screen_size_px | НИТЬ | Размер экрана в пикселях в формате ширина х высота. |
unity_metadata.screen_solve_dpi | НИТЬ | DPI экрана как число с плавающей запятой |
unity_metadata.screen_refresh_rate_hz | ИНТ64 | Частота обновления экрана в Гц |
Визуализация экспортированных данных Crashlytics с помощью Data Studio
Google Data Studio превращает ваши наборы данных Crashlytics в BigQuery в отчеты, которые легко читать, которыми легко делиться и которые полностью настраиваемы.
Чтобы узнать больше об использовании Data Studio, ознакомьтесь с кратким руководством по Data Studio Добро пожаловать в Data Studio .
Использование шаблона отчета Crashlytics
В Data Studio есть образец отчета для Crashlytics, который включает полный набор параметров и показателей из экспортированной схемы Crashlytics BigQuery. Если вы включили потоковый экспорт Crashlytics BigQuery, вы можете просмотреть эти данные на странице тенденций в реальном времени шаблона Data Studio. Вы можете использовать образец в качестве шаблона для быстрого создания новых отчетов и визуализаций на основе необработанных данных о сбоях вашего собственного приложения:
- Откройте шаблон панели управления Crashlytics Data Studio .
- Нажмите «Использовать шаблон» в правом верхнем углу.
- В раскрывающемся списке «Новый источник данных» выберите «Создать новый источник данных» .
- Нажмите «Выбрать» на карточке BigQuery .
- Выберите таблицу, содержащую экспортированные данные Crashlytics, выбрав «Мои проекты» > [имя-вашего-проекта] > firebase_crashlytics > [имя-вашей-таблицы] . Ваша таблица партий всегда доступна для выбора; если включен экспорт потоковой передачи Crashlytics BigQuery, вместо этого вы можете выбрать таблицу реального времени.
- В разделе «Конфигурация» установите для уровня шаблона Crashlytics значение «По умолчанию» .
- Нажмите «Подключиться» , чтобы создать новый источник данных.
- Нажмите «Добавить в отчет» , чтобы вернуться к шаблону Crashlytics.
- Наконец, нажмите «Создать отчет» , чтобы создать копию шаблона панели инструментов Crashlytics Data Studio.