Surveiller et résoudre des problèmes

Cette page explique comment obtenir des informations sur les erreurs qui se sont produites dans les importations d'événements utilisateur et de catalogue, ainsi que dans d'autres opérations d'API dans Vertex AI Search pour le commerce.

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

Introduction

Il est important de fournir à l'API des informations sur le catalogue et des événements utilisateur exacts pour 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, accédez à la page Surveillance.

Cette page affiche toutes les erreurs liées à l'API Vertex AI Search pour le commerce. 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> de la console Search for Retail.

    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, les événements utilisateur et les commandes.

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

  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 projet.

  3. Cliquez sur le menu déroulant Ressource, puis sélectionnez API Consumed > 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 concernant le commerce au cours de la dernière heure:

Ouvrir Vertex AI Search pour les journaux Retail

Pour configurer les journaux d'API écrits, consultez la page Configurer Logging.

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é pour l'écriture de journaux, 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 effectué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 API, le moment où elle a été appelée, le code de réponse, ainsi que les 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 des 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 configurer Logging à l'aide de la console ou de l'API LoggingConfig.

Console

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

  1. Accédez à la page Surveillance de la console Search for Retail.

    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 sélectionnez 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 de niveau de service: CatalogService est défini sur LOG_WARNINGS_AND_ABOVE et ControlService est défini 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 associés à certains niveaux de gravité sont écrits dans Logging. Les paramètres de niveau de journalisation déterminent quels journaux générés par une méthode API sont écrits dans Logging.

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

Le paramètre de niveau de journalisation par défaut est LOG_WARNINGS_AND_ABOVE.

Le champ logging_level accepte les valeurs suivantes:

  • LOGGING_DISABLED: aucun journal écrit.
  • LOG_ERRORS_AND_ABOVE: ne consigne que les erreurs.
  • LOG_WARNINGS_AND_ABOVE: ne consigne que les erreurs et les avertissements.
  • LOG_ALL: consigne tout, y compris les journaux réussis tels que les journaux INFO.

Taux d'échantillonnage des journaux réussis

Si vous définissez le paramètre de niveau de journalisation sur LOG_ALL, mais que vous ne souhaitez pas consigner tous les journaux ayant abouti, vous pouvez spécifier un taux d'échantillonnage. Par exemple, vous pouvez décider de surveiller régulièrement les journaux pour vérifier si l'état de l'opération a réussi ou de consulter un pourcentage de journaux ayant abouti. La spécification d'un taux d'échantillonnage peut vous aider à effectuer cette opération sans écrire un volume élevé d'entrées de journal INFO dans Logging, ce qui peut entraîner des coûts plus élevés pour Logging.

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 Logging. 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 action écrase le paramètre de journalisation globale de 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 charge de données

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

  1. Affichez les métriques d'erreur pour l'ingestion de données d'événement utilisateur et de catalogue sur la page Monitoring.

    Accéder à la page "Surveillance"

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

    Accéder à la page "Données"

  3. Pour créer des alertes en cas de problème lors de l'importation de vos données, suivez les procédures décrites dans la section 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 entreposer et prévisualiser des recommandations ou des résultats de recherche. Par exemple, pour préparer les fêtes de fin d'année, vous pouvez importer de nouvelles données de catalogue dans une branche autre que celle par défaut et vous assurer que les résultats Vertex AI Search pour le commerce sont correctement générés 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 indiquant les pourcentages de produits et d'événements utilisateur qui respectent les 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 de débloquer les niveaux de performances de recherche.

Pour en savoir plus sur les niveaux de performances de recherche et sur la vérification de la qualité de vos données, consultez Accéder aux niveaux de performances de recherche.

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

Pour connaître toutes les exigences concernant les événements utilisateur et les recommandations concernant les recommandations et la recherche, consultez la page 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 de l'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 Monitoring.

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 Monitoring. 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.

Étapes suivantes