À propos des vues Analytics

Ce document décrit les vues analytiques et explique quand vous pouvez les créer. Il décrit également les différences entre les vues analytiques et les concepts que vous connaissez peut-être, comme les requêtes enregistrées et les vues de journaux.

Présentation

Une vue Analytics est une ressource sur laquelle vous pouvez exécuter des requêtes. En d'autres termes, une fois que vous avez défini une vue analytique, vous pouvez écrire des requêtes dans lesquelles vous spécifiez votre vue analytique dans la clause FROM.

L'avantage principal de l'utilisation des vues analytiques est que vous n'êtes pas limité à l'interrogation des données dans le format défini par une API ou un système. Une vue analytique vous permet de définir un schéma, ce qui vous permet de simplifier vos requêtes ou de réduire le temps que vous passez à les écrire. La requête dans une vue analytique peut effectuer des opérations telles que conserver uniquement des champs spécifiques, renommer des champs, déplacer des champs imbriqués vers une colonne de premier niveau, et effectuer des regroupements et des agrégations.

Les vues Analytics ne sont pas des vues matérialisées. Une vue analytique n'est pas une vue précalculée qui met régulièrement en cache les résultats des requêtes. Par conséquent, interroger une vue Analytics revient à interroger les vues listées dans la requête de la vue Analytics.

Les vues Analytics sont plus puissantes que les requêtes enregistrées, qui sont des requêtes que vous exécutez sur la page Analyse de journaux, puis enregistrez. Vous pouvez réexécuter une requête enregistrée, mais vous ne pouvez pas interroger les résultats d'une requête enregistrée.

Types de vues Analytics

Il existe deux types de vues Analytics : celles définies par l'utilisateur et celles définies par le système.

  • Les vues Analytics définies par l'utilisateur sont celles que vous créez. Vous pouvez interroger, modifier et supprimer les vues Analytics définies par l'utilisateur.

  • Les vues analytiques définies par le système sont des vues analytiques créées par les servicesGoogle Cloud . Vous pouvez interroger les vues analytiques définies par le système. Toutefois, vous ne pouvez pas les modifier ni les supprimer.

Pour savoir comment lister les vues Analytics dans votre projetGoogle Cloud , consultez Lister les vues Analytics.

Emplacement des vues analytiques

L'emplacement d'une vue Analytics est déterminé par l'emplacement des ressources qu'elle interroge. Par exemple, si une vue Analytics interroge une vue de journaux située dans l'emplacement global, l'emplacement de la vue Analytics doit également être global. Lorsque vous utilisez la console Google Cloud pour créer une vue Analytics, l'emplacement est défini automatiquement.

Exemples de cas d'utilisation

L'avantage principal d'une vue analytique est que vous n'êtes pas limité à interroger les données dans le format défini par le système. Une vue analytique vous permet de définir un schéma, ce qui vous permet de simplifier vos requêtes ou de réduire le temps que vous passez à les écrire.

Interroger les détails du réseau

Vous souhaitez analyser les performances du réseau à l'aide des journaux de flux VPC. Vous devez analyser les performances réseau globales et identifier des réseaux, des adresses IP et des hôtes spécifiques. Ces informations sont stockées dans des champs imbriqués du champ json_payload d'une entrée de journal.

Pour simplifier vos requêtes d'analyse, vous créez la vue Analytics suivante et la nommez network_details :

SELECT
  -- Create a column for each network field.
  JSON_VALUE(resource.labels.subnetwork_name) subnetwork_name,
  JSON_VALUE(json_payload.src_instance.vm_name) vm_name,
  JSON_VALUE(json_payload.connection.src_ip) as src_ip,
  JSON_VALUE(json_payload.connection.src_port) as src_port,
  JSON_VALUE(json_payload.connection.dest_ip) as dest_ip,
  JSON_VALUE(json_payload.connection.dest_port) as dest_port,
  CAST(JSON_VALUE(json_payload.bytes_sent) as INT64) as bytes_sent,
  CAST(JSON_VALUE(json_payload.packets_sent) as INT64) as packets_sent
FROM
  -- Query one log view.
  `PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
WHERE
  -- Only query the VPC Flow Logs log.
  log_id = "compute.googleapis.com/vpc_flows"
  AND SEARCH(json_payload.reporter, "SRC")

Avant d'utiliser la requête, définissez les valeurs des variables suivantes :

  • PROJECT_ID : identifiant du projet.
  • LOCATION : emplacement de la vue des journaux.
  • BUCKET_ID : nom ou ID du bucket de journaux.
  • LOG_VIEW_ID : identifiant de la vue de journal, limité à 100 caractères et ne pouvant inclure que des lettres, des chiffres, des traits de soulignement et des traits d'union.

Pour analyser les performances du réseau, vous interrogez votre vue Analytics. Par exemple, si vous ne vous intéressez qu'au nom de l'instance et à la quantité de données envoyées, vous pouvez écrire la requête suivante :

SELECT vm_name, bytes_sent, packets_sent,
FROM `analytics_view.my_project.global.network_details`
ORDER BY bytes_sent DESC
LIMIT 100

Requête de base pour l'analyse de la latence de l'API

Plusieurs équipes ont besoin de données sur les performances hebdomadaires pour effectuer leur analyse. Au lieu que chaque équipe génère les données hebdomadaires, vous créez une vue analytique qui extrait ces données. D'autres équipes peuvent interroger la vue "Données analytiques" et effectuer leur analyse.

La requête suivante montre comment utiliser SQL pour calculer la latence de requête minimale, maximale et moyenne :

SELECT week, MIN(took_ms) as min, MAX(took_ms) AS max, AVG(took_ms) AS avg
FROM (
  SELECT TIMESTAMP_TRUNC(timestamp, WEEK) AS week,
  CAST( JSON_VALUE(json_payload, '$."http.resp.took_ms"') AS INT64) as took_ms
  FROM
    -- Query one log view.
    `PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
  WHERE json_payload IS NOT NULL
    AND SEARCH(labels,"frontend")
    AND JSON_VALUE(json_payload.message) = "request complete"
  ORDER BY took_ms DESC, timestamp ASC
)
GROUP BY week ORDER BY week

Limites

Les limites suivantes s'appliquent aux vues analytiques :

  • Une vue Analytics ne peut interroger que des vues de journaux.
  • La ressource parente d'une vue Analytics doit être un projet Google Cloud .
  • Vous ne pouvez interroger une vue Analytics qu'à l'aide de la page Analyse de journaux et uniquement lorsque vous utilisez le moteur de requête Analyse de journaux (par défaut).
  • Toutes les vues interrogées par une vue Analytics doivent se trouver au même emplacement.
  • Vous devez utiliser la console Google Cloud pour créer ou gérer vos vues Analytics.
  • Vous pouvez créer au maximum 100 vues Analytics par projet Google Cloud .
  • Vous pouvez créer jusqu'à 50 vues d'analyse par région.
  • Par projet Google Cloud , au maximum 10 régions peuvent contenir une vue analytique.

Étapes suivantes