Analyser le volume de journaux avec Observability Analytics

Ce document explique comment utiliser Observability Analytics pour estimer le volume facturable de vos entrées de journal. Vous pouvez écrire des requêtes qui génèrent des rapports et agrègent votre volume facturable selon différentes dimensions, telles que le type de ressource ou le nom de l'application, puis représenter graphiquement et afficher les résultats de la requête.

Comment interroger le volume facturable

Le volume facturable d'une entrée de journal, qui correspond à la taille signalée à Cloud Billing, est disponible via le champ storage_bytes. Dans vos requêtes, vous pouvez utiliser le champ storage_bytes de la même manière que n'importe quel champ de schéma dont le type de données est INTEGER. Par exemple, vous pouvez l'inclure dans des clauses SELECT, des instructions CASE et des expressions de table courantes. Pour en savoir plus sur l'interrogation de vos journaux, consultez les documents suivants :

Étant donné que Cloud Billing utilise le volume facturable pour déterminer vos coûts, vous pouvez écrire des requêtes qui vous aident à comprendre les sources de vos coûts. Par exemple, vous pouvez écrire des requêtes qui vous aident à déterminer quelles applications écrivent le plus d'entrées de journal. Pour découvrir comment associer le volume facturable au coût, consultez les sections Cloud Logging de la page Tarifs de Google Cloud Observability.

Le volume facturable d'une entrée de journal n'est pas la taille de l'LogEntry objet envoyé à l'API Cloud Logging. Le volume facturable inclut les octets nécessaires à la sérialisation et aux métadonnées.

Avant de commencer

Cette section décrit les étapes que vous devez suivre pour pouvoir utiliser Observability Analytics.

Configurer des buckets de journaux

Assurez-vous que vos buckets de journaux ont été mis à niveau pour utiliser Observability Analytics :

  1. Dans la Google Cloud console, accédez à la page Stockage des journaux :

    Accéder à la page Stockage des journaux

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Logging.

  2. Pour chaque bucket de journaux comportant une vue de journal que vous souhaitez interroger, assurez-vous que la Observability Analytics disponible colonne affiche Ouvrir. Si Mettre à niveau s'affiche, cliquez sur Mettre à niveau et remplissez la boîte de dialogue.

Configurer des rôles et des autorisations IAM

Cette section décrit les rôles ou autorisations IAM requis pour utiliser Observability Analytics :

  • Pour obtenir les autorisations nécessaires pour utiliser Observability Analytics et interroger des vues de journal, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :

    Vous pouvez limiter un principal à une vue de journal spécifique en ajoutant une condition IAM à l'attribution du rôle Accesseur de vues de journaux effectuée au niveau du projet ou en ajoutant une liaison IAM au fichier de stratégie de la vue de journal. Pour en savoir plus, consultez Contrôler l'accès à une vue de journal.

    Il s'agit des mêmes autorisations que celles dont vous avez besoin pour afficher les entrées de journal sur la page Explorateur de journaux. Pour en savoir plus sur les rôles supplémentaires dont vous avez besoin pour interroger des vues sur des buckets définis par l'utilisateur ou pour interroger la vue _AllLogs du bucket de journaux _Default, consultez Rôles Cloud Logging.

  • Pour obtenir les autorisations nécessaires pour interroger des vues d'analyse, demandez à votre administrateur de vous accorder le rôle IAM Utilisateur Observability Analytics (roles/observability.analyticsUser) sur votre projet.

Exemples de requêtes

Cette section fournit des exemples de requêtes qui analysent les données d'une seule vue de journal. Si vous stockez des données dans plusieurs vues de journal et que vous souhaitez calculer des valeurs agrégées pour les données stockées dans ces vues, vous devez utiliser l'instruction UNION.

Vous pouvez interroger votre entrée de journal à l'aide de la page Observability Analytics ou de n'importe quel emplacement où vous pouvez interroger des ensembles de données BigQuery, y compris les pages BigQuery Studio et Looker Studio, ainsi que l' outil de ligne de commande bq.

Pour utiliser les exemples de requêtes, procédez comme suit :

Interroger le volume de journaux par application

Pour calculer le nombre total d'octets par jour et par application pour vos entrées de journal écrites par rapport à une ressource Google Kubernetes Engine et comportant une charge utile JSON, utilisez la requête suivante :

SELECT
  timestamp_trunc(timestamp,DAY) as day,
  JSON_VALUE(labels["k8s-pod/app"]) as app_id,
  SUM(storage_bytes) as total_bytes
FROM
  `VIEW`
WHERE
  json_payload IS NOT NULL
  AND resource.type="k8s_container"
GROUP BY ALL

Pour visualiser les données, vous pouvez créer un graphique.

Dans l'exemple suivant, les données sont affichées sous forme de graphique à barres empilées. Chaque barre du graphique affiche le nombre total d'octets stockés, organisés par application. Dans cet exemple, l'application frontend génère le plus de données de journal :

Exemple de graphique montrant les résultats d'une requête sur le volume de journaux par application.

Interroger le volume de journaux par nom de journal

Pour afficher le nombre d'octets stockés et le nom de journal de chaque entrée de journal comportant une charge utile JSON et écrite par rapport à une ressource Google Kubernetes Engine, utilisez la requête suivante :

SELECT
  log_id AS log_name,
  storage_bytes
FROM
  `VIEW`
WHERE
  json_payload IS NOT NULL
  AND resource.type="k8s_container"

La requête précédente n'agrège pas les résultats. Au lieu de cela, il existe une ligne pour chaque entrée de journal, et cette ligne contient un nom de journal et le nombre d'octets stockés. Si vous représentez ces données graphiquement, vous pouvez visualiser la partie de vos données de journal écrites dans différents journaux :

Exemple de graphique montrant les résultats d'une requête sur le volume de journaux par nom de journal.

Le graphique précédent montre que la plupart des données de journal sont écrites dans le journal nommé stdout.

Utiliser l'outil de ligne de commande bq pour interroger le volume de journaux par nom de journal

Vous pouvez inclure le storage_bytes champ dans les requêtes que vous exécutez via la page BigQuery Studio ou à l'aide de l' outil de ligne de commande bq.

La requête suivante indique le nom de journal et le nombre d'octets stockés pour chaque entrée de journal :

bq query --use_legacy_sql=false  'SELECT log_id as log_name,
  storage_bytes FROM `VIEW`'

Le résultat de cette requête est semblable à ce qui suit :

+----------+---------------+
| log_name | storage_bytes |
+----------+---------------+
| stdout   |           716 |
| stdout   |           699 |
| stdout   |           917 |
| stdout   |           704 |

Chaque ligne correspond à une entrée de journal. La valeur de la colonne storage_bytes correspond au volume facturable de cette entrée de journal.

Limites

Le champ storage_bytes n'est disponible que lorsque les conditions suivantes sont remplies :

  • Le bucket de journaux est mis à niveau pour utiliser Observability Analytics.
  • Votre requête est exécutée sur la page Observability Analytics ou n'importe où vous pouvez interroger des ensembles de données BigQuery, y compris les pages BigQuery Studio et Looker Studio, ainsi que l'outil de ligne de commande bq.

  • L'entrée de journal a été écrite le 1er janvier 2024 ou après.