Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Exporter les données Firebase Crashlytics vers BigQuery

Vous pouvez exporter vos données Crashlytics dans BigQuery pour une analyse ultérieure. BigQuery vous permet d'analyser les données à l'aide de BigQuery SQL, de les exporter vers un autre fournisseur de cloud et de les utiliser pour la visualisation et des tableaux de bord personnalisés avec Google Data Studio.

Activer l'exportation BigQuery

  1. Aller à la Intégrations page dans la console Firebase.
  2. Dans la carte BigQuery, cliquez sur le lien.
  3. Suivez les instructions à l'écran pour activer BigQuery.

Lorsque vous associez votre projet à BigQuery :

  • Firebase configure des synchronisations quotidiennes de vos données de votre projet Firebase vers BigQuery.
  • Par défaut, toutes les applications de votre projet sont liées à BigQuery et toutes les applications que vous ajoutez ultérieurement au projet sont automatiquement liées à BigQuery. Vous pouvez gérer des applications qui envoient des données .
  • Firebase exporte une copie de vos données existantes à BigQuery.For chaque application associée, ce qui comprend une table de lots contenant les données de la synchronisation quotidienne.
  • Si vous activez l' exportation de streaming Crashlytics BigQuery, toutes les applications liées auront également un tableau en temps réel contenant des données de mise à jour en permanence.

Pour désactiver l' exportation BigQuery, unlink votre projet dans la console Firebase.

Quelles données sont exportées vers BigQuery ?

Les données Firebase Crashlytics est exporté dans un jeu de données BigQuery nommé firebase_crashlytics . Par défaut, des tables individuelles seront créées dans l'ensemble de données Crashlytics pour chaque application de votre projet. Firebase nomme les tables en fonction de l'identifiant du bundle de l'application, avec des points convertis en traits de soulignement et un nom de plate-forme ajouté à la fin.

Par exemple, les données pour une application avec l'ID com.google.test serait dans une table nommée com_google_test_ANDROID . Cette table de lots est mise à jour une fois par jour. Si vous activez Crashlytics BigQuery en continu l' exportation, les données Firebase Crashlytics seront également diffusés en temps réel à com_google_test_ANDROID_REALTIME .

Chaque ligne d'un tableau représente un événement qui s'est produit dans l'application, y compris les erreurs fatales et non fatales.

Activer l'exportation de flux Crashlytics BigQuery

Vous pouvez diffuser vos données Crashlytics en temps réel avec BigQueryStreaming . Vous pouvez l'utiliser à toute fin nécessitant des données en direct, comme présenter des informations dans un tableau de bord en direct, regarder un déploiement en direct ou surveiller les problèmes d'application qui déclenchent des alertes et des flux de travail personnalisés.

L'exportation en continu de Crashlytics BigQuery n'est pas disponible pour le bac à sable BigQuery.

Lorsque vous activez l'exportation en continu de Crashlytics BigQuery, en plus de la table de traitement par lots, vous disposez d'une table en temps réel. Voici les différences que vous devez connaître entre les tableaux :

Tableau des lots Tableau en temps réel
  • Données exportées une fois par jour
  • Événements stockés de manière durable avant l'écriture par lots dans BigQuery
  • Peut être remblayé jusqu'à 90 jours avant
  • Données exportées en temps réel
  • Aucun remblai disponible

La table de lots est idéale pour l'analyse à long terme et l'identification des tendances au fil du temps, car nous stockons durablement les événements avant de les écrire, et ils peuvent être remplis dans la table jusqu'à 90 jours. Lorsque nous écrivons des données dans votre table en temps réel, nous les écrivons immédiatement dans BigQuery, c'est donc idéal pour les tableaux de bord en direct et les alertes personnalisées. Ces deux tables peuvent être combinées avec une requête d'assemblage pour obtenir les avantages des deux. Voir requête Exemple 9 ci - dessous.

Par défaut, la table en temps réel a un délai d'expiration de partition de 30 jours. Pour savoir comment modifier ce sujet , voir Mise à jour de l'expiration de la partition .

Activer le streaming Crashlytics BigQuery

Pour activer le streaming, accédez à la section Crashlytics de BigQuery intégrations page et sélectionnez la case à cocher Inclure le streaming.

Modèle Data Studio

Pour activer les données en temps réel dans votre modèle Data Studio, suivez les instructions Visualizing données exportées Crashlytics avec Data Studio .

Vues

Vous pouvez transformer les exemples de requêtes ci-dessous en vues à l'aide de l'interface utilisateur de BigQuery. Voir Création de vues pour obtenir des instructions détaillées.

Que pouvez-vous faire avec les données exportées ?

Les exportations BigQuery contiennent des données de plantage brutes, notamment le type d'appareil, le système d'exploitation, les exceptions (applications Android) ou les erreurs (applications iOS) et les journaux Crashlytics, ainsi que d'autres données.

Utiliser les données Firebase Crashlytics dans BigQuery

Les exemples suivants illustrent les requêtes que vous pouvez exécuter sur vos données Crashlytics. Ces requêtes génèrent des rapports qui ne sont pas disponibles dans le tableau de bord Crashlytics.

Exemples de requêtes Crashlytics

Les exemples suivants montrent comment générer des rapports qui regroupent les données d'événements d'incident dans des résumés plus faciles à comprendre.

Exemple 1 : Plantages par jour

Après avoir travaillé pour corriger autant de bugs que possible, un développeur principal pense que son équipe est enfin prête à lancer sa nouvelle application de partage de photos. Avant de le faire, ils veulent vérifier le nombre de plantages par jour au cours du mois dernier, pour s'assurer que leur bug-bash a rendu l'application plus stable au fil du temps :

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;

Exemple 2 : Trouver les plantages les plus répandus

Pour hiérarchiser correctement les plans de production, un chef de projet réfléchit à la manière de signaler les 10 plantages les plus répandus dans leur produit. Ils produisent une requête qui fournit les points de données pertinents :

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;

Exemple 3 : top 10 des appareils en panne

L'automne est la nouvelle saison du téléphone ! Un développeur sait que cela signifie également que c'est la nouvelle saison des problèmes spécifiques aux appareils. Pour devancer les problèmes de compatibilité imminents, ils ont élaboré une requête qui identifie les 10 appareils qui ont subi le plus de plantages au cours de la semaine dernière :

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;

Exemple 4 : Filtrer par clé personnalisée

Un développeur de jeux souhaite savoir à quel niveau de son jeu le plus de plantages se produisent. Pour les aider à suivre cette stat, ils ont mis une clé personnalisée Crashlytics current_level , et mettre à jour chaque fois que l'utilisateur atteint un nouveau niveau.

Objectif c

CrashlyticsKit setIntValue:3 forKey:@"current_level";

Rapide

Crashlytics.sharedInstance().setIntValue(3, forKey: "current_level");

Java

Crashlytics.setInt("current_level", 3);

Avec cette clé dans leur exportation BigQuery, ils écrivent ensuite une requête pour signaler la distribution des current_level valeurs associées à chaque événement accident:

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

Exemple 5 : Extraction de l'ID utilisateur

Un développeur a une application en accès anticipé. La plupart de leurs utilisateurs l'adorent, mais trois ont connu un nombre inhabituel de plantages. Pour aller au fond du problème, ils écrivent une requête qui extrait tous les événements de plantage pour ces utilisateurs, en utilisant leurs ID utilisateur :

SELECT *
FROM
  `projectId.firebase_crashlytics.package_name_ANDROID`
WHERE
  user.id IN ("userid1", "userid2", "userid3")
ORDER BY
  user.id
 

Exemple 6 : Trouver tous les utilisateurs confrontés à un problème de plantage particulier

Un développeur a publié un bogue critique à un groupe de bêta-testeurs. L'équipe a pu utiliser la requête de l'exemple 2 ci-dessus pour identifier l'ID du problème de plantage spécifique. Maintenant, ils aimeraient exécuter une requête pour extraire la liste des utilisateurs de l'application qui ont été touchés par ce plantage :

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;

Exemple 7 : Nombre d'utilisateurs touchés par un problème de plantage, ventilé par pays

Maintenant, l'équipe a détecté un bogue critique lors du déploiement d'une nouvelle version. Ils ont pu utiliser la requête de l'exemple 2 ci-dessus pour identifier l'ID du problème de plantage spécifique. L'équipe aimerait maintenant voir si ce crash s'est propagé aux utilisateurs dans différents pays du monde.

Pour rédiger cette requête, l'équipe devra :

  1. Activez les exportations BigQuery pour Google Analytics. Voir les données du projet d' exportation vers BigQuery .

  2. Mettez à jour leur application pour transmettre un ID utilisateur à la fois au SDK Google Analytics et au SDK Crashlytics.

    Objectif c
    CrashlyticsKit setUserIdentifier:@"123456789";
    FIRAnalytics setUserID:@"12345678 9";
    
    Rapide
    Crashlytics.sharedInstance().setUserIdentifier("123456789");
    Analytics.setUserID("123456789");
    
    Java
    Crashlytics.setUserIdentifier("123456789");
    mFirebaseAnalytics.setUserId("123456789");
    
  3. Écrivez une requête qui utilise le champ d'ID utilisateur pour joindre des événements dans l'ensemble de données Google Analytics BigQuery avec des plantages dans l'ensemble de données 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
    

Exemple 8 : 5 problèmes les plus importants à ce jour aujourd'hui

Nécessite l'activation de l'exportation en continu de 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;

Exemple 9 : 5 problèmes les plus fréquents depuis le DATE, y compris aujourd'hui

Nécessite l'activation de l'exportation en continu de Crashlytics BigQuery.

Dans cet exemple, nous combinons des tables de lots et en temps réel pour ajouter des informations en temps réel aux données de lots fiables. Depuis event_id est une clé primaire, nous pouvons utiliser DISTINCT event_id pour dédoublonner des événements communs des deux tables.

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;

Comprendre le schéma Firebase Crashlytics dans BigQuery

Lorsque vous établissez un lien avec Crashlytics BigQuery, Firebase exporte les récents événements accident mortel et non mortels, y compris les événements de jusqu'à deux jours avant le lien, avec la possibilité de remblayer jusqu'à quatre - vingt dix jours.

À partir de ce moment et jusqu'à ce que vous désactiviez le lien, Firebase exporte quotidiennement les événements Crashlytics. La disponibilité des données dans BigQuery peut prendre quelques minutes après chaque exportation.

Ensembles de données

Firebase Crashlytics crée un nouvel ensemble de données dans BigQuery pour les données Crashlytics. L'ensemble de données couvre l'ensemble de votre projet, même s'il comporte plusieurs applications.

les tables

Firebase Crashlytics crée une table dans l'ensemble de données pour chaque application de votre projet, sauf si vous avez choisi de ne pas exporter les données de cette application. Firebase nomme les tables en fonction de l'identifiant du bundle de l'application, avec des points convertis en traits de soulignement et un nom de plate-forme ajouté à la fin.

Par exemple, les données pour une application Android avec l'ID com.google.test serait dans une table nommée com_google_test_ANDROID , et les données en temps réel (si activé) seraient dans une table nommée com_google_test_ANDROID_REALTIME

Les tableaux contiennent un ensemble standard de données Crashlytics en plus des clés Crashlytics personnalisées définies par les développeurs.

Lignes

Chaque ligne d'un tableau représente une erreur rencontrée par l'application.

Colonnes

Les colonnes d'un tableau sont identiques pour les erreurs fatales et non fatales. Si l'exportation en continu de Crashlytics BigQuery est activée, la table en temps réel aura les mêmes colonnes que la table de traitement par lots. Les colonnes de l'exportation sont répertoriées ci-dessous.

Sans traces de pile

Colonnes présentes dans des lignes qui représentent des événements sans traces de pile.

Nom de domaine Type de données La description
Plate-forme CHAÎNE DE CARACTÈRES Android ou iOS
bundle_identifier CHAÎNE DE CARACTÈRES L'ID du groupe, par exemple com.google.gmail
id_événement CHAÎNE DE CARACTÈRES Un identifiant unique pour l'événement
est_fatal BOOLEEN Si l'application a planté
id_problème CHAÎNE DE CARACTÈRES Un problème lié à l'événement
event_timestamp horodatage Quand l'événement s'est produit
dispositif ENREGISTRER L'appareil sur lequel l'événement s'est produit
fabricant.de.l'appareil CHAÎNE DE CARACTÈRES Le fabricant de l'appareil
modèle d'appareil CHAÎNE DE CARACTÈRES Le modèle d'appareil
architecture.des.appareils CHAÎNE DE CARACTÈRES X86_32, X86_64, ARMV7, ARM64, ARMV7S ou ARMV7K
Mémoire ENREGISTRER L'état de la mémoire de l'appareil
mémoire.utilisée INT64 Octets de mémoire utilisés
mémoire.libre INT65 Octets de mémoire restants
espace de rangement ENREGISTRER Le stockage persistant de l'appareil
stockage.utilisé INT64 Octets de stockage utilisés
stockage.gratuit INT64 Octets de stockage restants
système opérateur ENREGISTRER Les détails du système d'exploitation de l'appareil
système_d'exploitation.display_version CHAÎNE DE CARACTÈRES La version du système d'exploitation
nom_système_d'exploitation CHAÎNE DE CARACTÈRES Le nom du système d'exploitation
système_d'exploitation.état_modification CHAÎNE DE CARACTÈRES MODIFIÉ ou NON MODIFIÉ, c'est-à-dire si l'appareil a été jailbreaké/enraciné
système_d'exploitation.type CHAÎNE DE CARACTÈRES Le type de système d'exploitation sur l'appareil. Par exemple IOS, MACOS
système_d'exploitation.type_d'appareil CHAÎNE DE CARACTÈRES Le type d'appareil. Ex. MOBILE, TABLETTE, TV
application ENREGISTRER L'application qui a généré l'événement
application.build_version CHAÎNE DE CARACTÈRES La version de construction de l'application
application.display_version CHAÎNE DE CARACTÈRES
utilisateur ENREGISTRER Facultatif : informations collectées sur l'utilisateur de l'application
Nom d'utilisateur CHAÎNE DE CARACTÈRES Facultatif : le nom de l'utilisateur
user.email CHAÎNE DE CARACTÈRES Facultatif : l'adresse e-mail de l'utilisateur
identifiant d'utilisateur CHAÎNE DE CARACTÈRES Facultatif : un identifiant spécifique à l'application associé à l'utilisateur
clés_personnalisées RECORD RÉPÉTÉ Paires clé-valeur définies par le développeur
custom_keys.key CHAÎNE DE CARACTÈRES Une clé définie par le développeur
custom_keys.value CHAÎNE DE CARACTÈRES Une valeur définie par le développeur
installation_uuid CHAÎNE DE CARACTÈRES Un identifiant qui identifie une installation unique d'application et d'appareil
crashlytics_sdk_versions CHAÎNE DE CARACTÈRES La version du SDK Crashlytics qui a généré l'événement
app_orientation CHAÎNE DE CARACTÈRES PORTRAIT, PAYSAGE, FACE_UP ou FACE_DOWN
orientation_de_l'appareil CHAÎNE DE CARACTÈRES PORTRAIT, PAYSAGE, FACE_UP ou FACE_DOWN
process_state CHAÎNE DE CARACTÈRES ARRIÈRE-PLAN ou AVANT-PLAN
journaux RECORD RÉPÉTÉ Messages de journal horodatés générés par le journal Crashlytics, si activé
logs.timestamp horodatage Quand le journal a été fait
logs.message CHAÎNE DE CARACTÈRES Le message enregistré
chapelure RECORD RÉPÉTÉ Fil d'Ariane Google Analytics horodaté, si activé
chapelure.horodatage horodatage L'horodatage associé au fil d'Ariane
chapelure.nom CHAÎNE DE CARACTÈRES Le nom associé au fil d'Ariane
chapelure.params RECORD RÉPÉTÉ Paramètres associés au fil d'Ariane
fil d'Ariane.params.key CHAÎNE DE CARACTÈRES Une clé de paramètre associée au fil d'Ariane
chapelure.params.value CHAÎNE DE CARACTÈRES Une valeur de paramètre associée au fil d'Ariane
blâme_cadre ENREGISTRER Le cadre identifié comme la cause première du plantage ou de l'erreur
blâme_frame.line INT64 Le numéro de ligne du fichier de la trame
blâme_frame.file CHAÎNE DE CARACTÈRES Le nom du fichier frame
blâme_frame.symbol CHAÎNE DE CARACTÈRES Le symbole hydraté, ou le symbole brut s'il n'est pas hydraté
blâme_frame.offset INT64 Le décalage d'octet dans l'image binaire qui contient le code, non défini pour les exceptions Java
blâme_cadre.adresse INT64 L'adresse dans l'image binaire qui contient le code, non définie pour les trames Java
blâme_frame.library CHAÎNE DE CARACTÈRES Le nom d'affichage de la bibliothèque qui inclut le cadre
blâme_cadre.propriétaire CHAÎNE DE CARACTÈRES DÉVELOPPEUR, FOURNISSEUR, RUNTIME, PLATEFORME ou SYSTÈME
blâme_frame.blamed BOOLEEN Si l'analyse de Crashlytics a déterminé que cette image est la cause du plantage ou de l'erreur
exceptions RECORD RÉPÉTÉ Android uniquement : exceptions survenues lors de cet événement. Les exceptions imbriquées sont présentées dans l'ordre chronologique inverse (lire : le dernier enregistrement est la première exception levée)
exceptions.type CHAÎNE DE CARACTÈRES Le type d'exception, par exemple java.lang.IllegalStateException
exceptions.exception_message CHAÎNE DE CARACTÈRES Un message associé à l'exception
exceptions.imbriqué BOOLEEN Vrai pour tout sauf la dernière exception (c'est-à-dire le premier enregistrement)
exceptions.titre CHAÎNE DE CARACTÈRES Le titre du fil
exceptions.sous-titre CHAÎNE DE CARACTÈRES Le sous-titre du fil
exceptions.blâmées BOOLEEN Vrai si Crashlytics détermine que l'exception est responsable de l'erreur ou du plantage
exceptions.frames RECORD RÉPÉTÉ Les cadres associés à l'exception
exceptions.frames.line INT64 Le numéro de ligne du fichier de la trame
exceptions.frames.file CHAÎNE DE CARACTÈRES Le nom du fichier frame
exceptions.frames.symbol CHAÎNE DE CARACTÈRES Le symbole hydraté, ou le symbole brut s'il n'est pas hydraté
exceptions.frames.offset INT64 Le décalage d'octet dans l'image binaire qui contient le code, non défini pour les exceptions Java
exceptions.frames.address INT64 L'adresse dans l'image binaire qui contient le code, non définie pour les trames Java
exceptions.frames.library CHAÎNE DE CARACTÈRES Le nom d'affichage de la bibliothèque qui inclut le cadre
exceptions.frames.owner CHAÎNE DE CARACTÈRES DÉVELOPPEUR, FOURNISSEUR, RUNTIME, PLATEFORME ou SYSTÈME
exceptions.frames.blamed BOOLEEN Si l'analyse de Crashlytics a déterminé que cette image est la cause du plantage ou de l'erreur
Erreur RECORD RÉPÉTÉ iOS uniquement : erreurs non fatales
error.file_name CHAÎNE DE CARACTÈRES La file d'attente sur laquelle le thread s'exécutait
code d'erreur INT64 Code d'erreur associé au NSError journalisé personnalisé de l'application
erreur.titre CHAÎNE DE CARACTÈRES Le titre du fil
erreur.sous-titre CHAÎNE DE CARACTÈRES Le sous-titre du fil
erreur.blâmée BOOLEEN Si l'analyse de Crashlytics a déterminé que cette image est la cause de l'erreur
error.frames RECORD RÉPÉTÉ Les cadres du stacktrace
error.frames.line INT64 Le numéro de ligne du fichier de la trame
error.frames.file CHAÎNE DE CARACTÈRES Le nom du fichier frame
error.frames.symbol CHAÎNE DE CARACTÈRES Le symbole hydraté, ou le symbole brut s'il n'est pas hydraté
error.frames.offset INT64 Le décalage d'octet dans l'image binaire qui contient le code
error.frames.address INT64 L'adresse dans l'image binaire qui contient le code
error.frames.library CHAÎNE DE CARACTÈRES Le nom d'affichage de la bibliothèque qui inclut le cadre
error.frames.owner CHAÎNE DE CARACTÈRES DÉVELOPPEUR, FOURNISSEUR, RUNTIME, PLATEFORME ou SYSTÈME
error.frames.blamed BOOLEEN Si l'analyse de Crashlytics a déterminé que cette image est la cause de l'erreur
fils RECORD RÉPÉTÉ Fils présents au moment de l'événement
threads.planté BOOLEEN Si le fil s'est écrasé
threads.thread_name CHAÎNE DE CARACTÈRES Le nom du fil
threads.queue_name CHAÎNE DE CARACTÈRES iOS uniquement : la file d'attente sur laquelle le fil s'exécutait
threads.signal_name CHAÎNE DE CARACTÈRES Le nom du signal qui a causé le plantage de l'application, présent uniquement sur les threads natifs plantés
threads.signal_code CHAÎNE DE CARACTÈRES Le code du signal qui a causé le plantage de l'application ; présent uniquement sur les threads natifs en panne
threads.crash_address INT64 L'adresse du signal qui a causé le plantage de l'application ; présent uniquement sur les threads natifs en panne
fils.code INT64 iOS uniquement : code d'erreur de l'erreur NSError journalisée personnalisée de l'application
fils.titre CHAÎNE DE CARACTÈRES Le titre du fil
fils.sous-titre CHAÎNE DE CARACTÈRES Le sous-titre du fil
threads.blamed BOOLEEN Si l'analyse de Crashlytics a déterminé que cette image est la cause du plantage ou de l'erreur
threads.frames RECORD RÉPÉTÉ Les cadres du fil
threads.frames.line INT64 Le numéro de ligne du fichier de la trame
threads.frames.file CHAÎNE DE CARACTÈRES Le nom du fichier frame
threads.frames.symbol CHAÎNE DE CARACTÈRES Le symbole hydraté, ou le symbole brut s'il n'est pas hydratable
threads.frames.offset INT64 Le décalage d'octet dans l'image binaire qui contient le code
threads.frames.address INT64 L'adresse dans l'image binaire qui contient le code
threads.frames.library CHAÎNE DE CARACTÈRES Le nom d'affichage de la bibliothèque qui inclut le cadre
threads.frames.owner CHAÎNE DE CARACTÈRES DÉVELOPPEUR, FOURNISSEUR, RUNTIME, PLATEFORME ou SYSTÈME
threads.frames.blamed BOOLEEN Si l'analyse de Crashlytics a déterminé que cette image est la cause de l'erreur

Visualiser les données Crashlytics exportées avec Data Studio

Google Data Studio transforme vos ensembles de données Crashlytics dans BigQuery dans des rapports qui sont faciles à lire, facile à partager, et entièrement personnalisable.

Pour en savoir plus sur l' utilisation de Data Studio, essayez le guide de démarrage rapide Data Studio, Bienvenue sur Data Studio .

Utiliser un modèle de rapport Crashlytics

Data Studio propose un exemple de rapport pour Crashlytics qui inclut un ensemble complet de dimensions et de métriques du schéma Crashlytics BigQuery exporté. Si vous avez activé Crashlytics BigQuery en continu l' exportation, vous pouvez voir que les données sur les tendances en temps réel page du Data Studio template.You peut utiliser l'exemple comme modèle pour créer rapidement de nouveaux rapports et visualisations à partir des données brutes crash de votre propre application:

  1. Ouvrez le modèle Dashboard Data Studio Crashlytics .
  2. Cliquez sur Utiliser un modèle dans le coin supérieur droit.
  3. Dans le menu déroulant Nouvelle source de données, sélectionnez Créer une nouvelle source de données.
  4. Cliquez sur Sélectionner sur la carte BigQuery.
  5. Sélectionnez une table contenant des données Crashlytics exportées en sélectionnant Mes projets> [votre projet-name]> firebase_crashlytics> [votre table-name]. Votre tableau de lots est toujours disponible pour la sélection ; si l'exportation en continu de Crashlytics BigQuery est activée, vous pouvez sélectionner votre table en temps réel à la place.
  6. Sous Configuration, définissez le niveau Crashlytics modèle à défaut.
  7. Cliquez sur Se connecter pour créer la nouvelle source de données.
  8. Cliquez sur Ajouter au rapport pour revenir au modèle Crashlytics.
  9. Enfin, cliquez sur Créer un rapport pour créer votre copie du modèle Dashboard Data Studio Crashlytics.