Google Cloud fournit les outils permettant de surveiller la fiabilité de vos projets avec Google Cloud Monitoring et de déboguer les problèmes à l'aide des journaux d'erreurs Google Cloud Logging. Chaque fois qu'un échec se produit lors du traitement des intents utilisateur, le pipeline Google Home Analytics enregistre cet échec dans vos métriques et publie un journal d'erreurs dans les journaux de votre projet.
Pour résoudre ces erreurs, deux étapes s'offrent à vous:
- Surveillez l'état de vos projets avec des 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.
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 à partir duquel vous surveillez la fiabilité de vos projets. Les baisses dans ce graphique peuvent indiquer une indisponibilité d'une partie ou de la totalité de votre base d'utilisateurs. Nous vous recommandons de surveiller de près ce graphique afin de 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 action de maison connectée pour vos utilisateurs. Des fluctuations soudaines dans ce graphique peuvent indiquer que vos systèmes risquent de ne pas rattraper leur retard avec les requêtes. Il est recommandé de vérifier régulièrement ce graphique pour détecter tout comportement inattendu.
- Les graphiques de répartition des erreurs sont particulièrement utiles pour résoudre les problèmes liés à vos intégrations. Pour chaque erreur mise en surbrillance dans le graphique des pourcentages de réussite, un code d'erreur s'affiche dans la répartition des erreurs. Vous pouvez voir les erreurs signalées par Google Home platform et 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 suivant pour obtenir des informations de dépannage.
Code d'erreur | Description |
---|---|
BACKEND_FAILURE_URL_ERROR |
Google a reçu de votre service un code d'erreur HTTP 4xx autre que 401.
Utilisez requestId dans la journalisation GCP pour consulter les journaux du service de maison connectée.
|
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 qu'il n'est pas en surcapacité. 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 la part de votre service.
Utilisez requestId dans la journalisation GCP pour consulter les journaux du service de maison connectée.
|
DEVICE_NOT_FOUND |
L'appareil n'existe pas du côté du service partenaire.
Cela indique généralement un échec de 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 comptes en raison d'un format ou de valeurs non valides dans la charge utile.
Utilisez requestId dans la journalisation GCP pour consulter les journaux d'erreurs dans votre service d'association de comptes.
|
GAL_INTERNAL |
Une erreur interne à Google 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-nous pour en savoir plus. |
GAL_INVALID_ARGUMENT |
Une erreur interne à Google 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-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 ne sont plus valides et ne peuvent plus être actualisés. 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-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 du taux de cette erreur dans la journalisation 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 simultanée est déjà en cours.
Cela n'est pas un problème, et aucune action n'est requise. |
INVALID_AUTH_TOKEN |
Google a reçu un code d'erreur HTTP 401 de la part 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 |
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 des crochets non concordants, 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 la part 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 de la maison connectée ou aux requêtes de jetons 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, veillez à en utiliser une fournie par nos codes d'erreur compatibles. |
PARTNER_RESPONSE_INVALID_PAYLOAD |
Le champ payload de la réponse ne peut pas être analysé en tant qu'objet JSON.
Vérifiez que le champ de charge utile de la réponse à votre requête comporte des crochets correspondants et qu'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 page sur la
gestion des erreurs et des exceptions.
|
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES |
Il manque un ou plusieurs intents dans la requête dans la réponse.
Vérifiez que votre réponse d'exécution est correctement structurée et que les résultats de 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 .
Veillez à inclure un champ de charge utile dans la réponse à la requête. Pour en savoir plus sur la création correcte d'une 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 à la requête ne contiennent pas de caractères inattendus, de crochets non concordants ou d'erreurs de mise en forme. Il est possible que certains caractères Unicode ne soient pas acceptés. 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 du service de 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 neuf secondes à compter de la date d'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 d'état.
Les réponses aux requêtes de traitement d'intents doivent être structurées conformément à la documentation sur la maison connectée et indiquer leur état. |
TRANSIENT_ERROR |
Une erreur temporaire est une erreur qui se résout d'elle-même.
La plupart du temps, ces erreurs se manifestent par la suppression d'une connexion à un appareil ou à un service. Cela s'applique également si de nouvelles connexions à un serveur ne peuvent pas être ouvertes. |
Journaux sur les recherches
Une fois que vous maîtrisez la surveillance de 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 dont les champs contiennent des informations utiles telles que l'heure, le code d'erreur et des détails concernant l'intent de maison connectée d'origine.
Plusieurs systèmes dans Google Cloud envoient en permanence des journaux à votre projet. Vous devez écrire des requêtes pour filtrer vos journaux et trouver celles dont vous avez besoin. Les requêtes peuvent être basées sur une période, une ressource, un niveau de gravité de journal ou des entrées personnalisées.

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

Pour spécifier une période, cliquez sur le bouton de sélection de période
et choisissez l'une des options fournies. Les journaux sont alors filtrés et affichent ceux qui proviennent de la période sélectionnée.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 alors ajouté à votre requête pour afficher les journaux provenant de votre projet.
Utilisez le bouton Gravité pour filtrer par Urgence, Informations, Débogage et selon d'autres niveaux de gravité.
Vous pouvez également utiliser le champ "Query" (Requête) de Logs Explorer pour saisir des entrées personnalisées. Le moteur de requêtes utilisé par ce champ accepte à la fois les requêtes de base telles que la correspondance de chaînes et les types de requêtes plus avancés tels que les comparateurs (<, >=, !=
) et les opérateurs booléens (AND, OR, NOT
).
Par exemple, l'entrée personnalisée ci-dessous affichera 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"
Accédez à la bibliothèque de requêtes pour trouver d'autres exemples permettant d'interroger efficacement des 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 vos corrections de manière approfondie avec Google Home Test Suite. Nous fournissons un guide utilisateur sur l'utilisation de Test Suite, qui vous aide à tester efficacement vos modifications.
Ressources d'apprentissage
Ce document explique comment résoudre les erreurs liées à 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 dans le cloud de la maison connectée.
- Atelier de programmation "Debugging Local Home" (Déboguer une maison locale) : guide de démarrage rapide pour déboguer l'intégration locale de la maison connectée.