Enregistrer et partager des requêtes SQL

L'Analyse de l'observabilité vous permet d'enregistrer et de partager des requêtes SQL afin de pouvoir réexécuter des investigations Cloud Logging fréquentes et de collaborer avec les membres de l'équipe sur votre projet. Vous pouvez garder les requêtes enregistrées privées pour votre propre usage ou les partager avec d'autres membres du projet.

Si vous n'avez pas écrit de requêtes dans l'Analyse de l'observabilité, consultez d'abord Interroger et analyser des journaux. Pour savoir comment représenter graphiquement les résultats de vos requêtes et enregistrer ces graphiques dans un tableau de bord personnalisé, consultez Représenter graphiquement les résultats de requêtes SQL.

Différences entre les requêtes enregistrées et les vues d'analyse

Une requête enregistrée est une requête que vous exécutez à l'aide de la page Analyse de l'observabilité, puis que vous enregistrez en tant que requête. L'action d'enregistrement vous permet de réexécuter cette requête quand vous le souhaitez. Lorsque vous enregistrez la requête, vous pouvez la rendre privée ou la rendre visible par les autres utilisateurs disposant des autorisations nécessaires pour utiliser l'analyse de l'observabilité. Vous ne pouvez pas écrire de requête SQL dans laquelle la clause FROM spécifie une requête enregistrée.

Une vue d'analyse contient une requête que vous pouvez réexécuter à votre convenance. Pour créer une vue d'analyse, vous devez écrire une requête SQL sur une vue de journaux, puis enregistrer le résultat sous forme de vue. Contrairement aux requêtes enregistrées, vous ne pouvez pas rendre une vue d'analyse privée pour vous-même. Vous pouvez interroger une vue d'analyse. Cette fonctionnalité vous permet de transformer vos données de journal du format LogEntry vers un autre format qui vous convient mieux. Ensuite, au lieu d'écrire vos requêtes sur une vue de journal, vous interrogez la vue d'analyse.

Vous pouvez enregistrer des requêtes qui interrogent une vue de journaux ou une vue d'analyse.

Avant de commencer

Cette section décrit les étapes à suivre avant de pouvoir utiliser l'analyse de l'observabilité.

Configurer des buckets de journaux

Assurez-vous que vos buckets de journaux ont été mis à niveau pour utiliser l'Analyse de l'observabilité :

  1. Dans la console Google Cloud , 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 contenant une vue de journaux que vous souhaitez interroger, assurez-vous que la colonne Analyse de l'observabilité disponible affiche Ouvrir. Si l'option Mettre à niveau s'affiche, cliquez dessus et suivez les instructions de la boîte de dialogue.

Configurer les rôles et les autorisations IAM

Cette section décrit les rôles ou les autorisations IAM requis pour utiliser l'analyse de l'observabilité :

  • Pour obtenir les autorisations nécessaires pour utiliser l'analyse de l'observabilité et interroger les vues de journaux, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :

    Vous pouvez limiter l'accès d'un compte principal à 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.

    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 de l'analyse de l'observabilité (roles/observability.analyticsUser) sur votre projet.

Sélectionnez l'interface que vous prévoyez d'utiliser

Console

Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud , vous n'avez pas besoin de configurer l'authentification.

gcloud

Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée. Après vous être connecté, initialisez la Google Cloud CLI en exécutant la commande suivante :

gcloud init

REST

Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.

    Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée.

Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud .

Enregistrer une requête

Toutes les requêtes que vous exécutez sont automatiquement enregistrées pendant 30 jours et sont accessibles en sélectionnant l'onglet Récentes sur la page Analyse de l'observabilité. Vous pouvez rechercher, afficher, exécuter et partager les requêtes répertoriées dans l'onglet Récentes.

Pour réutiliser une requête, ajouter des descriptions personnalisées ou la partager avec des collaborateurs, enregistrez-la. Vous pouvez rechercher et trier vos requêtes enregistrées par nom, description et libellé de visibilité. Vous pouvez également modifier et supprimer ces requêtes. Les requêtes que vous enregistrez sont conservées jusqu'à ce que vous les supprimiez.

Vous pouvez enregistrer 10 000 requêtes par projet Google Cloud .

Console

Pour enregistrer une requête, procédez comme suit :

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

    Accéder à Analyse de l'observabilité

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

  2. Renseignez le volet Requête avec une requête.

    Vous pouvez remplir le volet Requête en saisissant une nouvelle requête, en sélectionnant une requête dans l'onglet Récentes ou en sélectionnant une requête dans l'onglet Enregistrées.

    Votre requête peut inclure n'importe quelle vue valide, plusieurs vues et des vues d'analyse.

    Lorsque la requête dans le volet Requête est valide, le bouton Enregistrer  est activé.

  3. Cliquez sur Enregistrer, sélectionnez Enregistrer la requête, puis renseignez les champs Nom et Description. Les valeurs que vous définissez pour ces champs s'affichent dans l'onglet Enregistré.

  4. Facultatif : Pour permettre à toutes les personnes ayant accès à la page Analyse de l'observabilité du projet Google Cloud d'afficher et d'exécuter votre requête enregistrée, activez l'option Partager avec le projet.

    Par défaut, cette option est désactivée et la visibilité est limitée à vous.

  5. Cliquez sur Enregistrer la requête.

  6. Facultatif : Pour afficher, trier et exécuter les requêtes enregistrées qui sont visibles par vous, sélectionnez l'onglet Enregistrées.

    Vous pouvez trier et filtrer vos requêtes enregistrées par nom, description et étiquette de visibilité. Vous pouvez également filtrer par contenu de la requête.

Vous pouvez modifier et supprimer les requêtes que vous avez créées à l'aide des options de l'onglet Enregistré :

  • Pour modifier une requête, cliquez sur Plus d'options, puis sélectionnez Modifier. Vous pouvez modifier les valeurs des champs Nom et Description, mais pas la requête elle-même.

  • Pour supprimer une requête enregistrée, cliquez sur Autres options, puis sélectionnez Supprimer.

gcloud

Pour créer et enregistrer une requête, procédez comme suit :

  1. Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

    • DISPLAY_NAME : nom à afficher de la requête enregistrée.
    • LOCATION : emplacement de la requête enregistrée.
    • VISIBILITY : définissez cette valeur sur private ou shared.
    • SQL_QUERY : requête SQL. Si des accents graves simples (`) encapsulent le chemin d'accès ou les champs du chemin d'accès, vous devez échapper ces accents graves :
          "SELECT * FROM \`PROJECT_ID.LOCATION.my-log-bucket._AllLogs\`"
          

      ou

          "SELECT * FROM \`PROJECT_ID.LOCATION._Trace.Spans._AllSpans\`"
          

      Les accents graves (`) sont obligatoires lorsqu'un élément de chemin d'accès contient un point (.).

    • ID : ID de la requête enregistrée. Cet ID est une entrée obligatoire pour les commandes qui décrivent, mettent à jour ou suppriment une requête enregistrée. Si vous ne fournissez pas l'ID lors de la création d'une requête enregistrée, le système génère un ID numérique.
    • DESCRIPTION : description textuelle de la requête. Facultatif.
    • PROJECT_ID : identifiant du projet.

    Exécutez la commande gcloud logging saved-queries create  :

    Linux, macOS ou Cloud Shell

    gcloud logging saved-queries create --display-name=DISPLAY_NAME \
     --location=LOCATION --visibility=VISIBILITY --sql-query-text=SQL_QUERY \
     --id=ID --description=DESCRIPTION --project=PROJECT_ID

    Windows (PowerShell)

    gcloud logging saved-queries create --display-name=DISPLAY_NAME `
     --location=LOCATION --visibility=VISIBILITY --sql-query-text=SQL_QUERY `
     --id=ID --description=DESCRIPTION --project=PROJECT_ID

    Windows (cmd.exe)

    gcloud logging saved-queries create --display-name=DISPLAY_NAME ^
     --location=LOCATION --visibility=VISIBILITY --sql-query-text=SQL_QUERY ^
     --id=ID --description=DESCRIPTION --project=PROJECT_ID

    Voici un exemple de réponse lorsque l'ID fourni dans la commande était my-saved-query :

    Created saved query [projects/PROJECT_ID/locations/LOCATION/savedQueries/my-saved-query].
    

    La réponse à la commande create liste le nom complet de la requête, qui inclut l'ID de la requête. L'ID de la requête, qui est my-saved-query dans cet exemple, est une entrée obligatoire pour les commandes de la Google Cloud CLI qui décrivent, suppriment ou mettent à jour une requête enregistrée.

  2. Pour inspecter la requête enregistrée, exécutez la commande suivante :

     gcloud logging saved-queries list --location=- --project=PROJECT_ID
    

    Dans l'expression précédente, la valeur de l'emplacement est un trait d'union (-), qui sert de caractère générique. Vous pouvez également indiquer un emplacement spécifique.

Il existe des commandes Google Cloud CLI pour supprimer, lister, décrire et mettre à jour les requêtes enregistrées. Pour en savoir plus, consultez la présentation de gcloud logging saved-queries.

REST

Vous pouvez enregistrer une requête à l'aide de l'API Cloud Logging. Pour enregistrer une requête, utilisez la méthode savedQueries.create.

Pour exécuter cette méthode, procédez comme suit :

  1. Sélectionnez savedQueries.create.
  2. Sur la page de référence, utilisez APIs Explorer pour émettre une commande. Vous devez spécifier le champ opsAnalyticsQuery.

L'exemple suivant illustre un exemple de corps de requête contenant une instance de SavedQuery :

{
   "parent": "projects/my-project/locations/global"
   "saved_query":
   {
      "ops_analytics_query":
      {
         "sql_query_text" :
            "SELECT
            timestamp, log_name, severity, json_payload, resource, labels
            FROM
            `VIEW`
            WHERE
            timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)
            ORDER BY timestamp ASC
            LIMIT 100"
      }
   "visibility": "PRIVATE"
   }
}

Partager une requête

Vous pouvez partager une requête enregistrée avec toutes les personnes ayant accès à votre projetGoogle Cloud . Toutefois, les rôles IAM du compte principal déterminent si la requête peut être exécutée et les données qu'elle renvoie.

Console

Lorsque vous résolvez un problème ou que vous constatez des résultats anormaux, vous pouvez partager une requête et ses résultats avec un collègue. Lorsque vous affichez les résultats d'une requête sur la page Analyse de l'observabilité, vous pouvez copier une URL qui, lorsqu'elle est ouverte, affiche la requête que vous avez exécutée et ses résultats.

Pour partager une requête et des résultats avec un collègue, procédez comme suit :

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

    Accéder à Analyse de l'observabilité

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

  2. Saisissez une requête dans le volet Requête, puis cliquez sur Exécuter la requête.

    Vous pouvez remplir le volet Requête en saisissant une nouvelle requête, en sélectionnant une requête dans l'onglet Récentes ou en sélectionnant une requête dans l'onglet Enregistrées.

  3. Cliquez sur Partager le lien.

  4. Envoyez le lien à votre coéquipier.

    Lorsque votre collègue ouvre le lien, la page Analyse de l'observabilité s'ouvre et affiche la requête, mais ne l'exécute pas. Votre collègue doit exécuter la requête manuellement.

    La page Analyse de l'observabilité affiche une boîte de dialogue d'avertissement 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 que l'URL s'ouvre correctement, le rôle IAM de votre collègue sur le projet Google Cloud doit inclure les autorisations requises pour afficher la page Analyse de l'observabilité.

gcloud

Lorsque vous souhaitez créer une requête enregistrée pouvant être exécutée par d'autres utilisateurs, définissez la valeur du champ visibility sur shared :

--visibility=shared

Pour modifier la visibilité d'une requête enregistrée existante, utilisez la commande update. Pour en savoir plus sur les commandes disponibles, consultez la présentation de gcloud logging saved-queries.

REST

Vous pouvez utiliser l'API Logging pour créer une requête partagée à l'aide de la méthode savedQueries.create et en spécifiant la valeur SHARED dans le champ visibility. Pour en savoir plus, consultez la page de référence sur savedQueries.create.

Afficher et exécuter des requêtes récentes ou enregistrées

Pour afficher ou réexécuter une requête, sélectionnez l'onglet Récentes sur la page Analyse de l'observabilité, puis recherchez la requête :

  • Pour exécuter la requête, cliquez sur Exécuter.
  • Pour afficher la requête, utilisez les options du menu Autres options.

Pour afficher, modifier ou exécuter une requête enregistrée, sélectionnez l'onglet Enregistrées sur la page Analyse de l'observabilité, puis recherchez la requête :

  • Pour exécuter la requête, cliquez sur Exécuter.
  • Pour modifier, afficher ou supprimer la requête, utilisez les options du menu Autres options.

Étapes suivantes