Représenter les résultats d'une requête SQL sous forme de graphique

Ce document explique comment représenter graphiquement les résultats de vos requêtes Analyse de journaux, qui émettent des requêtes SQL. L'analyse de vos données de journaux et de trace avec SQL vous permet d'identifier des tendances et des schémas. Vous pouvez afficher les résultats de vos requêtes sous forme de tableau ou les visualiser en créant un graphique. Vous pouvez également enregistrer un graphique dans un tableau de bord personnalisé.

La capture d'écran suivante affiche les résultats de l'exemple de requête de trace, qui est présenté plus loin dans ce document. La capture d'écran affiche l'état indiqué par les étendues, après agrégation des réponses par heure et par service_name :

Exemple de graphique illustrant une répartition par nom de service.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Activez l'API Observability.

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin), qui contient l'autorisation serviceusage.services.enable. Découvrez comment attribuer des rôles.

    Activer l'API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Activez l'API Observability.

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin), qui contient l'autorisation serviceusage.services.enable. Découvrez comment attribuer des rôles.

    Activer l'API

  8. Pour obtenir les autorisations nécessaires pour charger la page Log Analytics, écrire et exécuter des requêtes sur vos données de journaux et de trace, et enregistrer des graphiques dans des tableaux de bord personnalisés, demandez à votre administrateur de vous accorder les rôles IAM suivants :

    • Éditeur Monitoring (roles/monitoring.editor) sur votre projet
    • Accesseur de vue d'observabilité (roles/observability.viewAccessor) sur les vues d'observabilité que vous souhaitez interroger. Ce rôle est compatible avec les conditions IAM, qui vous permettent de limiter l'accès à une vue spécifique. Si vous n'associez pas de condition à l'attribution de rôle, le compte principal peut accéder à toutes les vues d'observabilité. Les vues d'observabilité sont disponibles en version Preview publique.
    • Lecteur de journaux/Logging (roles/logging.viewer) sur votre projet
    • Accesseur de vues de journaux (roles/logging.viewAccessor) sur le projet qui stocke les vues de journaux que vous souhaitez interroger.

    Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

    Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Sélectionnez les données à représenter sous forme de graphique.

Pour configurer les données à afficher dans un graphique, créez une requête à l'aide de SQL. Lorsque vous sélectionnez l'onglet Graphique, un graphique affiche les résultats de votre requête. Une fois la requête exécutée et le graphique généré, vous pouvez personnaliser la configuration du graphique en modifiant son type et en sélectionnant les colonnes pour afficher différentes données.

Pour afficher les résultats de votre requête sous forme de graphique, exécutez une requête en procédant comme suit :

  1. Dans la console Google Cloud , accédez à la page Analyse de journaux :

    Accéder à l'Analyse de journaux

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

  2. Dans le volet Requête, saisissez une requête, puis cliquez sur Exécuter.

  3. Une fois la requête terminée, dans l'onglet Résultats, sélectionnez la façon dont vous souhaitez afficher les résultats de votre requête :

    • Tableau : format tabulaire uniquement.

    • Graphique : format graphique uniquement

    • Les deux : format graphique et tabulaire.

      Après avoir sélectionné la façon dont vous souhaitez afficher les résultats de votre requête, vous pouvez configurer les champs de la visualisation sélectionnée, puis enregistrer la requête et les résultats dans un tableau de bord personnalisé. Le format enregistré est tabulaire lorsque vous avez sélectionné l'option Tableau. Sinon, le format est un graphique.

      Pour les graphiques, les options de visualisation vous permettent de sélectionner le type de graphique, ainsi que les lignes et les colonnes à représenter. Pour en savoir plus sur la configuration des graphiques, consultez Personnaliser la configuration des graphiques.

Personnaliser la configuration du graphique

Vous pouvez personnaliser la configuration du graphique en modifiant son type, en sélectionnant la dimension et la mesure à représenter, et en appliquant une répartition. La dimension permet de regrouper ou de catégoriser les lignes. Il s'agit de la valeur de l'axe X. La mesure, ou la valeur de l'axe Y, est une série de données représentée sur l'axe Y.

Modifier le type de graphique

Vous pouvez choisir parmi les types de graphiques suivants, en fonction du type de lignes et de colonnes que vous avez sélectionné comme dimension et mesure, et de la façon dont vous souhaitez visualiser ces données.

  • Graphique à barres (par défaut) : les graphiques à barres représentent les données sur deux axes. Si votre graphique utilise une catégorie ou une chaîne comme dimension, vous pouvez définir la configuration du graphique à barres sur "horizontal" ou "vertical", où les axes de dimension et de mesure sont inversés.

  • Graphique en courbes : il permet d'afficher l'évolution des données au fil du temps. Lorsque vous utilisez un graphique en courbes, chaque série temporelle est affichée sous forme de ligne correspondant aux mesures que vous avez sélectionnées.

    Si votre axe X est basé sur le temps, chaque point de données est placé au début d'un intervalle de temps. Chaque point de données est relié par une interpolation linéaire.

  • Graphique en aires empilées : Un graphique en aires est basé sur un graphique en courbes, et la zone située sous chaque courbe est ombrée. Dans les graphiques en aires, les séries de données sont empilées. Par exemple, si vous avez deux séries identiques, elles se chevauchent dans un graphique en courbes, mais la zone ombrée est empilée dans un graphique en aires.

  • Graphique à secteurs ou en anneau : un graphique à secteurs montre comment les catégories d'un ensemble de données sont liées à l'ensemble de données, en utilisant un cercle pour représenter l'ensemble de données et des secteurs dans le cercle pour représenter les catégories de l'ensemble de données. La taille d'un segment indique la part (souvent en pourcentage) de la catégorie dans l'ensemble.

  • Table : une table affiche une ligne pour chaque ligne du résultat de la requête. Les colonnes du tableau sont définies par la clause SELECT. Si vous prévoyez d'afficher des données sous forme de tableau dans un tableau de bord, utilisez une clause LIMIT pour limiter le nombre de lignes dans le résultat à quelques centaines.

  • Jauge ou tableau de données : les jauges et les tableaux de données vous fournissent la valeur la plus récente, ainsi qu'une indication verte, orange ou rouge selon la façon dont cette valeur se compare à un ensemble de seuils. Contrairement aux jauges, qui n'affichent que des informations sur la valeur la plus récente, les tableaux de données peuvent également inclure des informations sur les valeurs passées.

    Les jauges et les tableaux de données ne peuvent afficher le résultat de la requête que si celui-ci contient au moins une ligne, et que cette ligne contient une colonne avec un code temporel et une colonne avec des données numériques. Le résultat de la requête peut contenir plusieurs lignes et plus de deux colonnes.

    Si vous souhaitez effectuer l'agrégation basée sur le temps dans votre requête, procédez comme suit :

    • Configurez votre requête pour agréger les données sur un intervalle de temps, pour trier les résultats par ordre décroissant des codes temporels et pour limiter le nombre de lignes dans les résultats. Vous pouvez utiliser la clause LIMIT ou le sélecteur de période pour limiter le nombre de lignes dans le résultat de la requête.

      Données des journaux

      Par exemple, la requête suivante interroge une vue de journaux, agrège les données par heure, applique une limite et trie les résultats :

      SELECT TIMESTAMP_TRUNC(timestamp, HOUR) AS hour, severity, COUNT(*) AS count
      FROM `PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
      WHERE severity IS NOT NULL AND severity = "DEFAULT"
      GROUP BY hour,severity
      ORDER BY hour DESC
      LIMIT 10
      

      Voici la signification des champs de l'expression précédente :

      • PROJECT_ID : identifiant du projet.
      • LOCATION : emplacement de la vue des journaux ou de la vue des données analytiques.
      • 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.

      Données de trace

      Par exemple, les requêtes suivantes interrogent vos données de trace, les agrègent par intervalles d'une heure, appliquent une limite et trient les résultats :

      SELECT TIMESTAMP_TRUNC(start_time, HOUR) AS hour,
         COALESCE(
            JSON_VALUE(resource.attributes, '$."service.name"'),
            JSON_VALUE(attributes, '$."service.name"'),
            JSON_VALUE(attributes, '$."g.co/gae/app/module"')) AS service_name,
         status.code AS status,
         COUNT(*) AS count
      FROM `PROJECT_ID.LOCATION._Trace.Spans._AllSpans`
      GROUP BY hour, service_name, status
      ORDER BY hour DESC
      LIMIT 1000
      

      Voici la signification des champs de l'expression précédente :

      La requête précédente a été utilisée pour générer la figure affichée au début de ce document. Cette figure montre également la configuration du graphique.

    • Définissez la dimension pour qu'elle corresponde à la colonne qui indique l'unité de temps. Par exemple, si votre requête agrège les données par heure et crée une colonne nommée hour, définissez le menu Dimension sur hour.

    • Sélectionnez Désactiver l'intervalle, car votre requête spécifie déjà l'intervalle d'agrégation. Dans l'exemple, cet intervalle est d'une heure.

    • Définissez la mesure sur la colonne numérique et la fonction sur aucune.

    Si vous souhaitez vous appuyer sur l'analyse des journaux pour effectuer l'agrégation temporelle, procédez comme suit :

    • Configurez le sélecteur de période, qui affecte le nombre de lignes dans le résultat de la requête.
    • Définissez la dimension pour qu'elle corresponde à la colonne qui indique l'unité de temps. Par exemple, vous pouvez définir ce menu sur timestamp.
    • Définissez le menu Intervalle sur un intervalle d'agrégation spécifique. Par exemple, définissez la valeur de ce champ sur 1 hour. Ne sélectionnez pas Intervalle automatique.
    • Définissez la mesure sur la colonne numérique et sélectionnez une fonction telle que sum.

Modifier la dimension et la mesure

Vous pouvez choisir les lignes et les colonnes à représenter dans le graphique en sélectionnant les champs de dimension et de mesure.

  • Dimension

    La dimension doit être une colonne de type code temporel, numérique ou chaîne. Par défaut, la dimension est définie sur la première colonne basée sur un code temporel dans le schéma. Si aucun code temporel n'est présent dans la requête, la première colonne de chaîne est sélectionnée comme dimension. Vous pouvez également personnaliser la dimension dans le panneau Affichage du graphique. Lorsqu'une colonne d'horodatage est sélectionnée comme dimension, le graphique montre l'évolution des données au fil du temps. Lorsqu'une colonne de chaîne est sélectionnée comme dimension pour un graphique à barres, vous pouvez trier les données par ordre croissant ou décroissant, ce qui trie la dimension par ordre lexical. Vous pouvez également conserver l'ordre de tri par défaut, qui trie la dimension en fonction des valeurs de la mesure correspondante par ordre décroissant.

    Par défaut, l'intervalle des codes temporels est défini automatiquement, mais vous pouvez également sélectionner un intervalle personnalisé. Les valeurs des intervalles automatiques changent en fonction du sélecteur de période pour maintenir des groupes de taille similaire.

    Vous pouvez également désactiver l'intervalle, ce qui vous permet de spécifier vos propres agrégations et périodes dans la requête pour une analyse plus complexe. Si vous désactivez l'intervalle, la fonction d'agrégation des mesures est définie sur none. Seules les mesures numériques sont autorisées lorsque l'intervalle de dimension est désactivé.

  • Mesure

    Vous pouvez sélectionner plusieurs mesures dans le panneau Affichage du graphique. Lorsque vous sélectionnez une mesure, vous devez également sélectionner la fonction d'agrégation à appliquer à ses valeurs groupées, comme count, sum, average et percentile-99. Par exemple, count-distinct renvoie le nombre de valeurs uniques dans une colonne donnée.

    Si vous cochez la case Désactiver l'intervalle pour la dimension, l'option de fonction d'agrégation none est disponible. Si la dimension est une valeur de chaîne, la case à cocher Désactiver l'intervalle ne s'affiche pas. Toutefois, si vous définissez les fonctions d'agrégation d'une mesure sur none, l'intervalle est également désactivé.

Ajouter une répartition

Pour fractionner une série de données en plusieurs séries de données en fonction d'une autre colonne, ajoutez une répartition.

Lorsque vous sélectionnez une répartition, choisissez des colonnes contenant un petit nombre de libellés courts et pertinents, comme region_name, plutôt que des champs pouvant contenir un grand nombre de chaînes ou de chaînes longues, comme textPayload.

Données des journaux

Par exemple, consultez la configuration de graphique suivante, où le champ Dimension est défini sur type, le champ Mesure est défini sur Nombre de lignes et le champ Répartition est défini sur severity :

Exemple de graphique contenant une répartition par gravité.

Dans la capture d'écran précédente, vous voyez une série de données empilées, où le type de ressource k8s_container est divisé en différents types severity. Cela vous permet d'identifier le nombre de journaux de chaque type de gravité générés par une ressource donnée.

Données de trace

Par exemple, le graphique suivant affiche le nombre de portées créées par chaque service, avec les données ventilées par nom de portée :

Exemple de tableau de bord montrant l'utilisation de vos buckets Cloud Storage.

Enregistrer un graphique dans un tableau de bord personnalisé

Une fois qu'un graphique est généré à partir de votre requête, vous pouvez l'enregistrer dans un tableau de bord personnalisé. Les tableaux de bord personnalisés vous permettent d'afficher et d'organiser les informations qui vous sont utiles à l'aide de différents types de widgets. Ces tableaux de bord vous permettent également de définir des variables, qui sont des filtres au niveau du tableau de bord qui ne s'appliquent qu'à des widgets spécifiques. Pour appliquer une variable à un widget, vous devez modifier la requête. Pour en savoir plus, consultez Appliquer une variable à un widget.

Un tableau de bord affiche un message d'avertissement pour un widget contenant une requête SQL lorsque la requête s'exécute sur le moteur BigQuery et que les ressources interrogées ne se trouvent pas dans la même limite de propriété. Les limites de propriété sont déterminées par plusieurs facteurs, dont la hiérarchie des ressources utilisées par la requête. Pour éviter ces avertissements, configurez un périmètre de service.

Pour enregistrer votre graphique dans un tableau de bord, procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Analyse de journaux :

    Accéder à l'Analyse de journaux

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

  2. Exécutez une requête pour générer un graphique, puis cliquez sur Enregistrer le graphique dans l'onglet Graphique.

  3. Dans la boîte de dialogue Enregistrer dans le tableau de bord, saisissez un titre pour votre graphique et sélectionnez le tableau de bord dans lequel vous souhaitez l'enregistrer.

  4. Facultatif : Pour afficher le tableau de bord personnalisé, cliquez sur Afficher le tableau de bord dans le message pop-up.

Pour afficher la liste des tableaux de bord personnalisés contenant des graphiques générés par des requêtes SQL, accédez au bouton Enregistrer le graphique, puis cliquez sur Menu .

Modifier un graphique enregistré dans un tableau de bord personnalisé

Vous pouvez modifier un graphique après l'avoir enregistré dans un tableau de bord. Pour en savoir plus, consultez Modifier la configuration d'un widget. Dans la boîte de dialogue Configurer le widget, vous pouvez effectuer les opérations suivantes :

  • Modifier les données que vous interrogez
  • Modifiez la requête utilisée pour générer un graphique.
  • Personnalisez la configuration du graphique pour visualiser différentes données.

Limites

  • Si votre projet Google Cloud se trouve dans un dossier qui utilise Assured Workloads, les graphiques que vous générez ne peuvent pas être affichés dans un tableau de bord personnalisé.

  • Les filtres au niveau du tableau de bord ne s'appliquent pas aux graphiques générés à partir d'une requête SQL.

  • Les colonnes sélectionnées doivent comporter au moins une ligne avec une valeur non nulle.

  • Si vous enregistrez une requête et personnalisez la configuration du graphique, la configuration personnalisée du graphique n'est pas enregistrée.

  • Si votre requête contient déjà des agrégations, le graphique généré peut être différent en raison de l'agrégation supplémentaire appliquée automatiquement par l'analyse de journaux.

  • Les chemins JSON doivent être convertis en chaînes ou en nombres pour pouvoir être représentés sous forme de graphique.

Étapes suivantes