Catch up on everthing we announced at this year's Firebase Summit. Learn more

Exporter les données de surveillance des performances vers BigQuery

Vous pouvez exporter les données de performance de surveillance d'Apple et les applications Android 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 cloud et même d'utiliser les données pour vos modèles de ML personnalisés.

Activer l'exportation BigQuery

  1. Aller à la Intégrations page dans la console Firebase, puis cliquez sur le lien dans la carte BigQuery.

  2. Suivez les instructions à l'écran pour activer BigQuery.

Lorsque vous associez votre projet à BiqQuery :

  • Firebase exporte une copie de vos données existantes à BigQuery.

    • Lors de l'association initiale, Firebase programme automatiquement vos tables BigQuery pour qu'elles remplissent les données des 7 derniers jours afin que vous puissiez commencer à expérimenter immédiatement. Attendez quelques heures pour que les données initiales soient disponibles dans BigQuery.

    • Vous pouvez également manuellement les données de calendrier de remblayage pour jusqu'à 30 derniers jours.

  • 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 .

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

Quelles données sont exportées vers BigQuery ?

Pour chaque application du projet, l'exportation crée une table qui inclut tous les événements de performances capturés. Chaque ligne du tableau est un événement de performance unique qui peut être l'un des suivants :

  • Trace Durée - des traces qui recueillent, par défaut, la mesure de la « durée », qui comprennent le démarrage de l' application, l' application en premier plan, et l' application en arrière - plan, ainsi que des traces de code personnalisé instrumenté développeur-

    • event_type est DURATION_TRACE
    • event_name est le même que le nom de la trace
  • Trace métrique - paramètres personnalisés qui sont associés à code personnalisé développeur instrumenté traces

    • event_type est TRACE_METRIC
    • event_name est le nom de la métrique
    • parent_trace_name est le nom de trace qui contient cette métrique
  • Trace d'écran - traces couvrant la durée de vie d'un écran (traces de rendu de l' écran)

    • event_type est SCREEN_TRACE
    • event_name est - préfixe _st_ plus le nom de l' écran réel
  • Demande de réseau - traces couvrant la durée de vie d'une demande de réseau (HTTP traces de demande de réseau)

    • event_type est NETWORK_REQUEST
    • event_name est le modèle classé de l'URL de requête réseau

Chaque événement de performance 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 :

  • Traces Durée, des mesures de trace, et des traces d'écran contiennent trace_info
  • Trace métriques contiennent trace_info.metric_info
  • Traces d'écran contiennent trace_info.screen_info
  • Traces réseau contiennent network_info

Schéma de données détaillé

Nom de domaine Taper La description
event_timestamp horodatage Horodatage depuis l'époque où l'événement a commencé sur le périphérique client (démarrage de la trace, démarrage du réseau, etc.)
app_display_version chaîne de caractères Afficher la version de l'application (par exemple, "4.1.7")
  • Pour Android - VersionName
  • Pour iOS - CFBundleShortVersionString
app_build_version chaîne de caractères Version de build de l'application (par exemple, "1523456")
  • Pour Android - VersionCode
  • Pour iOS - CFBundleVersion
os_version chaîne de caractères Version du système d'exploitation de l'appareil client
  • Pour Android - Niveau API Android (par exemple "26")
  • Pour iOS — version iOS (par exemple "11.4")
nom de l'appareil chaîne de caractères Nom de l'appareil client (par exemple, "Google Pixel")
pays chaîne de caractères Code 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 de caractères Transporteur de l'appareil client
type_radio chaîne de caractères Type de radio active lorsque l'événement a eu lieu (par exemple, "WIFI")
attributs_personnalisés TABLEAU<ENREGISTREMENT> Tous les attributs personnalisés associés à cet événement
custom_attributes.key chaîne de caractères Clé de l'attribut personnalisé
custom_attributes.value chaîne de caractères Valeur de l'attribut personnalisé
type d'événement chaîne de caractères Type d'événement ; valeurs possibles:
  • DURATION_TRACE - traces qui recueillent, par défaut, la mesure de la « durée », qui comprennent le démarrage de l' application, l' application en premier plan, et l' application en arrière - plan, ainsi que des traces de code personnalisé instrumenté développeur-
  • SCREEN_TRACE - traces couvrant la durée de vie d'un écran (traces de rendu de l' écran)
  • TRACE_METRIC - paramètres personnalisés qui sont associés à code personnalisé développeur instrumenté traces
  • NETWORK_REQUEST - traces couvrant la durée de vie d'une demande de réseau (HTTP traces de demande de réseau)
Nom de l'événement chaîne de caractères Nom de l'événement
  • Pour DURATION_TRACE - Nom de la trace
  • Pour TRACE_METRIC - nom métrique personnalisé
  • Pour SCREEN_TRACE - _st_ suivi du nom de trace
  • Pour NETWORK_REQUEST - demande réseau modèle d'URL
parent_trace_name chaîne de caractères Nom de la trace parente qui transporte la métrique de trace
Seulement présents pour TRACE_METRIC
trace_info ENREGISTRER Uniquement présent pour DURATION_TRACE , SCREEN_TRACE et TRACE_METRIC
trace_info.duration_us int64
  • Pour DURATION_TRACE et SCREEN_TRACE - Durée ( la « durée ») du début à la fin de la trace
  • Pour TRACE_METRIC - durée ( « durée ») du début à la fin de la trace mère
Unité : microseconde
trace_info.screen_info ENREGISTRER Seulement présents pour SCREEN_TRACE
trace_info.screen_info.slow_frame_ratio float64 Ratio d'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 pris plus de 16 ms pour être rendues)
trace_info.screen_info.frozen_frame_ratio float64 Ratio d'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 pris plus de 700 ms pour être rendues)
trace_info.metric_info ENREGISTRER Seulement présents pour TRACE_METRIC
trace_info.metric_info.metric_value int64 Valeur de la métrique de trace
Infos réseau ENREGISTRER Seulement présents pour NETWORK_REQUEST
network_info.response_code int64 Code de réponse HTTP pour la réponse du réseau (par exemple, 200, 404)
network_info.response_mime_type chaîne de caractères Type MIME de la réponse réseau (par exemple, "text/html")
network_info.request_http_method chaîne de caractères 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 demande de réseau
Unité : octet
network_info.response_payload_bytes int64 Taille de la charge utile de réponse du réseau
Unité : octet
network_info.request_completed_time_us int64 Microsecondes après event_timestamp lorsque la demande du réseau d' envoi est complet
Unité : microseconde
network_info.response_initiated_time_us int64 Microsecondes après event_timestamp lorsque la réponse du réseau est lancée
Unité : microseconde
network_info.response_completed_time_us int64 Microsecondes après event_timestamp lorsque la réponse du réseau est terminée
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 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 ratio d'images gelées ainsi que 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;

Calculer le taux de réussite du cache pour le chargement de certains types de fichiers à partir du disque

Cette analyse suppose que vous instrumenté une trace de code personnalisé pour le chargement à partir du disque avec un attribut personnalisé appelé file-extension et une métrique personnalisée (un TRACE_METRIC ) nommé cache-hit qui est réglé sur 1 si dans le cache et 0 si défaut de cache.

Par exemple, vous pouvez calculer le taux de réussite du cache 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érifiez l'heure à 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 envoient 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 de surveillance des performances n'importe où

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 des données.

Vous pouvez exporter vos données en :

  • Utiliser l'interface utilisateur Web de BigQuery

  • L' exécution de la commande CLI bq extract

  • Envoi d' un travail d'extrait via l'API ou les bibliothèques clientes.

Prix

L'exportation de données à partir de Performance Monitoring est gratuite et BigQuery propose des limites d'utilisation gratuites généreuses. Pour plus d' informations, consultez les prix BigQuery ou le bac à sable BigQuery .