Surveiller et résoudre des problèmes

Cette page explique comment obtenir des informations sur les erreurs survenues dans les importations de catalogues et d'événements utilisateur, ainsi qu'au cours d'autres opérations de l'API dans Vertex AI Réseau de Recherche pour le commerce.

Pour obtenir de l'aide sur la configuration des alertes, consultez Configurer des alertes Cloud Monitoring.

Présentation

Il est important de spécifier des informations précises du catalogue et des événements utilisateur à l'API afin d'obtenir des résultats de la plus haute qualité. La surveillance et la compréhension de la source des erreurs vous aident à détecter et à corriger les erreurs éventuelles sur votre site.

Afficher les erreurs d'intégration agrégées

Pour afficher les erreurs agrégées générées par vos processus d'importation de données et vos requêtes de prédiction ou de recherche, consultez la page Surveillance.

Cette page affiche toutes les erreurs de l'API Vertex AI Search for retail. Vous pouvez afficher les erreurs liées au catalogue de produits, aux événements utilisateur, aux prédictions de recommandations, aux résultats de recherche et aux modèles. Le système consigne également les erreurs d'importation, telles que la présence d'une ligne incorrecte dans votre fichier Cloud Storage. Le système consigne jusqu'à 100 erreurs par fichier d'importation. Vous pouvez définir la période d'affichage des erreurs et les filtrer en fonction du type d'erreur.

Vous pouvez cliquer sur une erreur pour afficher les journaux associés dans Cloud Logging.

Vous pouvez ouvrir des journaux d'erreur individuels en développant ce journal. Les journaux d'erreurs fournissent plus de détails sur la requête, notamment les charges utiles de la requête et de la réponse, ainsi que les détails de l'erreur. Ces informations peuvent vous aider à déterminer l'emplacement de l'appel de méthode erroné sur votre site.

Pour les erreurs JSON non valides, vous pouvez obtenir plus d'informations sur le problème en développant le champ status.

Afficher l'état d'une opération d'intégration spécifique

Vous pouvez consulter l'état d'une opération d'intégration spécifique dans la fenêtre État de l'activité:

  1. Accédez à la page Données> dans la console de la recherche pour le commerce.

    Accéder à la page "Données"

  2. Cliquez sur État de l'activité.

    La fenêtre État de l'activité affiche l'état des opérations de longue durée sur votre catalogue de produits, vos événements utilisateur et vos commandes.

    Dans cette fenêtre, vous pouvez inspecter les erreurs à la recherche d'opérations d'intégration spécifiques.

  3. Cliquez sur Afficher les journaux dans la colonne "Détails" de n'importe quelle opération avec une erreur pour inspecter ses fichiers journaux dans Cloud Logging.

Afficher les journaux dans Cloud Logging

Pour ouvrir vos fichiers journaux directement dans Cloud Logging, procédez comme suit. Vous devez disposer du rôle Lecteur de journaux (roles/logging.viewer) pour afficher les journaux.

  1. Accédez à l'explorateur de journaux dans la console Google Cloud. Accéder à l'explorateur de journaux

  2. Sélectionnez votre projet Vertex AI Search pour le commerce dans le sélecteur de projets.

  3. Cliquez sur le menu déroulant Ressource, puis sélectionnez API consommée > Cloud Retail.

Pour en savoir plus sur l'explorateur de journaux, consultez la page Afficher les journaux à l'aide de l'explorateur de journaux.

Par exemple, ce lien ouvre les journaux de toutes les erreurs Vertex AI Search pour le commerce au cours de la dernière heure:

Ouvrir les journaux Vertex AI Search pour le commerce

Pour configurer les journaux d'API à écrire, consultez la section Configurer la journalisation.

Configurer la journalisation

Vous pouvez configurer les journaux de service qui sont écrits dans Logging. La configuration de la journalisation permet de définir les niveaux de gravité à partir desquels les journaux doivent être écrits, d'activer ou de désactiver la journalisation, et de remplacer les paramètres de journalisation par défaut pour des services spécifiques.

Chaque requête API envoyée par un utilisateur final peut générer une entrée de journal. Une entrée contient des informations telles que la méthode de l'API, le moment où elle a été appelée, le code de réponse, ainsi que le corps de la requête et de la réponse. La configuration de journalisation d'un projet spécifie les types de journaux générés par l'API qui sont écrits dans Logging, avec la possibilité de spécifier de manière précise les configurations de journalisation pour des services d'API spécifiques.

Pour mettre à jour les configurations de journalisation, vous devez disposer du rôle d'éditeur Vertex AI Search pour le commerce.

Vous pouvez utiliser la console ou l'API LoggingConfig pour configurer Logging.

Console

Pour mettre à jour les configurations de journalisation dans la console, procédez comme suit:

  1. Accédez à la page Surveillance dans la console de la recherche pour le commerce.

    Accéder à la page "Surveillance"

  2. Cliquez sur Configuration de la journalisation.

  3. Pour définir une configuration de journalisation globale, sélectionnez un niveau de journalisation. Si vous sélectionnez LOG_ALL, saisissez également un taux d'échantillonnage pour les journaux réussis.

  4. Pour définir une configuration au niveau du service, sélectionnez un service à mettre à jour et son niveau de journalisation. Ce paramètre remplace la configuration de journalisation globale.

curl

Pour mettre à jour les configurations de journalisation à l'aide de l'API, utilisez la ressource LoggingConfig. Consultez la documentation de référence de l'API LoggingConfig.

  1. Pour afficher la configuration de journalisation actuelle, utilisez loggingConfig.Get.

    curl -X GET \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://retail.googleapis.com/v2alpha/projects/PROJECT_ID/loggingConfig"
    
    • PROJECT_ID : ID de votre projet.
  2. Pour mettre à jour la configuration de journalisation, utilisez la méthode loggingConfig.Patch. Pour en savoir plus, consultez la documentation de référence de l'API LoggingConfig.

    Cet exemple utilise loggingConfig.Patch pour définir la configuration de journalisation globale sur LOG_WARNINGS_AND_ABOVE. Il définit également deux configurations au niveau du service: CatalogService est défini sur LOG_WARNINGS_AND_ABOVE et ControlService sur LOG_ALL.

    curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
      -H "Content-Type: application/json; charset=utf-8" \
      "https://retail.googleapis.com/v2alpha/projects/PROJECT_ID/loggingConfig" \
      --data '{
        "name": "projects/PROJECT_ID/loggingConfig",
        "default_log_generation_rule": {"logging_level": "LOG_ERRORS_AND_ABOVE"},
        "service_log_generation_rules": [
          {
            "service_name": "CatalogService",
            "log_generation_rule": {
              "logging_level": "LOG_WARNINGS_AND_ABOVE"
              }
          },
          {
            "service_name": "ControlService",
            "log_generation_rule": {
                "logging_level": "LOG_ALL", "info_log_sample_rate": "0.1"
                }
            }
          ]
        }'
    

Niveaux de journalisation

Seuls les journaux de certains niveaux de gravité sont écrits dans Logging. Les paramètres de niveau de journalisation déterminent les journaux générés par une méthode d'API qui sont écrits dans la journalisation.

Lorsqu'aucune configuration de journalisation au niveau du service n'est définie pour une méthode d'API, le paramètre de niveau de journalisation global est utilisé.

Le niveau de journalisation par défaut est LOG_WARNINGS_AND_ABOVE.

Le champ logging_level accepte les valeurs suivantes:

  • LOGGING_DISABLED: aucun journal n'est créé.
  • LOG_ERRORS_AND_ABOVE: journalise uniquement les erreurs.
  • LOG_WARNINGS_AND_ABOVE: journalise uniquement les erreurs et les avertissements.
  • LOG_ALL: consigne tout, y compris les journaux de réussite tels que les journaux INFO.

Taux d'échantillonnage pour les journaux de réussite

Si vous définissez le niveau de journalisation sur LOG_ALL, mais que vous ne souhaitez pas consigner chaque journalisation réussie, vous pouvez spécifier un taux d'échantillonnage. Par exemple, vous pouvez décider de surveiller périodiquement les journaux pour confirmer l'état de réussite ou afficher un pourcentage de journaux réussis. Spécifier un taux d'échantillonnage peut vous aider à le faire sans écrire un grand volume d'entrées de journal INFO dans Logging, ce qui peut entraîner des coûts de journalisation plus élevés.

Pour spécifier un taux d'échantillonnage, définissez info_log_sample_rate sur une valeur flottante valide supérieure à 0 et inférieure ou égale à 1. Le taux d'échantillonnage détermine la probabilité qu'un journal INFO soit écrit dans la journalisation. La valeur par défaut est 1 (tous les journaux INFO sont écrits).

Configurations au niveau du service

Vous pouvez définir des configurations de journalisation pour des services spécifiques. Cette opération écrase le paramètre de journalisation global pour ce service. Par exemple, vous pouvez définir le niveau de journalisation global sur LOG_WARNINGS_AND_ABOVE, mais définir le niveau de journalisation du service UserEventService sur LOG_ALL afin de vérifier si les intégrations d'événements utilisateur ont réussi.

Utilisez l'objet ServiceLoggingLevel pour définir des niveaux de journalisation précis.

Le champ service_name accepte les valeurs suivantes:

  • CompletionService
  • ControlService
  • MerchantCenterStreaming
  • ModelService
  • PredictionService
  • ProductService
  • ServingConfigService
  • UserEventService

Types d'erreurs

Cette section fournit des définitions des types d'erreurs pouvant apparaître dans vos journaux:

  • MISSING_FIELD : la valeur d'un champ obligatoire n'est pas renseignée. Par exemple : le titre d'un élément du catalogue est vide.
  • INVALID_TIMESTAMP : l'horodatage n'est pas valide. Par exemple : la date est trop éloignée dans le futur, ou le format est incorrect.
  • FIELD_VALUE_TOO_SMALL : la valeur du champ est inférieure à la valeur minimale requise. Par exemple, un prix négatif.
  • INCORRECT_JSON_FORMAT : le format du fichier JSON de la requête est incorrect. Par exemple, il manque une accolade {.
  • INVALID_LANGUAGE_CODE : le format du code de langue est incorrect.
  • FIELD_VALUE_EXCEEDED : la valeur du champ est supérieure à la valeur maximale autorisée.
  • INVALID_RESOURCE_ID : l'ID de la ressource n'est pas valide ; par exemple, un catalog_id inexistant dans le nom de la ressource.
  • FIELD_SIZE_EXCEEDED : le nombre d'entrées du champ dépasse la limite autorisée.
  • UNEXPECTED_FIELD : un champ qui doit rester vide contient une valeur. Par exemple : une transaction pour un événement d'affichage de la page des détails.
  • INVALID_FORMAT : le format du champ est incorrect. Par exemple : le format d'une chaîne n'est pas valide.
  • RESOURCE_ALREADY_EXISTS : vous avez essayé de créer une ressource déjà existante, telle qu'un élément du catalogue créé précédemment.
  • INVALID_API_KEY : la clé API ne correspond pas au projet indiqué dans votre requête.
  • INSUFFICIENT_PERMISSIONS : vous ne disposez pas des autorisations nécessaires pour exécuter la requête. Cette erreur est généralement liée à l'absence d'une autorisation IAM requise.
  • UNJOINED_WITH_CATALOG : la requête inclut un ID d'élément de catalogue qui n'existe pas dans le catalogue. Assurez-vous que celui-ci est à jour.
  • BATCH_ERROR : la requête contient plusieurs erreurs. Par exemple : la validation d'une importation intégrée comprenant 10 éléments a échoué pour plusieurs raisons.
  • INACTIVE_RECOMMENDATION_MODEL : vous avez interrogé un modèle qui ne peut pas être utilisé pour l'inférence.
  • ABUSIVE_ENTITY : l'ID de visiteur ou d'utilisateur associé à la requête a envoyé un nombre anormal d'événements dans un court laps de temps.
  • FILTER_TOO_STRICT : le filtre de requête de prédiction a bloqué tous les résultats de prédiction. Les éléments populaires génériques (non personnalisés) sont renvoyés, sauf si l'appel spécifie strictFiltering comme "false", auquel cas aucun élément n'est renvoyé. Voici quelques-unes des raisons courantes de ce problème :

    • Vous spécifiez un tag de filtre qui n'existe pas dans votre catalogue. Un délai d'un jour peut être nécessaire pour que la mise à jour du tag de filtre soit prise en compte.
    • Votre filtre est trop restreint.

Afficher les métriques de chargement des données

Pour surveiller l'ingestion de vos données de catalogue et d'événements utilisateur dans la console Google Cloud, procédez comme suit:

  1. Affichez les métriques d'erreur liées à l'ingestion de données de votre catalogue et de vos événements utilisateur sur la page Surveillance.

    Accéder à la page "Surveillance"

  2. Une fois votre système d'importation de données exécuté avec succès, utilisez les onglets Catalogue et Événement de la page Données pour afficher des informations agrégées sur votre catalogue, prévisualiser vos produits importés et afficher des visualisations de vos métriques d'intégration des événements utilisateur.

    Accéder à la page "Données"

  3. Pour créer des alertes qui vous informent en cas de problème avec vos importations de données, suivez les procédures décrites dans Configurer des alertes Cloud Monitoring.

Résumé des données du catalogue

Utilisez l'onglet Catalogue de la page Données pour afficher les statistiques de haut niveau de chaque branche du catalogue. Cette page indique le nombre de produits que vous avez importés, le nombre de produits en stock et la date de la dernière importation de produits pour chaque branche du catalogue de produits.

Vous pouvez également afficher un aperçu des articles du catalogue que vous avez importés, puis filtrer les résultats en fonction des champs du produit.

Vous pouvez importer des données dans différentes branches pour préparer et prévisualiser les recommandations ou les résultats de recherche. Par exemple, en prévision de la période des fêtes, vous pouvez importer des données de catalogue dans une branche autre que celle par défaut, et vous assurer que les résultats Retail de Vertex AI Search sont générés correctement avant de les mettre en ligne sur votre site Web.

Statistiques liées à l'enregistrement des événements utilisateur

Pour chaque type d'événement utilisateur, vous pouvez consulter dans l'onglet Événement le nombre d'enregistrements, le nombre d'enregistrements qui n'ont pas pu être associés à un produit (événements non associés). et les différences entre les chiffres par rapport aux périodes précédentes. Vous pouvez sélectionner une période prédéfinie ou saisir une période personnalisée.

Le graphique de métriques affiche les événements utilisateur ingérés au fil du temps, que vous pouvez filtrer par type d'événement utilisateur.

Métriques sur la qualité des données

Sur la page Qualité des données, vous pouvez consulter des métriques qui indiquent les pourcentages de produits et d'événements utilisateur qui répondent aux normes recommandées de qualité des données pour la recherche. Utilisez cette page pour évaluer les données que vous devez importer ou mettre à jour afin d'améliorer la qualité des résultats de recherche et d'accéder aux niveaux de performances de recherche.

Pour en savoir plus sur les niveaux de performances de recherche et vérifier la qualité de vos données, consultez Débloquer les niveaux de performances de recherche.

Pour obtenir la liste de toutes les métriques de qualité des données de catalogue, consultez la section Métriques de qualité des données de catalogue.

Pour connaître toutes les exigences et recommandations concernant les événements utilisateur pour les recommandations et la recherche, consultez la section Exigences et bonnes pratiques concernant les événements utilisateur.

Événements non associés

Lorsqu'un événement utilisateur ou une requête API fait référence à un produit qui n'a pas été importé dans Vertex AI Search pour le commerce, il s'agit d'un événement non associé. Les événements utilisateur non associés sont toujours consignés et les requêtes non associées sont traitées, mais aucune ne peut être utilisée pour améliorer davantage le modèle en vue des prédictions futures. Par conséquent, vous devez vous assurer que le pourcentage d'événements non consignés est très faible pour les événements utilisateur et les requêtes de prédiction.

Vous pouvez consulter le pourcentage d'événements utilisateur non associés dans l'onglet Événement de la page Données :

Erreurs d'API

Vous pouvez afficher un graphique des erreurs d'API au fil du temps, affichées par nom de méthode, en cliquant sur Afficher les métriques de l'API dans la barre de boutons de la page Surveillance.

Surveiller l'activité de la méthode API

Pour visualiser le trafic, les erreurs et la latence par méthode API, accédez à la page Surveillance. Vous pouvez sélectionner une période prédéfinie ou saisir une période personnalisée.

Pour afficher plus de détails sur chaque graphique, procédez comme suit :

  • Sous un graphique, cliquez sur un nom de méthode pour l'isoler dans le graphique.
  • Passez la souris sur un graphique pour afficher une légende avec chaque méthode et ses valeurs à ce moment précis.
  • Cliquez sur une section du graphique et faites-la glisser pour effectuer un zoom avant sur cette période.

Étape suivante