Вы можете экспортировать данные 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 .
Обновите их приложение, чтобы передать идентификатор пользователя как в SDK Google Analytics, так и в SDK Crashlytics.
Цель-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. Пять основных проблем с 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 |
bundle_identifier | НИТЬ | Идентификатор пакета, например com.google.gmail |
event_id | НИТЬ | Уникальный идентификатор события |
is_fatal | логическое значение | Сбой приложения |
тип_ошибки | НИТЬ | Тип ошибки события (FATAL, NON_FATAL, ANR) |
issue_id | НИТЬ | Проблема, связанная с событием |
вариант_идентификатор | НИТЬ | Вариант задачи, связанный с этим событием Обратите внимание, что не все события имеют связанный вариант задачи. |
event_timestamp | TIMESTAMP | Когда произошло событие |
устройство | ЗАПИСЫВАТЬ | Устройство, на котором произошло событие |
устройство.производитель | НИТЬ | Производитель устройства |
устройство.модель | НИТЬ | Модель устройства |
устройство.архитектура | НИТЬ | X86_32, X86_64, ARMV7, ARM64, ARMV7S или ARMV7K |
Память | ЗАПИСЫВАТЬ | Состояние памяти устройства |
память.используется | INT64 | Байты используемой памяти |
память.бесплатно | INT65 | Осталось байт памяти |
хранилище | ЗАПИСЫВАТЬ | Постоянное хранилище устройства |
хранилище.используется | INT64 | Байты используемого хранилища |
хранение.бесплатно | INT64 | Осталось байт памяти |
Операционная система | ЗАПИСЫВАТЬ | Подробная информация об ОС на устройстве |
операционная_система.display_version | НИТЬ | Версия ОС на устройстве |
имя_операционной_системы.имя | НИТЬ | Название ОС на устройстве |
Operating_system.modification_state | НИТЬ | Было ли устройство модифицировано, например взломано/рутировано (МОДИФИЦИРОВАНО или НЕМОДИФИЦИРОВАНО) |
операционная_система.тип | НИТЬ | Тип ОС, работающей на устройстве (например, IOS, MACOS); доступно только для приложений платформ Apple |
Operating_system.device_type | НИТЬ | Тип устройства (например, МОБИЛЬНЫЙ, ПЛАНШЕТ, ТВ и т. д.); также известная как "категория устройства" |
приложение | ЗАПИСЫВАТЬ | Приложение, сгенерировавшее событие |
application.build_version | НИТЬ | Версия сборки приложения |
application.display_version | НИТЬ | |
пользователь | ЗАПИСЫВАТЬ | Необязательно: информация, собранная о пользователе приложения. |
имя пользователя | НИТЬ | Необязательно: имя пользователя |
user.email | НИТЬ | Необязательно: адрес электронной почты пользователя. |
ID пользователя | НИТЬ | Необязательно: идентификатор приложения, связанный с пользователем. |
custom_keys | ПОВТОРНАЯ ЗАПИСЬ | Определенные разработчиком пары "ключ-значение" |
custom_keys.key | НИТЬ | Ключ, определенный разработчиком |
custom_keys.value | НИТЬ | Значение, определенное разработчиком |
install_uuid | НИТЬ | Идентификатор, который идентифицирует уникальную установку приложения и устройства. |
crashlytics_sdk_versions | НИТЬ | Версия Crashlytics SDK, сгенерировавшая событие |
приложение_ориентация | НИТЬ | ПОРТРЕТ, ЛАНДШАФТ, ЛИЦО_ВВЕРХ или ЛИЦО_ВНИЗ |
ориентация_устройства | НИТЬ | ПОРТРЕТ, ЛАНДШАФТ, ЛИЦО_ВВЕРХ или ЛИЦО_ВНИЗ |
процесс_состояние | НИТЬ | ФОН или ПЕРЕДНИЙ ПЛАН |
журналы | ПОВТОРНАЯ ЗАПИСЬ | Сообщения журнала с метками времени, созданные регистратором Crashlytics, если он включен |
logs.timestamp | TIMESTAMP | Когда журнал был сделан |
logs.message | НИТЬ | Зарегистрированное сообщение |
панировочные сухари | ПОВТОРНАЯ ЗАПИСЬ | Хлебные крошки Google Analytics с временными метками, если они включены |
хлебные крошки. временная метка | TIMESTAMP | Временная метка, связанная с хлебной крошкой |
хлебные крошки.название | НИТЬ | Имя, связанное с панировочными сухарями |
хлебные крошки.params | ПОВТОРНАЯ ЗАПИСЬ | Параметры, связанные с навигационной цепочкой |
хлебные крошки.params.key | НИТЬ | Ключ параметра, связанный с навигационной цепочкой |
хлебные крошки.params.value | НИТЬ | Значение параметра, связанное с навигационной цепочкой |
виноват_кадр | ЗАПИСЫВАТЬ | Фрейм, идентифицированный как основная причина сбоя или ошибки |
виноват_frame.line | INT64 | Номер строки файла кадра |
вину_frame.file | НИТЬ | Имя файла кадра |
виноват_frame.symbol | НИТЬ | Символ гидратации или необработанный символ, если он не гидратируется. |
виноват_frame.offset | INT64 | Байтовое смещение в двоичном изображении, которое содержит код, не установленный для исключений Java. |
виноват_кадр.адрес | INT64 | Адрес в бинарном образе, который содержит код, не заданный для фреймов Java |
виноват_frame.library | НИТЬ | Отображаемое имя библиотеки, включающей кадр |
виноват_frame.owner | НИТЬ | РАЗРАБОТЧИК, ПОСТАВЩИК, СРЕДА ВЫПОЛНЕНИЯ, ПЛАТФОРМА ИЛИ СИСТЕМА |
виноват_frame.blamed | логическое значение | Определен ли анализ Crashlytics, что этот кадр является причиной сбоя или ошибки |
исключения | ПОВТОРНАЯ ЗАПИСЬ | Только для Android: исключения, возникшие во время этого события. Вложенные исключения представлены в обратном хронологическом порядке (читай: последняя запись — первое исключение). |
исключения.тип | НИТЬ | Тип исключения, например java.lang.IllegalStateException |
исключения.exception_message | НИТЬ | Сообщение, связанное с исключением |
исключения.вложенные | логическое значение | Истинно для всех, кроме последнего выброшенного исключения (т. е. первой записи) |
исключения.название | НИТЬ | Название темы |
исключения.subtitle | НИТЬ | Подзаголовок темы |
исключения.обвиняемый | логическое значение | Истинно, если Crashlytics определяет, что причиной ошибки или сбоя является исключение. |
исключения.кадры | ПОВТОРНАЯ ЗАПИСЬ | Кадры, связанные с исключением |
исключения.frames.line | INT64 | Номер строки файла кадра |
исключения.frames.file | НИТЬ | Имя файла кадра |
исключения.кадры.символ | НИТЬ | Символ гидратации или необработанный символ, если он не гидратируется. |
исключения.frames.offset | INT64 | Байтовое смещение в двоичном изображении, которое содержит код, не установленный для исключений Java. |
исключения.кадры.адрес | INT64 | Адрес в бинарном образе, который содержит код, не заданный для фреймов Java |
исключения.frames.library | НИТЬ | Отображаемое имя библиотеки, включающей кадр |
исключения.frames.owner | НИТЬ | РАЗРАБОТЧИК, ПОСТАВЩИК, СРЕДА ВЫПОЛНЕНИЯ, ПЛАТФОРМА ИЛИ СИСТЕМА |
исключения.кадры.обвиняемые | логическое значение | Определен ли анализ Crashlytics, что этот кадр является причиной сбоя или ошибки |
ошибка | ПОВТОРНАЯ ЗАПИСЬ | Только приложения Apple: некритические ошибки |
error.queue_name | НИТЬ | Очередь, в которой выполнялся поток |
код ошибки | INT64 | Код ошибки, связанный с пользовательской регистрацией NSError приложения |
ошибка.название | НИТЬ | Название темы |
ошибка.подзаголовок | НИТЬ | Подзаголовок темы |
ошибка.обвинение | логическое значение | Определен ли анализ Crashlytics, что этот кадр является причиной ошибки |
ошибки.кадры | ПОВТОРНАЯ ЗАПИСЬ | Кадры трассировки стека |
ошибка.frames.line | INT64 | Номер строки файла кадра |
ошибка.frames.file | НИТЬ | Имя файла кадра |
error.frames.symbol | НИТЬ | Символ гидратации или необработанный символ, если он не гидратируется. |
ошибка.frames.offset | INT64 | Байтовое смещение в двоичном изображении, содержащем код |
ошибка.кадры.адрес | INT64 | Адрес в бинарном образе, который содержит код |
error.frames.library | НИТЬ | Отображаемое имя библиотеки, включающей кадр |
error.frames.owner | НИТЬ | РАЗРАБОТЧИК, ПОСТАВЩИК, СРЕДА ВЫПОЛНЕНИЯ, ПЛАТФОРМА ИЛИ СИСТЕМА |
error.frames.blamed | логическое значение | Определен ли анализ Crashlytics, что этот кадр является причиной ошибки |
потоки | ПОВТОРНАЯ ЗАПИСЬ | Темы, присутствующие на момент события |
threads.crashed | логическое значение | Разбился ли поток |
threads.thread_name | НИТЬ | Название потока |
threads.queue_name | НИТЬ | Только приложения Apple: очередь, в которой выполнялся поток |
threads.signal_name | НИТЬ | Имя сигнала, вызвавшего сбой приложения, присутствует только в сбойных собственных потоках. |
threads.signal_code | НИТЬ | Код сигнала, вызвавшего сбой приложения; присутствует только в разбитых собственных потоках |
threads.crash_address | INT64 | Адрес сигнала, вызвавшего сбой приложения; присутствует только в разбитых собственных потоках |
threads.code | INT64 | Только приложения Apple: код ошибки пользовательского журнала NSError приложения. |
темы.название | НИТЬ | Название темы |
threads.subtitle | НИТЬ | Подзаголовок темы |
threads.blamed | логическое значение | Определен ли анализ Crashlytics, что этот кадр является причиной сбоя или ошибки |
потоки.кадры | ПОВТОРНАЯ ЗАПИСЬ | Рамки из нити |
threads.frames.line | INT64 | Номер строки файла кадра |
threads.frames.file | НИТЬ | Имя файла кадра |
threads.frames.symbol | НИТЬ | Гидратированный символ или необработанный символ, если он не поддается увлажнению. |
threads.frames.offset | INT64 | Байтовое смещение в двоичном изображении, содержащем код |
threads.frames.address | INT64 | Адрес в бинарном образе, который содержит код |
threads.frames.library | НИТЬ | Отображаемое имя библиотеки, включающей кадр |
threads.frames.owner | НИТЬ | РАЗРАБОТЧИК, ПОСТАВЩИК, СРЕДА ВЫПОЛНЕНИЯ, ПЛАТФОРМА ИЛИ СИСТЕМА |
threads.frames.blamed | логическое значение | Определен ли анализ Crashlytics, что этот кадр является причиной ошибки |
unity_metadata.unity_version | НИТЬ | Версия Unity, работающая на этом устройстве. |
unity_metadata.debug_build | логическое значение | Если это отладочная сборка |
unity_metadata.processor_type | НИТЬ | Тип процессора |
unity_metadata.processor_count | INT64 | Количество процессоров (ядер) |
unity_metadata.processor_frequency_mhz | INT64 | Частота процессора(ов) в МГц |
unity_metadata.system_memory_size_mb | INT64 | Размер системной памяти в Mb |
unity_metadata.graphics_memory_size_mb | INT64 | Графическая память в МБ |
unity_metadata.graphics_device_id | INT64 | Идентификатор графического устройства |
unity_metadata.graphics_device_vendor_id | INT64 | Идентификатор производителя графического процессора |
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 | INT64 | Уровень шейдера графики |
unity_metadata.graphics_render_target_count | INT64 | Количество целей графического рендеринга |
unity_metadata.graphics_copy_texture_support | НИТЬ | Поддержка копирования графической текстуры, как определено в Unity API. |
unity_metadata.graphics_max_texture_size | INT64 | Максимальный размер, предназначенный для рендеринга текстуры |
unity_metadata.screen_size_px | НИТЬ | Размер экрана в пикселях в формате ширина x высота |
unity_metadata.screen_resolution_dpi | НИТЬ | DPI экрана как число с плавающей запятой |
unity_metadata.screen_refresh_rate_hz | INT64 | Частота обновления экрана в Гц |
Визуализация экспортированных данных Crashlytics с помощью Data Studio
Google Data Studio превращает ваши наборы данных Crashlytics в BigQuery в отчеты, которые легко читать, ими легко делиться и которые полностью настраиваются.
Чтобы узнать больше об использовании Студии данных, ознакомьтесь с кратким руководством по началу работы с Студией данных Добро пожаловать в Студию данных .
Использование шаблона отчета Crashlytics
В Data Studio есть образец отчета для Crashlytics, который включает полный набор параметров и показателей из экспортированной схемы Crashlytics BigQuery. Если вы включили экспорт потоковой передачи Crashlytics BigQuery, вы можете просматривать эти данные на странице трендов в реальном времени шаблона Data Studio. Вы можете использовать образец в качестве шаблона для быстрого создания новых отчетов и визуализаций на основе необработанных данных о сбоях вашего собственного приложения:
- Откройте шаблон информационной панели Crashlytics Data Studio .
- Нажмите «Использовать шаблон» в правом верхнем углу.
- В раскрывающемся списке «Новый источник данных» выберите «Создать новый источник данных» .
- Нажмите Выбрать на карточке BigQuery .
- Выберите таблицу, содержащую экспортированные данные Crashlytics, выбрав «Мои проекты» > [имя-вашего-проекта] > firebase_crashlytics > [имя-вашей-таблицы] . Ваша пакетная таблица всегда доступна для выбора; если экспорт потоковой передачи Crashlytics BigQuery включен, вместо этого вы можете выбрать свою таблицу в реальном времени.
- В разделе «Конфигурация» установите для уровня шаблона Crashlytics значение «По умолчанию» .
- Щелкните Подключить , чтобы создать новый источник данных.
- Нажмите «Добавить в отчет» , чтобы вернуться к шаблону Crashlytics.
- Наконец, нажмите «Создать отчет» , чтобы создать копию шаблона панели мониторинга Crashlytics Data Studio.