Configurer la journalisation de Gemini Code Assist Standard et Enterprise

Ce document explique comment configurer la journalisation Gemini Code Assist Standard et Enterprise pour un projet à l'aide de la console des API Google ou d'une API.

Limites

L'enregistrement des données de journal Gemini Standard et Enterprise dans Google Cloud est limité aux interactions des utilisateurs avec Gemini Code Assist dans l'IDE.

De plus, Gemini pour Google Cloud ne consigne pas les données pour Gemini Code Assist Standard et Enterprise si la télémétrie VS Code est désactivée par l'utilisateur.

Avant de commencer

Assurez-vous que votre projet Google Cloud est associé à un compte de facturation.

(Facultatif) Accorder des autorisations IAM

Pour configurer la journalisation Gemini Code Assist Standard et Enterprise, vous devez disposer d'autorisations Identity and Access Management spécifiques, qui sont détaillées dans les sections suivantes. Assurez-vous que ces autorisations sont ajoutées aux rôles IAM personnalisés.

Vous pouvez également accorder le rôle IAM prédéfini Gemini pour Google Cloud : administrateur des paramètres (roles/cloudaicompanion.settingsAdmin), qui inclut toutes les autorisations requises pour utiliser tous les paramètres d'administrateur Gemini pour Google Cloud.

(Facultatif) Lier des autorisations à des paramètres et des cibles

Si vous configurez les paramètres d'administrateur Gemini Code Assist Standard et Enterprise dans la console des API Google, vous pouvez ignorer cette section.

Pour configurer les paramètres d'administrateur Gemini Code Assist Standard et Enterprise avec l'API Gemini pour Google Cloud, vous devez d'abord créer des paramètres, puis des liaisons pour "lier" ces paramètres et cibles (telles que l'instance, le sujet ou les projets) à des produits spécifiques (tels que Gemini Cloud Assist ou Gemini Code Assist).

Toutes les autorisations de création et de modification des paramètres sont au niveau du projet.

Configurer la journalisation de Gemini Code Assist

Les sections suivantes décrivent les étapes à suivre pour activer la collecte et le stockage de l'activité Gemini Code Assist Standard et Enterprise dans Cloud Logging, y compris:

  • Requêtes et journaux de réponse de Gemini Code Assist Standard et Enterprise, tels que les entrées utilisateur, les informations contextuelles et les réponses.

  • Journaux de métadonnées Gemini Code Assist Standard et Enterprise, tels que les métadonnées de télémétrie et les lignes de code acceptées par l'utilisateur.

Pour en savoir plus sur les deux types de journaux, consultez la section Afficher les journaux Gemini.

Activer la journalisation pour Gemini Code Assist

Sélectionnez l'une des options suivantes :

Console

  1. Assurez-vous d'avoir activé l'API Cloud Logging dans le projet.

  2. Assurez-vous de disposer des autorisations Identity and Access Management suivantes sur le projet propriétaire de l'abonnement:

    • loggingSettings.create
    • loggingSettings.list
    • loggingSettings.update
    • loggingSettings.get
    • cloudaicompanion.instances.loggingSettings.use
    • cloudaicompanion.instances.queryEffectiveSetting
    • settingBindings.loggingSettingsList
    • settingBindings.loggingSettingsGet
    • settingBindings.loggingSettingsUpdate
    • settingBindings.loggingSettingsCreate
    • cloudaicompanion.settingBindings.loggingSettingsUse
    • cloudaicompanion.instances.queryEffectiveSettingBindings
  3. Dans la console API, accédez à la page Administration pour Gemini.

    Accéder à Gemini pour Google Cloud

    La page Gemini pour Google Cloud s'affiche.

  4. Cliquez sur Paramètres dans le menu de navigation de gauche.

    La page Paramètres se charge.

  5. (Facultatif) Cliquez sur Journalisation des métadonnées Code Assist pour enregistrer les métadonnées générées par les utilisateurs de Gemini Code Assist Standard et Enterprise dans le projet.

  6. (Facultatif) Cliquez sur Journalisation des requêtes et réponses de Code Assist pour enregistrer les requêtes et réponses générées par les utilisateurs de Gemini Code Assist Standard et Enterprise dans le projet.

  7. Cliquez sur Enregistrer les modifications.

API

Pour activer la journalisation pour Gemini Code Assist Standard et Enterprise, utilisez la méthode loggingSetting.

  1. Assurez-vous d'avoir activé l'API Cloud Logging dans le projet.

  2. Assurez-vous de disposer des autorisations Identity and Access Management suivantes sur le projet propriétaire de l'abonnement:

    • loggingSettings.create
    • loggingSettings.list
    • loggingSettings.update
    • loggingSettings.get
    • cloudaicompanion.instances.loggingSettings.use
    • cloudaicompanion.instances.queryEffectiveSetting
    • settingBindings.loggingSettingsList
    • settingBindings.loggingSettingsGet
    • settingBindings.loggingSettingsUpdate
    • settingBindings.loggingSettingsCreate
    • cloudaicompanion.settingBindings.loggingSettingsUse
    • cloudaicompanion.instances.queryEffectiveSettingBindings
  3. Créez le paramètre et une valeur spécifique à ce paramètre:

    1. Obtenez le jeton:

      TOKEN=$(gcloud auth print-access-token)
      
  4. Activez les journaux de métadonnées Gemini Code Assist Standard et Enterprise.

    1. Exécutez la commande suivante pour créer le paramètre:

      curl -X POST \
        -H "Authorization: Bearer $TOKEN" \
        -H 'Content-Type: application/json' \
        -d '{
          "log_metadata": true,
          } ' \
        "https://cloudaicompanion.googleapis.com/v1/projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings?logging_setting_id=SETTING_ID"
      

      Remplacez les éléments suivants :

      • CONTAINER_PROJECT_NAME: saisissez l'ID du projet parent.
      • SETTING_ID: saisissez un nom de paramètre unique, par exemple gcalm1 pour Gemini Code Assist log metadata.

      Si la commande aboutit, elle renvoie un corps de réponse qui indique que log_metadata est défini sur true:

      {
        "name": "projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings/SETTING_ID",
        "createTime": "2025-01-23T15:22:49.717166932Z",
        "updateTime": "2025-01-23T15:22:49.717166932Z",
        "log_metadata": true
      }
      
    2. Exécutez la commande suivante pour créer la liaison de paramètres des journaux de métadonnées Gemini Code Assist Standard et Enterprise:

      curl -X POST \
        -H "Authorization: Bearer $TOKEN" \
        -H 'Content-Type: application/json' \
        -d '{
          "target": "projects/TARGET_PROJECT_NAME"
          }' \
        "https://cloudaicompanion.googleapis.com/v1/projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings/SETTING_ID/settingBindings?setting_binding_id=BINDING_ID"
      

    Remplacez les éléments suivants :

    • TARGET_PROJECT_NAME: saisissez le projet cible auquel le paramètre doit être appliqué.
    • SETTING_ID: utilisez le même SETTING_ID que lorsque vous avez créé le paramètre, mais ajoutez-y b1. Par exemple, utilisez gcalmb1 pour Gemini Code Assist log metadata.

    Si la commande réussit, elle renvoie les métadonnées de l'opération au format suivant:

    {
      "name": "projects/<var>CONTAINER_PROJECT_NAME</var>/locations/global/operations/operation-1737646069712-62c6140bb04bb-49261230-43701daf",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.cloudaicompanion.v1.OperationMetadata",
        "createTime": "2025-01-23T15:27:50.076075570Z",
        "target": "projects/<var>TARGET_PROJECT_NAME</var>/locations/global/loggingSettings/<var>SETTING_ID</var>/settingBindings/<var>BINDING_ID</var>",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    
  5. Activez les journaux utilisateur de Gemini Code Assist Standard et Enterprise.

    1. Exécutez la commande suivante pour créer le paramètre:

      curl -X POST \
        -H "Authorization: Bearer $TOKEN" \
        -H 'Content-Type: application/json' \
        -d '{
          "log_prompts_and_responses": true,
          } ' \
        "https://cloudaicompanion.googleapis.com/v1/projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings?logging_setting_id=SETTING_ID"
      

      Remplacez les éléments suivants :

      • CONTAINER_PROJECT_NAME: saisissez l'ID du projet parent.
      • SETTING_ID: saisissez un nom de paramètre unique, par exemple gcapar1 pour Gemini Code Assist prompts and responses.

      Si la commande aboutit, elle renvoie un corps de réponse qui indique que log_prompts_and_responses est défini sur true:

      {
        "name": "projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings/SETTING_ID",
        "createTime": "2025-01-23T15:22:49.717166932Z",
        "updateTime": "2025-01-23T15:22:49.717166932Z",
        "log_prompts_and_responses": true
      }
      
    2. Exécutez la commande suivante pour créer la liaison de paramètres des journaux utilisateur Gemini Code Assist Standard et Enterprise:

      curl \
        -H "Authorization: Bearer $TOKEN" \
        -H 'Content-Type: application/json' \
        -d '{
          "target": "projects/TARGET_PROJECT_NAME"
          }' \
        "https://cloudaicompanion.googleapis.com/v1/projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings/SETTING_ID/settingBindings?setting_binding_id=BINDING_ID"
      

    Remplacez les éléments suivants :

    • TARGET_PROJECT_NAME: saisissez le projet cible auquel le paramètre doit être appliqué.
    • SETTING_ID: utilisez le même SETTING_ID que lorsque vous avez créé le paramètre, mais ajoutez-y b1. Par exemple, utilisez gcaparb1 pour Gemini Code Assist prompts and responses.

    Si la commande réussit, elle renvoie les métadonnées de l'opération au format suivant:

    {
      "name": "projects/<var>CONTAINER_PROJECT_NAME</var>/locations/global/operations/operation-1737646069712-62c6140bb04bb-49261230-43701daf",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.cloudaicompanion.v1.OperationMetadata",
        "createTime": "2025-01-23T15:27:50.076075570Z",
        "target": "projects/<var>TARGET_PROJECT_NAME</var>/locations/global/loggingSettings/<var>SETTING_ID</var>/settingBindings/<var>BINDING_ID</var>",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    

Désactiver la journalisation pour Gemini Code Assist

Sélectionnez l'une des options suivantes :

Console

  1. Assurez-vous de disposer des autorisations Identity and Access Management suivantes sur le projet propriétaire de l'abonnement:

    • loggingSettings.delete
    • loggingSettings.list
    • loggingSettings.update
    • loggingSettings.get
    • cloudaicompanion.instances.loggingSettings.use
    • cloudaicompanion.instances.queryEffectiveSetting
    • settingBindings.loggingSettingsList
    • settingBindings.loggingSettingsGet
    • settingBindings.loggingSettingsUpdate
    • settingBindings.loggingSettingsDelete
    • cloudaicompanion.settingBindings.loggingSettingsUse
    • cloudaicompanion.instances.queryEffectiveSettingBindings
  2. Dans la console API, accédez à la page Administration pour Gemini.

    Accéder à Gemini pour Google Cloud

    La page Gemini pour Google Cloud s'affiche.

  3. Cliquez sur Paramètres dans le menu de navigation de gauche.

    La page Paramètres se charge.

  4. Cliquez sur Journalisation des métadonnées Code Assist pour désactiver l'enregistrement des métadonnées liées à l'utilisation de Gemini Code Assist Standard et Enterprise dans le projet.

  5. Cliquez sur Enregistrer les modifications.

API

Pour activer la journalisation pour Gemini Code Assist Standard et Enterprise, utilisez la méthode loggingSetting.

  1. Assurez-vous de disposer des autorisations Identity and Access Management suivantes sur le projet propriétaire de l'abonnement:

    • loggingSettings.create
    • loggingSettings.list
    • loggingSettings.update
    • loggingSettings.get
    • cloudaicompanion.instances.loggingSettings.use
    • cloudaicompanion.instances.queryEffectiveSetting
    • settingBindings.loggingSettingsList
    • settingBindings.loggingSettingsGet
    • settingBindings.loggingSettingsUpdate
    • settingBindings.loggingSettingsCreate
    • serviceusage.services.enable
  2. Créez le paramètre et une valeur spécifique à ce paramètre:

    1. Obtenez le jeton:

      TOKEN=$(gcloud auth print-access-token)
      
  3. Exécutez la commande suivante pour désactiver le paramètre des journaux de métadonnées Gemini Code Assist Standard et Enterprise:

      curl -X POST \
        -H "Authorization: Bearer $TOKEN" \
        -H 'Content-Type: application/json' \
        -d '{
          "log_metadata": false,
          } ' \
        "https://cloudaicompanion.googleapis.com/v1/projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings?logging_metadata_id=SETTING_ID"
    

    Remplacez les éléments suivants :

    • CONTAINER_PROJECT_NAME: saisissez l'ID du projet parent.
    • SETTING_ID: saisissez le nom du paramètre existant, par exemple gcalm1 pour Gemini Code Assist log metadata.

      Si la commande aboutit, elle renvoie un corps de réponse qui indique que log_metadata est défini sur false:

      {
        "name": "projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings/SETTING_ID",
        "createTime": "2025-01-23T15:22:49.717166932Z",
        "updateTime": "2025-01-23T15:22:49.717166932Z",
        "log_metadata": false
      }
      
  4. Exécutez la commande suivante pour désactiver le paramètre des journaux utilisateur Gemini Code Assist Standard et Enterprise:

      curl -X POST \
        -H "Authorization: Bearer $TOKEN" \
        -H 'Content-Type: application/json' \
        -d '{
          "log_prompts_and_responses": false,
          } ' \
        "https://cloudaicompanion.googleapis.com/v1/projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings?logging_setting_id=SETTING_ID"
    

    Remplacez les éléments suivants :

    • CONTAINER_PROJECT_NAME: saisissez l'ID du projet parent.
    • SETTING_ID: saisissez le nom du paramètre existant, par exemple gcapar1 pour Gemini Code Assist prompts and responses.

      Si la commande aboutit, elle renvoie un corps de réponse qui indique que log_prompts_and_responses est défini sur false:

      {
        "name": "projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings/SETTING_ID",
        "createTime": "2025-01-23T15:22:49.717166932Z",
        "updateTime": "2025-01-23T15:22:49.717166932Z",
        "log_prompts_and_responses": false
      }
      

Étape suivante