Résoudre les erreurs d'intégration

Cloud-to-cloud    Matter

Google Cloud vous fournit les outils nécessaires pour surveiller la fiabilité de vos projets avec Google Cloud Monitoring et déboguer les problèmes avec les journaux d'erreurs Google Cloud Logging. Chaque fois qu'une erreur se produit lors de l'exécution des intents utilisateur, le pipeline Google Home Analytics enregistre cette erreur dans vos métriques et publie un journal des erreurs dans les journaux de votre projet.

Pour résoudre vos erreurs, procédez comme suit:

  1. Surveillez l'état de vos projets à l'aide de métriques pour la maison connectée.
  2. Examinez les problèmes en consultant les descriptions détaillées des erreurs dans 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 facilement passer d'une métrique à une autre et consulter les journaux pour obtenir des insights sur vos erreurs.

Vous pouvez éventuellement tester votre action en la partageant avec d'autres utilisateurs. Veillez à gérer correctement les erreurs et les exceptions.

Erreurs de surveillance

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

  • Le graphique Taux de réussite est le premier graphique à partir duquel vous pouvez surveiller la fiabilité de vos projets. Les baisses de ce graphique peuvent indiquer une panne pour une partie ou la totalité de votre base d'utilisateurs. Nous vous recommandons de surveiller attentivement ce graphique pour détecter toute irrégularité après chaque modification ou mise à jour de votre projet.
  • Le graphique Latence au 95e percentile est un indicateur important des performances de votre intégration Cloud-to-cloud pour vos utilisateurs. Des fluctuations soudaines dans ce graphique peuvent indiquer que vos systèmes ne sont peut-être pas en mesure de suivre les requêtes. Nous vous conseillons de consulter régulièrement ce graphique pour détecter tout comportement inattendu.
  • Les graphiques Répartition des erreurs sont particulièrement utiles pour résoudre les problèmes liés à vos intégrations. Pour chaque erreur mise en évidence dans votre graphique du pourcentage de réussite, un code d'erreur s'affiche dans la répartition des erreurs. Vous pouvez consulter les erreurs signalées par Google Home platform et découvrir comment les résoudre 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 identifier les problèmes détectés par Google Home platform. Pour en savoir plus, consultez le tableau suivant.

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

Utilisez requestId dans GCP Logging pour consulter les journaux de votre service de maison connectée.
BACKEND_FAILURE_URL_TIMEOUT La requête de Google a expiré lors de la tentative d'accès à votre service.

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

Utilisez requestId dans GCP Logging pour consulter les journaux de votre service de maison connectée.
DEVICE_NOT_FOUND L'appareil n'existe pas du côté du service partenaire.

Cela indique généralement une défaillance de la synchronisation des données ou une condition de course.
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.

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

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

Si vous constatez une augmentation de la fréquence de cette erreur dans les journaux GCP, contactez-nous pour en savoir plus.
GAL_NOT_FOUND Les jetons d'accès et les jetons d'actualisation de l'utilisateur stockés dans Google sont invalidés et ne peuvent plus être actualisés. L'utilisateur doit réassocier son compte pour continuer à utiliser votre service.

Si vous constatez une augmentation de la fréquence de cette erreur dans les journaux GCP, contactez-nous 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 de la fréquence de cette erreur dans les journaux GCP, contactez-nous pour en savoir plus.
GAL_REFRESH_IN_PROGRESS Le jeton d'accès de l'utilisateur a expiré et une autre tentative d'actualisation 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 requestId dans la journalisation GCP pour consulter les journaux de votre service de maison connectée.
INVALID_JSON La réponse JSON ne peut pas être analysée ni comprise.

Vérifiez la structure de votre réponse JSON pour détecter toute syntaxe non valide, comme des crochets incohérents, des virgules manquantes ou des 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 votre service.

Si vous constatez une augmentation de ce code, vérifiez si le nombre d'erreurs liées aux intents de maison connectée ou aux requêtes de jeton d'actualisation augmente également.
PARTNER_RESPONSE_INVALID_ERROR_CODE La réponse indique un code d'erreur non reconnu.

Si la réponse de votre requête indique une erreur, assurez-vous d'utiliser l'un des codes d'erreur acceptés.
PARTNER_RESPONSE_INVALID_PAYLOAD Le champ payload de la réponse ne peut pas être analysé en tant qu'objet JSON.

Vérifiez si le champ de charge utile de votre réponse à la requête comporte des accolades correspondantes et s'il est correctement structuré en tant que champ JSON.
PARTNER_RESPONSE_INVALID_STATUS La réponse n'indique pas d'é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. Pour en savoir plus, consultez la section Gérer les erreurs et les exceptions.
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES Un ou plusieurs intents présents dans la requête sont manquants dans la réponse.

Vérifiez que votre réponse 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 dans la réponse.

Vérifiez que votre réponse d'exécution est correctement structurée et que tous les ID d'appareil de la requête sont présents dans votre réponse.
PARTNER_RESPONSE_MISSING_PAYLOAD La réponse ne contient pas de champ payload.

Assurez-vous d'inclure un champ de charge utile dans votre réponse à la requête. Découvrez comment créer correctement une réponse d'exécution.
PARTNER_RESPONSE_NOT_OBJECT La réponse ne peut pas être analysée en tant qu'objet JSON.

Vérifiez tous les champs de la réponse à votre requête pour détecter les caractères involontaires, les crochets non concordants ou les erreurs de mise en forme. Certains caractères Unicode peuvent ne pas être compatibles. Assurez-vous également que votre réponse est correctement structurée en tant qu'objet JSON.
PROTOCOL_ERROR Échec du traitement de la requête.

Utilisez requestId dans Google Cloud Logging pour consulter les journaux de votre service de maison connectée.
RESPONSE_TIMEOUT Le délai de la requête a expiré en attendant la réponse.

Le délai avant expiration de l'envoi d'une réponse est de neuf secondes à compter de l'envoi de la requête. Veillez à envoyer une réponse dans ce délai.
RESPONSE_UNAVAILABLE Aucune réponse n'est reçue ou la réponse n'indique pas l'état.

Les réponses aux requêtes de traitement des intents doivent être structurées conformément aux documents sur la maison connectée et indiquer l'état.
TRANSIENT_ERROR Une erreur temporaire se résout d'elle-même.

Le plus souvent, ces erreurs se manifestent par une interruption de la connexion à un appareil ou à un service. Cela se produit également si vous ne parvenez pas à ouvrir de nouvelles connexions à un serveur.

Journaux sur les recherches

Une fois que vous avez pris en main la surveillance de vos intégrations à l'aide de métriques, l'étape suivante consiste à résoudre les erreurs spécifiques à l'aide de Cloud Logging. Un journal des erreurs est une entrée semblable à un JSON avec des champs contenant des informations utiles telles que l'heure, le code d'erreur et des détails sur l'intent de maison connectée d'origine.

Plusieurs systèmes de Google Cloud envoient des journaux à votre projet en permanence. Vous devez écrire des requêtes pour filtrer vos journaux et trouver ceux dont vous avez besoin. Les requêtes peuvent être basées sur une plage de dates, une ressource, la gravité des journaux ou des 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 journal Cloud

Pour spécifier une plage temporelle, cliquez sur le bouton de sélection de la période , puis choisissez l'une des options proposées. Les journaux sont alors filtrés et ceux qui proviennent de la période sélectionnée s'affichent.

Pour spécifier une ressource, cliquez sur le menu déroulant Ressource, puis sélectionnez Projet d'action de l'Assistant Google. Un filtre est ajouté à votre requête pour afficher les journaux provenant de votre projet.

Utilisez le bouton Gravité pour filtrer les journaux par Urgent, Infos, Débogage et autres niveaux de gravité.

Vous pouvez également utiliser le champ "Query" (Requête) dans Logs Explorer pour saisir des entrées personnalisées. Le moteur de requête utilisé par ce champ accepte à la fois les requêtes de base telles que la mise en correspondance de chaînes et les 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 les erreurs provenant d'un type d'appareil LIGHT:

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

Consultez la bibliothèque de requêtes pour trouver d'autres exemples d'interrogation efficace des journaux.

Corrections de test

Une fois que vous avez identifié les erreurs et appliqué les mises à jour pour les corriger, nous vous recommandons de tester vos corrections de manière approfondie avec Google Home Test Suite. Nous fournissons un guide de l'utilisateur sur l'utilisation de Test Suite, qui vous explique comment tester efficacement vos modifications.

Ressources d'apprentissage

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