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 vues de journaux et les requêtes enregistrées.
Pour savoir comment créer, interroger et gérer vos vues analytiques, consultez Créer et interroger des vues analytiques.
Présentation
Une vue Analytics est une ressource sur laquelle vous pouvez effectuer des requêtes. Cette ressource contient une requête SQL qui interroge une ou plusieurs vues de journaux.
Une vue de journaux sur un bucket de journaux contrôle les entrées de journaux que vous pouvez voir dans le bucket de journaux. Vous pouvez interroger la vue des journaux avec les pages Explorateur de journaux et Analyse de journaux. Dans les deux cas, le format des données interrogées est déterminé par la structure de données LogEntry
.
La requête SQL contenue dans une vue analytique vous permet de transformer les données de journaux dans une ou plusieurs vues de journaux en un format personnalisé. Autrement dit, vous pouvez filtrer les entrées de journal de la vue de journal qui contribuent au résultat de la requête et définir les colonnes du résultat. Par exemple, vous pouvez supprimer des colonnes, déplacer des données d'un champ JSON imbriqué vers une colonne ou ajouter des colonnes.
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 analytique équivaut à interroger les vues de journaux interrogées par la vue analytique.
Une vue analytique et une requête enregistrée contiennent toutes deux une requête SQL. Toutefois, une vue Analytics est une ressource sur laquelle des requêtes peuvent être exécutées. Vous pouvez réexécuter une requête enregistrée, mais vous ne pouvez pas interroger le résultat d'une requête enregistrée.
Types de vues Analytics
Il existe deux types de vues analytiques : 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.
Avantages des vues analytiques
L'avantage principal des vues d'analyse est que vous pouvez transformer vos données de journaux et créer un schéma cohérent pour d'autres requêtes. Toutefois, vous constaterez peut-être qu'en créant une vue analytique, vous pouvez réduire l'effort que vous consacrez à la rédaction de requêtes ou améliorer leur structure. Comme les vues analytiques ne sont pas des vues matérialisées, leur utilisation ne réduit pas nécessairement le temps d'exécution des requêtes.
Exemple : Transformation de données
Supposons que vous analysiez les performances du réseau à l'aide des journaux de flux VPC. Vous devez analyser les performances réseau globales et être en mesure d'identifier des réseaux, des adresses IP ou des hôtes spécifiques.
Malheureusement, les informations dont vous avez besoin se trouvent dans des champs imbriqués du champ json_payload
d'une entrée de journal.
Pour extraire ces informations des entrées de journal, écrivez la requête suivante, puis enregistrez-la en tant que vue analytique nommée network_details
:
SELECT
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 `TABLE_NAME_OF_LOG_VIEW`
WHERE
log_id = "compute.googleapis.com/vpc_flows"
AND SEARCH(json_payload.reporter, "SRC")
Lorsque vous souhaitez analyser les performances du réseau, vous pouvez désormais interroger 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
Exemple : requête de base pour l'analyse de la latence de l'API
Supposons que vous deviez évaluer et résumer la latence des requêtes pour des intervalles d'une semaine. D'autres équipes utiliseront les données d'analyse des performances hebdomadaires comme base pour d'autres analyses.
La vue Analytics que vous créez et qui peut être interrogée par d'autres équipes indique la latence minimale, maximale et moyenne des requêtes traitées, telle qu'enregistrée par les entrées de journal dans une vue de journal spécifique :
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 `TABLE_NAME_OF_LOG_VIEW`
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
Rôles et autorisations IAM requis
Étant donné que les vues analytiques interrogent les vues de journaux, vos rôles IAM doivent également vous permettre d'interroger les vues de journaux et d'utiliser l'analyse des journaux pour créer et interroger des vues analytiques. Cette section liste les rôles IAM requis pour créer des vues d'analyse, interroger des vues de journaux et utiliser l'analyse de journaux :
-
Pour obtenir les autorisations nécessaires pour créer, gérer et utiliser des vues d'analyse, demandez à votre administrateur de vous accorder le rôle IAM Utilisateur Observability Analytics (
roles/observability.analyticsUser
) sur votre projet.Ce rôle prédéfini contient les autorisations requises pour créer, gérer et utiliser des vues analytiques. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Vous devez disposer des autorisations suivantes pour créer, gérer et utiliser des vues d'analyse :
-
observability.analyticsViews.get
-
observability.analyticsViews.list
-
observability.analyticsViews.create
-
observability.analyticsViews.update
-
observability.analyticsViews.delete
-
-
Pour obtenir les autorisations nécessaires pour interroger une vue de journaux et utiliser Log Analytics, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :
-
Pour interroger les buckets de journaux
_Required
et_Default
: Lecteur de journaux (roles/logging.viewer
) -
Pour interroger toutes les vues de journaux d'un projet :
Accesseur de vues de journaux (
roles/logging.viewAccessor
)
Vous pouvez limiter l'accès d'une entité principale à une vue de journaux spécifique en ajoutant une condition IAM à l'attribution du rôle "Accesseur de vues de journaux" au niveau du projet ou en ajoutant une liaison IAM au fichier de stratégie de la vue de journaux. Pour en savoir plus, consultez Contrôler l'accès à une vue de journal.
Pour en savoir plus sur les rôles supplémentaires dont vous avez besoin pour interroger les vues sur les buckets définis par l'utilisateur ou pour interroger la vue
_AllLogs
du bucket de journaux_Default
, consultez Rôles Cloud Logging. -
Pour interroger les buckets de journaux
Limites
Les limites suivantes s'appliquent aux vues analytiques :
- Une vue analytique ne peut pas interroger une autre vue analytique.
- Une vue Analytics peut interroger plusieurs vues de journaux. Toutefois, les buckets de journaux qui hébergent les vues de journaux interrogées doivent se trouver au même emplacement. Par exemple, supposons que vous ayez deux buckets de journaux, l'un dans
us-east1
et l'autre dansasia-east1
. Vous ne pouvez pas créer de vue Analytics qui interroge les vues de journaux de ces buckets de journaux. - La ressource parente d'une vue Analytics doit être un projet Google Cloud . Vous ne pouvez pas créer de vue Analytics dans des dossiers ni des organisations.
- Les ensembles de données associés ne sont pas compatibles avec les vues Analytics. Par conséquent, vous ne pouvez interroger les vues Analytics qu'à l'aide de la page Analyse de journaux. De plus, vous devez exécuter ces requêtes sur le service Cloud Logging par défaut.
- Aucune API n'est disponible pour créer ou gérer des vues analytiques.
Les limites suivantes s'appliquent aux vues analytiques :
- Nombre maximal de vues Analytics par projet : 100 Google Cloud
- Par projet Google Cloud , le nombre maximal de vues Analytics par région est de 50.
- Par projet Google Cloud , le nombre maximal de régions pouvant stocker des vues analytiques est de 10.
Étapes suivantes
- Créer des vues Analytics et les interroger
- Présentation de l'interrogation et de l'analyse des journaux
- Enregistrer et partager une requête SQL