Résoudre les erreurs d'intégration

Google Cloud vous fournit les outils pour surveiller la fiabilité de vos projets avec Google Cloud Monitoring et déboguer les problèmes liés à Google Cloud Logging les journaux d'erreurs. Chaque fois qu'un échec se produit lors du traitement des intents de l'utilisateur, Le pipeline Google Home Analytics enregistre l'échec de vos métriques. publie un journal d'erreurs dans les journaux de votre projet.

Pour résoudre ces erreurs, suivez ces deux étapes:

  1. Surveillez l'état de vos projets grâce aux métriques pour la maison connectée.
  2. Examinez les problèmes en consultant les descriptions détaillées des erreurs dans le les journaux d'erreurs.

Le processus est similaire pour l'intégration locale à l'aide de Local Home SDK Une fois que vous maîtrisez le flux de dépannage, vous pouvez passer facilement d'une métrique à l'autre pour obtenir des insights les erreurs.

Surveiller les erreurs

Vous pouvez utiliser des Google Cloud Monitoring dashboards pour accéder aux métriques de votre projet. Certains graphiques clés sont particulièrement utiles pour surveiller la qualité et le débogage:

  • Le graphique Taux de réussite est le premier graphique à prendre en compte pour surveiller la fiabilité de vos projets. Les chutes dans ce graphique peuvent indiquer une panne pour une partie ou l'ensemble de votre base d'utilisateurs. Nous vous recommandons surveillez attentivement ce graphique afin de détecter toute irrégularité après chaque modification à votre projet.
  • Le graphique de latence au 95e centile est un indicateur important de la façon dont que votre action de maison connectée effectue pour vos utilisateurs. Fluctuations soudaines de ce graphique peut indiquer que vos systèmes ne parviennent pas à rattraper leur retard avec les demandes. Il est recommandé de vérifier régulièrement ce graphique pour voir tout comportement inattendu.
  • Les graphiques Répartition des erreurs sont particulièrement utiles pour identifier résoudre les problèmes liés à vos intégrations. Pour chaque erreur mis en évidence dans le graphique du pourcentage de réussite, un code d'erreur s'affiche dans la répartition des erreurs. Vous pouvez voir les erreurs signalées par l'Google Home platform et comment résoudre ces problèmes dans le tableau ci-dessous.

Codes d'erreur de la plate-forme

Voici quelques codes d'erreur courants que vous pouvez voir dans les journaux de votre projet pour Identifiez les problèmes détectés par Google Home platform. Veuillez consulter les tableau suivant pour obtenir des informations de dépannage.

Code d'erreur Description
BACKEND_FAILURE_URL_ERROR Google a reçu un code d'erreur HTTP 4xx autre que 401 de votre Google Cloud.

Utilisez le requestId dans GCP Logging pour vérifier votre les journaux des services à domicile.
BACKEND_FAILURE_URL_TIMEOUT La requête de Google a expiré lors de la tentative de connexion à votre service.

Vérifiez que votre service est en ligne, qu'il accepte les connexions et n'est pas en surcapacité. Vérifiez également que la cible votre appareil est allumé, en ligne et synchronisé.
BACKEND_FAILURE_URL_UNREACHABLE Google a reçu un code d'erreur HTTP 5xx de la part de votre service.

Utilisez le requestId dans GCP Logging pour vérifier votre les journaux des services à domicile.
DEVICE_NOT_FOUND L'appareil n'existe pas du côté du service partenaire.

Cela indique normalement un échec de la synchronisation des données ou une concurrence .
GAL_BAD_3P_RESPONSE Google ne peut pas analyser la réponse de votre service d'association de comptes en raison d'un format ou de valeurs non valides dans la charge utile.

Consulter les journaux d'erreurs à l'aide de l'requestId dans GCP Logging dans votre service d'association de comptes.
GAL_INTERNAL Une erreur interne s'est produite lorsque Google a tenté de récupérer un jeton d'accès.

Si vous constatez une augmentation du taux de cette erreur dans la journalisation GCP, contactez pour en savoir plus.
GAL_INVALID_ARGUMENT Une erreur interne s'est produite lorsque Google a tenté de récupérer un jeton d'accès.

Si vous constatez une augmentation du taux de cette erreur dans la journalisation GCP, contactez pour en savoir plus.
GAL_NOT_FOUND Les jetons d'accès et d'actualisation de l'utilisateur stockés dans Google sont invalidée et ne peut plus être actualisée. L’utilisateur doit associer de nouveau son compte pour continuer à utiliser votre service.

Si vous constatez une augmentation du taux de cette erreur dans la journalisation GCP, contactez pour en savoir plus.
GAL_PERMISSION_DENIED Une erreur interne Google s'est produite lorsque le partage de jetons n'est pas autorisé.

Si vous constatez une augmentation du taux de cette erreur dans la journalisation GCP, contactez pour en savoir plus.
GAL_REFRESH_IN_PROGRESS Le jeton d'accès de l'utilisateur a expiré et une autre tentative simultanée de actualiser, cela est déjà en cours.

Il ne s'agit pas d'un problème, et aucune action n'est requise de votre part.
INVALID_AUTH_TOKEN Google a reçu un code d'erreur HTTP 401 de votre service.

Le jeton d'accès n'a pas expiré, mais votre service l'a invalidé. Utilisez le requestId dans la journalisation GCP pour vérifier votre les journaux des services à domicile.
INVALID_JSON Impossible d'analyser ou de comprendre la réponse JSON.

Vérifiez que la structure de votre réponse JSON ne contient pas de syntaxe non valide, telle que (crochets non concordants, virgules manquantes, caractères non valides).
OPEN_AUTH_FAILURE Le jeton d'accès de l'utilisateur a expiré et Google ne peut pas l'actualiser. ou Google a reçu un code d'erreur HTTP 401 de la part de votre service.

Si vous constatez une augmentation du taux de ce code, vérifiez si une augmentation du taux d'erreurs liées aux intentions ou à l'actualisation de la maison connectée de jetons.
PARTNER_RESPONSE_INVALID_ERROR_CODE La réponse indique un code d'erreur non reconnu.

Si la réponse à votre requête indique une erreur, assurez-vous d'en utiliser une fournies par notre codes d'erreur pris en charge.
PARTNER_RESPONSE_INVALID_PAYLOAD Impossible d'analyser le champ payload de la réponse en tant que JSON Objet.

Vérifier si le champ de charge utile dans votre réponse à la requête a une correspondance entre crochets et est correctement structuré en tant que champ JSON.
PARTNER_RESPONSE_INVALID_STATUS La réponse n'indique pas un état ou indique un état incorrect.

Les réponses aux requêtes de traitement d'intent doivent indiquer un état avec SUCCESS, OFFLINE, ERROR, EXCEPTIONS. Toi pouvez trouver plus d'informations sur la gestion des erreurs et des exceptions.
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES Un ou plusieurs intents présents dans la requête sont manquants dans le de réponse.

Vérifiez que votre <ph type="x-smartling-placeholder"></ph> d'exécution est correctement structurée et que les résultats pour tous les intents de la requête sont présents dans votre réponse.
PARTNER_RESPONSE_MISSING_DEVICE Un ou plusieurs appareils présents dans la requête ne figurent pas sur le de réponse.

Vérifiez que votre <ph type="x-smartling-placeholder"></ph> d'exécution est correctement structurée et que tous les appareils de la requête sont présents dans votre réponse.
PARTNER_RESPONSE_MISSING_PAYLOAD La réponse ne contient pas de champ payload.

Veillez à inclure un champ de charge utile dans la réponse à votre requête. Toi pouvez en savoir plus sur la façon de créer <ph type="x-smartling-placeholder"></ph> réponse d'exécution.
PARTNER_RESPONSE_NOT_OBJECT Impossible d'analyser la réponse en tant qu'objet JSON.

Vérifiez que tous les champs de la réponse à votre requête ne contiennent pas de caractères non intentionnels. des crochets non concordants ou des erreurs de mise en forme. Certains caractères Unicode n'est peut-être pas compatible. Assurez-vous également que votre réponse est correcte structuré comme un objet JSON.
PROTOCOL_ERROR Échec du traitement de la requête.

Utilisez le requestId dans Google Cloud Logging pour vérifier votre les journaux de service de la maison connectée.
RESPONSE_TIMEOUT La requête a expiré en attendant la réponse.

Le délai avant expiration pour l'envoi d'une réponse est de 9 secondes à compter du moment la demande est envoyée. Veillez à envoyer une réponse dans ce délai de temps.
RESPONSE_UNAVAILABLE Aucune réponse n'est reçue ou la réponse n'indique pas d'état.

Les réponses aux requêtes de traitement des intents doivent être structurées conformément aux docs pour maison connectée et indiquer son état.
TRANSIENT_ERROR Une erreur temporaire est une erreur qui se résout d'elle-même.

Le plus souvent, ces erreurs se manifestent par une connexion à un appareil ou service en cours d'abandon. De même, si les nouvelles connexions à un serveur ne peuvent pas être ouvert.

Journaux sur les recherches

Une fois que vous savez surveiller vos intégrations à l'aide de métriques, est de résoudre des erreurs spécifiques Cloud Logging Un journal d'erreurs est Une entrée de type JSON avec des champs contenant des informations utiles comme l'heure, l'erreur et les détails concernant l'intent de maison connectée d'origine.

Dans Google Cloud, plusieurs systèmes envoient des journaux à votre projet à tout moment. Vous devez Écrire des requêtes pour filtrer les journaux et trouvez celles dont vous avez besoin. Les requêtes peuvent être basées sur une période, Ressource, journal Gravité ou entrées personnalisées.

Interroger les journaux Cloud

Vous pouvez utiliser les boutons de requête pour créer vos filtres personnalisés.

Créer des requêtes de journaux Cloud

Pour spécifier une période, cliquez sur le bouton de sélection de la période. , puis choisissez l'une des options options. Cela filtrera les journaux et affichera ceux qui proviennent période sélectionnée.

Pour spécifier une ressource, cliquez sur le menu déroulant Ressource, puis choisissez Google Assistant Action Project (Projet d'action de l'Assistant Google). Cela ajoute un filtre dans votre requête pour afficher les journaux provenant de votre projet.

Utilisez le bouton Gravité pour filtrer par Urgence, Infos, Débogage. et d'autres niveaux de journalisation.

Vous pouvez également utiliser le champ de requête dans Logs Explorer pour saisir des entrées personnalisées. Le moteur de requêtes utilisé par ce champ accepte à la fois des requêtes de base telles que la correspondance de chaînes, ainsi que des types de requêtes plus avancés, y compris les comparateurs (<, >=, !=) et les opérateurs booléens (AND, OR, NOT).

Par exemple, l'entrée personnalisée ci-dessous renverrait des erreurs qui proviennent d'un type d'appareil LIGHT:

resource.type = "assistant_action_project" AND severity = ERROR AND jsonPayload.executionLog.executionResults.actionResults.device.deviceType = "LIGHT"

Accédez à la bibliothèque de requêtes. pour trouver d'autres exemples permettant d'interroger efficacement les journaux.

Test des correctifs

Une fois que vous avez identifié les erreurs et appliqué les mises à jour pour les corriger, nous vous recommandons de faire des tests vos corrections en détail avec Google Home Test Suite Nous fournissons un guide utilisateur sur comment utiliser Test Suite, qui vous guidera dans le test de votre les changements de manière efficace.

Ressources d'apprentissage

Ce document explique comment résoudre les erreurs sur votre maison connectée action. Vous pouvez également consulter nos ateliers de programmation pour en savoir plus sur le débogage: