Vous pouvez exporter les données de surveillance des performances des applications Apple et Android vers BigQuery pour une analyse plus approfondie. BigQuery vous permet d'analyser les données à l'aide de BigQuery SQL, de les exporter vers un autre fournisseur cloud et même d'utiliser les données pour vos modèles ML personnalisés.
Activer l'exportation BigQuery
Accédez à la page Intégrations dans la console Firebase, puis cliquez sur Lien dans la fiche BigQuery .
Suivez les instructions à l'écran pour activer BigQuery.
Lorsque vous activez l'exportation BigQuery pour la surveillance des performances, voici ce qui se produit :
Firebase exporte une copie de vos données existantes vers BigQuery. La propagation initiale des données à exporter peut prendre jusqu'à 48 heures.
- Vous pouvez planifier manuellement des remplissages de données jusqu'aux 30 derniers jours ou jusqu'à la date la plus récente à laquelle vous avez activé l'exportation BigQuery (selon la date la plus récente).
Une fois le jeu de données créé, l'emplacement ne peut pas être modifié, mais vous pouvez copier le jeu de données vers un autre emplacement ou déplacer (recréer) manuellement le jeu de données vers un autre emplacement. Pour en savoir plus, consultez Modifier l'emplacement du jeu de données .
Firebase configure des synchronisations régulières de vos données de votre projet Firebase vers BigQuery. Ces opérations d'exportation quotidiennes se terminent généralement 24 heures après leur planification.
Par défaut, toutes les applications de votre projet sont associées à BigQuery. Toutes les applications que vous ajoutez ultérieurement au projet sont automatiquement associées à BigQuery. Vous pouvez gérer les applications qui envoient des données .
Pour désactiver l'exportation BigQuery, dissociez votre projet dans la console Firebase.
Quelles données sont exportées vers BigQuery ?
Pour chaque application du projet, l'exportation crée un tableau qui inclut tous les événements de performance capturés. Chaque ligne du tableau correspond à un événement de performance unique qui peut être l'un des suivants :
Trace de durée - traces qui collectent, par défaut, la métrique de "durée", qui inclut le démarrage de l'application, l'application en premier plan et l'application en arrière-plan, ainsi que toutes les traces de code personnalisé instrumentées par le développeur
-
event_type
estDURATION_TRACE
-
event_name
est le même que le nom de la trace
-
Métrique de suivi — métriques personnalisées associées aux traces de code personnalisées instrumentées par le développeur
-
event_type
estTRACE_METRIC
-
event_name
est le nom de la métrique -
parent_trace_name
est le nom de la trace qui contient cette métrique
-
Trace d'écran - traces couvrant la durée de vie d'un écran (traces de rendu d'écran)
-
event_type
estSCREEN_TRACE
-
event_name
est le préfixe_st_
plus le nom réel de l'écran
-
Requête réseau — traces couvrant la durée de vie d'une requête réseau (traces de requête réseau HTTP)
-
event_type
estNETWORK_REQUEST
-
event_name
est le modèle catégorisé de l'URL de requête réseau
-
Chaque événement de performances contient des attributs de l'événement (tels que le pays et l'opérateur de l'appareil client), ainsi que des informations spécifiques à l'événement :
- Les traces de durée, les métriques de trace et les traces d'écran contiennent
trace_info
- Les métriques de trace contiennent
trace_info.metric_info
- Les traces d'écran contiennent
trace_info.screen_info
- Les traces réseau contiennent
network_info
Schéma de données détaillé
Nom de domaine | Taper | Description |
---|---|---|
événement_horodatage | horodatage | Horodatage depuis Epoch lorsque l'événement a commencé sur l'appareil client (démarrage de la trace, démarrage du réseau, etc.) |
app_display_version | chaîne | Afficher la version de l'application (par exemple, "4.1.7")
|
app_build_version | chaîne | Version de build de l'application (par exemple, "1523456")
|
os_version | chaîne | Version du système d'exploitation de l'appareil client
|
nom de l'appareil | chaîne | Nom de l'appareil client (par exemple, "Google Pixel") |
pays | chaîne | Code de pays à deux lettres du pays à partir duquel l'événement a eu lieu (par exemple, "US" ou "ZZ" pour un pays inconnu) |
transporteur | chaîne | Opérateur de l'appareil client |
radio_type | chaîne | Type de radio actif au moment de l'événement (par exemple, "WIFI") |
attributs_personnalisés | TABLEAU<ENREGISTREMENT> | Tous les attributs personnalisés associés à cet événement |
custom_attributes.key | chaîne | Clé de l'attribut personnalisé |
custom_attributes.value | chaîne | Valeur de l'attribut personnalisé |
type d'événement | chaîne | Type d'événement ; valeurs possibles:
|
Nom de l'événement | chaîne | Nom de l'événement
|
parent_trace_name | chaîne | Nom de la trace parent qui porte la métrique de trace Uniquement présent pour TRACE_METRIC |
info_trace | ENREGISTRER | Uniquement présent pour DURATION_TRACE , SCREEN_TRACE et TRACE_METRIC |
trace_info.duration_us | int64 |
|
trace_info.screen_info | ENREGISTRER | Uniquement présent pour SCREEN_TRACE |
trace_info.screen_info.slow_frame_ratio | float64 | Rapport des images lentes pour cette trace d'écran, entre 0 et 1 (par exemple, une valeur de 0,05 signifie que 5 % des images de cette instance d'écran ont mis plus de 16 ms à s'afficher) |
trace_info.screen_info.frozen_frame_ratio | float64 | Rapport des images gelées pour cette trace d'écran, entre 0 et 1 (par exemple, une valeur de 0,05 signifie que 5 % des images de cette instance d'écran ont mis plus de 700 ms à s'afficher) |
info_trace.info_métrique | ENREGISTRER | Uniquement présent pour TRACE_METRIC |
trace_info.metric_info.metric_value | int64 | Valeur de la métrique de trace |
Infos réseau | ENREGISTRER | Uniquement présent pour NETWORK_REQUEST |
info_réseau.code_réponse | int64 | Code de réponse HTTP pour la réponse réseau (par exemple, 200, 404) |
info_réseau.response_mime_type | chaîne | Type MIME de la réponse réseau (par exemple, "text/html") |
info_réseau.request_http_method | chaîne | Méthode HTTP de la requête réseau (par exemple, "GET" ou "POST") |
info_réseau.request_payload_bytes | int64 | Taille de la charge utile de la requête réseau Unité : octet |
info_réseau.response_payload_bytes | int64 | Taille de la charge utile de réponse du réseau Unité : octet |
info_réseau.request_completed_time_us | int64 | Microsecondes après event_timestamp lorsque l'envoi de la requête réseau est terminéUnité : microseconde |
info_réseau.response_initiated_time_us | int64 | Microsecondes après event_timestamp lorsque la réponse du réseau est initiéeUnité : microseconde |
info_réseau.response_completed_time_us | int64 | Microsecondes après event_timestamp lorsque la réponse du réseau est terminéeUnité : microseconde |
Que pouvez-vous faire avec les données exportées ?
Les sections suivantes proposent des exemples de requêtes que vous pouvez exécuter dans BigQuery sur vos données de surveillance des performances exportées.
Afficher la répartition moyenne de la latence de démarrage des applications par pays
SELECT AVG(trace_info.duration_us), country FROM `TABLE_NAME` WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD") AND event_type = "DURATION_TRACE" AND event_name = "_app_start" GROUP BY 2;
Vérifiez le rapport des images gelées par rapport à diverses conditions
Par exemple, vous pouvez vérifier le rapport entre les images gelées et le temps que les utilisateurs passent sur chaque écran de votre application lorsqu'ils utilisent différents types de radio (WiFi, 4G, etc.).
SELECT AVG(trace_info.duration_us / 1000000) AS seconds_on_screen, AVG(trace_info.screen_info.frozen_frame_ratio) AS frozen_frame_ratio, event_name, radio_type FROM `TABLE_NAME` WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD") AND event_type = "SCREEN_TRACE" GROUP BY event_name, radio_type ORDER BY event_name, radio_type;
Taux de réussite du cache de calcul pour le chargement de certains types de fichiers à partir du disque
Cette analyse suppose que vous avez instrumenté une trace de code personnalisée pour le chargement à partir du disque avec un attribut personnalisé nommé file-extension
et une métrique personnalisée (une TRACE_METRIC
) nommée cache-hit
qui est définie sur 1
si le cache est réussi et 0
si le cache est manqué.
Par exemple, vous pouvez calculer le taux d'accès au cache pour charger des fichiers PNG à partir du disque :
SELECT AVG(trace_info.metric_info.metric_value) AS cache_hit_rate FROM `TABLE_NAME` WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD") AND event_type = "TRACE_METRIC" AND event_name = "cache-hit" AND parent_trace_name = "loadFromDisk" AND STRUCT("file-extension", "png") IN UNNEST(custom_attributes);
Vérifier l'heure de la journée à laquelle les utilisateurs émettent des requêtes réseau
Par exemple, vous pouvez vérifier à quelle heure de la journée les utilisateurs des États-Unis émettent des requêtes réseau depuis votre application :
SELECT count(1) AS hourly_count, EXTRACT(HOUR FROM event_timestamp) AS hour_of_day FROM `TABLE_NAME` WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD") AND event_type = "NETWORK_REQUEST" AND country = "US" GROUP BY 2 ORDER BY 2;
Emportez vos données de surveillance des performances partout
Parfois, vous souhaitez accéder à vos données de surveillance des performances côté serveur ou les transférer vers une autre solution tierce. Il n'y a actuellement aucun frais pour l'exportation de données.
Vous pouvez exporter vos données en :
Utiliser l'interface utilisateur Web de BigQuery
Exécution de la commande CLI
bq extract
Envoi d'une tâche d'extraction via l'API ou les bibliothèques clientes.
Tarification
L'exportation de données à partir de Performance Monitoring est gratuite, et BigQuery fournit de généreuses limites d'utilisation sans frais. Pour plus d'informations, consultez la tarification BigQuery ou le bac à sable BigQuery .