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 défaillance se produit lors de la réponse aux intentions de l'utilisateur, le pipeline Google Home Analytics enregistre cette défaillance dans vos métriques et publie un journal d'erreurs dans les journaux de votre projet.
Pour résoudre les erreurs, vous devez suivre deux étapes :
- Surveillez l'état de vos projets grâce aux métriques pour la maison connectée.
- Examinez les problèmes en consultant les descriptions détaillées des erreurs dans les journaux d'erreurs.
Vous pouvez également tester votre action en la partageant avec d'autres utilisateurs. Assurez-vous de gérer correctement les erreurs et les exceptions.
Erreurs de surveillance
Vous pouvez utiliser les 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 à consulter lorsque vous surveillez la fiabilité de vos projets. Les baisses dans ce graphique peuvent indiquer une panne pour une partie ou l'ensemble 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 centile 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 pas en mesure de répondre aux 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 le 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. Veuillez consulter le tableau ci-dessous pour obtenir des informations sur le 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 service.
Utilisez requestId dans GCP Logging pour vérifier les journaux de votre service pour la maison connectée.
|
BACKEND_FAILURE_URL_TIMEOUT |
Le délai d'attente de la requête 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 vérifier les journaux de votre service pour la maison connectée.
|
DEVICE_NOT_FOUND |
L'appareil n'existe pas au niveau du service partenaire.
Cela indique normalement un échec de la synchronisation des données ou une condition de concurrence. |
GAL_BAD_3P_RESPONSE |
Google ne peut pas analyser la réponse de votre service d'association de compte en raison d'un format ou de valeurs non valides dans la charge utile.
Utilisez requestId dans GCP Logging pour vérifier les journaux d'erreurs
dans votre service d'association de comptes.
|
GAL_INTERNAL |
Une erreur interne à Google s'est produite lorsque Google a essayé de récupérer un jeton d'accès.
Si vous constatez une augmentation de ce type d'erreur dans GCP Logging, contactez-nous pour en savoir plus. |
GAL_INVALID_ARGUMENT |
Une erreur interne à Google s'est produite lorsque Google a essayé de récupérer un jeton d'accès.
Si vous constatez une augmentation de ce type d'erreur dans GCP Logging, contactez-nous pour en savoir plus. |
GAL_NOT_FOUND |
Les jetons d'accès et 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 ce type d'erreur dans GCP Logging, 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 ce type d'erreur dans GCP Logging, contactez-nous pour en savoir plus. |
GAL_REFRESH_IN_PROGRESS |
Le jeton d'accès de l'utilisateur a expiré et une autre tentative simultanée d'actualisation est déjà en cours.
Il ne s'agit pas d'un problème et aucune action n'est requise. |
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 vérifier les journaux de votre service pour la 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 une syntaxe non valide, comme des crochets qui ne correspondent pas, 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 du taux de ce code, vérifiez si vous constatez également une augmentation du taux d'erreurs liées aux intents pour la maison connectée ou aux demandes de jeton d'actualisation. |
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 fournie dans nos codes d'erreur acceptés. |
PARTNER_RESPONSE_INVALID_PAYLOAD |
Le champ de réponse payload ne peut pas être analysé en tant qu'objet JSON.
Vérifiez si le champ de charge utile de la réponse à votre requête comporte des crochets correspondants et s'il est correctement structuré en tant que champ JSON. |
PARTNER_RESPONSE_INVALID_STATUS |
La réponse n'indique pas d'état ou en indique un 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
Gérer les erreurs et les exceptions.
|
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES |
Une ou plusieurs intentions présentes dans la requête sont manquantes dans la réponse.
Vérifiez que votre réponse d'exécution est correctement structurée et que les résultats de toutes les intentions 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 sont manquants 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 .
Veillez à inclure un champ de charge utile dans la réponse à votre demande. Pour savoir comment créer correctement une réponse d'exécution, consultez la documentation. |
PARTNER_RESPONSE_NOT_OBJECT |
La réponse ne peut pas être analysée en tant qu'objet JSON.
Vérifiez que tous les champs de la réponse à votre demande ne contiennent pas de caractères inattendus, de crochets non concordants ni d'erreurs de mise en forme. Il est possible que certains caractères Unicode ne soient pas pris en charge. Assurez-vous également que votre réponse est correctement structurée en tant qu'objet JSON. |
PROTOCOL_ERROR |
Échec du traitement de la demande.
Utilisez requestId dans Google Cloud Logging pour vérifier les journaux de votre service pour la maison connectée.
|
RELINK_REQUIRED |
La réponse indiquait une erreur relinkRequired , qui invite l'utilisateur à associer de nouveau ses comptes Google et partenaire.
Pour en savoir plus, consultez les codes d'erreur acceptés. |
RESPONSE_TIMEOUT |
Le délai de la requête a expiré lors de l'attente de la réponse.
Le délai avant expiration pour 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 demandes d'exécution d'intent doivent être structurées conformément à la documentation sur la maison connectée et indiquer l'état. |
TRANSIENT_ERROR |
Une erreur temporaire est une erreur qui se résoudra d'elle-même.
Ces erreurs se manifestent généralement par une déconnexion d'un appareil ou d'un service. Également si de nouvelles connexions à un serveur ne peuvent pas être ouvertes. |
Journaux sur les recherches
Une fois que vous êtes à l'aise pour surveiller vos intégrations à l'aide de métriques, l'étape suivante consiste à résoudre des erreurs spécifiques à l'aide de Cloud Logging. Un journal d'erreurs est une entrée de type JSON avec des champs contenant des informations utiles telles que l'heure, le code d'erreur et des détails sur l'intention de maison connectée à l'origine de l'erreur.
Plusieurs systèmes dans 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 période, une ressource, la gravité du journal ou des entrées personnalisées.

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

Pour spécifier une période, cliquez sur le bouton de sélection de la période
, puis choisissez l'une des options proposées. Les journaux seront filtrés et ceux qui proviennent de la plage de temps sélectionnée s'afficheront.Pour spécifier une ressource, cliquez sur le menu déroulant Ressource, puis sélectionnez Projet d'action de l'Assistant Google. Cela ajoute un filtre à votre requête pour afficher les journaux provenant de votre projet.
Utilisez le bouton Gravité pour filtrer les journaux par niveau de gravité : Urgence, Info, Débogage, etc.
Vous pouvez également utiliser le champ "Requête" dans Logs Explorer pour saisir des entrées personnalisées. Le moteur de requête utilisé par ce champ accepte les requêtes de base (comme la 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 des 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 de requêtes permettant d'interroger efficacement les journaux.
Tester les corrections
Une fois que vous avez identifié les erreurs et appliqué les mises à jour pour les corriger, nous vous recommandons de tester minutieusement vos corrections 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 :
- Atelier de programmation sur le débogage de la maison connectée : guide de démarrage rapide pour déboguer l'intégration cloud de la maison connectée.
- Atelier de programmation sur le débogage de Local Home : guide de démarrage rapide pour déboguer l'intégration locale de la maison connectée.