Vous pouvez exporter des données Performance Monitoring depuis les applications Apple et Android vers BigQuery pour plus l'analyse. BigQuery vous permet d'analyser les données à l'aide de SQL BigQuery, de les exporter vers un autre fournisseur de services cloud et même de les utiliser pour vos modèles de ML personnalisés.
Activer l'exportation BigQuery
Accédez au Intégrations de la console Firebase, puis cliquez sur Associer dans la section BigQuery .
Suivez les instructions à l'écran pour activer BigQuery.
Lorsque vous activez l'exportation BigQuery pour Performance Monitoring, les éléments suivants 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 l'ensemble de données créé, l'emplacement ne peut pas être modifié, mais vous pouvez copier l'ensemble de données à un autre emplacement ou déplacer (recréer) manuellement l'ensemble de données à un autre emplacement. Pour en savoir plus, consultez la page Modifier l'emplacement d'un ensemble de données.
Firebase synchronise régulièrement les données de votre projet Firebase BigQuery Ces opérations d'exportation quotidiennes se terminent généralement en 24 heures après leur planification.
Par défaut, toutes les applications de votre projet sont associées à BigQuery. N'importe quelle valeur les applications que vous ajoutez par la suite au projet sont automatiquement associées à BigQuery Vous pouvez gérer les applications qui envoient des données.
Pour désactiver l'exportation BigQuery : dissocier 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 performances capturés. Chaque ligne du tableau est un événement de performances unique Il peut s'agir de l'un des éléments suivants:
Trace de durée : traces qui collectent, par défaut, la métrique de "Durée", ce qui inclut le démarrage de l'application, son affichage au premier plan et en arrière-plan et les traces de code personnalisées instrumentées par le développeur
event_type
correspond àDURATION_TRACE
.event_name
est identique au nom de la trace.
Métrique de trace : métriques personnalisées associées à Traces de code personnalisés instrumentées par le développeur
event_type
correspond àTRACE_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 (rendu de l'écran) traces)
event_type
correspond àSCREEN_TRACE
.event_name
correspond au préfixe_st_
suivi du nom d'écran réel.
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
correspond àNETWORK_REQUEST
.event_name
est le format catégorisé de l'URL de la requête réseau.
Chaque événement de performance contient des attributs de l'événement (comme le pays et opérateur de l'appareil client), ainsi que des informations spécifiques aux événements:
- Les traces de durée, les métriques de trace et les traces de l'é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 du champ | Type | Description |
---|---|---|
event_timestamp | timestamp | Code temporel depuis l'epoch du début de l'événement sur l'appareil client (début de la trace, début du réseau, etc.) |
version_display_app | chaîne | Afficher la version de l'application (par exemple, "4.1.7")
|
version_de_build_app | chaîne | Version de l'application (par exemple, "1523456")
|
os_version | chaîne | Version de l'OS de l'appareil client
|
device_name (nom de l'appareil) | chaîne | Nom de l'appareil client (par exemple, "Google Pixel") |
country | chaîne | Code pays à deux lettres du pays dans lequel l'événement est organisé (par exemple, "US" ou "ZZ" pour un pays inconnu) |
transporteur | chaîne | Opérateur de l'appareil client |
type de radio | chaîne | Type de radio actif lorsque l'événement s'est produit (par exemple, "WIFI") |
custom_attributes | ARRAY<RECORD> | Tous les attributs personnalisés associés à cet événement |
clé_attributs_personnalisés | chaîne | Clé de l'attribut personnalisé |
custom_attributes.value | chaîne | Valeur de l'attribut personnalisé |
event_type | chaîne | Type d'événement valeurs possibles:
|
event_name | chaîne | Nom de l'événement
|
nom_trace_parent | chaîne | Nom de la trace parente contenant la métrique de trace Uniquement présente pour TRACE_METRIC |
trace_info | ENREGISTREMENT | Uniquement présente pour DURATION_TRACE ,
SCREEN_TRACE et TRACE_METRIC |
trace_info.duration_us | int64 |
|
trace_info.screen_info | ENREGISTREMENT | Uniquement présente pour SCREEN_TRACE |
trace_info.screen_info.slow_frame_ratio | float64 | Ratio d'images affichées trop lentement pour cette trace d'écran, compris entre 0 et 1 (Par exemple, une valeur de 0,05 signifie que 5% des images de cet écran l'instance a mis plus de 16 ms à s'afficher) |
trace_info.screen_info.frozen_frame_ratio | float64 | Ratio de cadres figés pour cette trace d'écran, compris entre 0 et 1 (Par exemple, une valeur de 0,05 signifie que 5% des images de cet écran l'instance a mis plus de 700 ms à s'afficher) |
trace_info.metric_info | ENREGISTREMENT | Uniquement présente pour TRACE_METRIC |
trace_info.metric_info.metric_value | int64 | Valeur de la métrique de trace |
informations_réseau | ENREGISTREMENT | Uniquement présente pour NETWORK_REQUEST |
network_info.response_code | int64 | Code de réponse HTTP pour la réponse du réseau (par exemple, 200, 404). |
type_mime_réponse | chaîne | Type MIME de la réponse du réseau (par exemple, "text/html") |
network_info.request_http_method | chaîne | Méthode HTTP de la requête réseau (par exemple, "GET" ou "POST") |
network_info.request_payload_bytes | int64 | Taille de la charge utile de la requête réseau Unité: octet |
network_info.response_payload_bytes | int64 | Taille de la charge utile de réponse réseau Unité: octet |
network_info.request_completed_time_us | int64 | Microsecondes après event_timestamp lorsque la requête réseau
envoi terminéUnité: microseconde |
network_info.response_selected_time_us | int64 | Microsecondes après event_timestamp lorsque la réponse du réseau
est lancéUnité: microseconde |
network_info.response_completed_time_us | int64 | Microsecondes après event_timestamp lorsque la réponse du réseau
terminéUnité: 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 BigQuery par rapport à vos données Performance Monitoring exportées.
Afficher la répartition de la latence moyenne 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érifier le ratio de cadres figés par rapport à différentes conditions
Par exemple, vous pouvez vérifier le ratio des images figées ainsi que le temps que les utilisateurs passent sur chaque écran de votre application avec différents types de radio (Wi-Fi, 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;
Calcul du taux de succès de cache (hits) 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 (un TRACE_METRIC
) nommé cache-hit
qui est défini sur 1
en cas de cache hit et sur 0
en cas de cache miss.
Par exemple, vous pouvez calculer le taux de succès de cache (hits) pour le chargement de 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 envoient des requêtes réseau
Par exemple, vous pouvez vérifier à quelle heure de la journée les utilisateurs habitant aux États-Unis émettre des requêtes réseau à partir de 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 Performance Monitoring partout
Parfois, vous souhaitez accéder à vos données Performance Monitoring côté serveur ou les transférer vers une autre solution tierce. Actuellement, l'exportation des données est sans frais.
Vous pouvez exporter vos données de différentes manières:
Utiliser l'UI Web BigQuery
Exécuter la commande CLI
bq extract
Envoi d'une tâche d'extraction via l'API ou les bibliothèques clientes.
Tarifs
L'exportation de données depuis Performance Monitoring et BigQuery est sans frais propose des limites d'utilisation généreuses et sans frais. Pour en savoir plus, consultez Tarifs de BigQuery ou le bac à sable BigQuery.