Métriques basées sur les journaux pour la maison connectée

1. Avant de commencer

Comme indiqué dans l'atelier de programmation Déboguer la maison connectée, nous publions des métriques et des journaux dans vos projets de maison connectée. Les métriques vous permettent de déterminer les problèmes rencontrés par votre action pour la maison connectée. Quant aux journaux, ils sont utiles pour analyser la situation en détail afin de résoudre ces problèmes.

848f483bfcd2997a.png

Outre celles disponibles dans votre projet, vous pouvez générer vos propres métriques à l'aide des métriques basées sur les journaux de Google Cloud Platform. Ainsi, vous pouvez surveiller certaines tendances dans vos journaux et résoudre efficacement les problèmes de qualité.

Prérequis

Points abordés

  • Rédiger des requêtes efficaces pour filtrer les journaux d'erreurs de la maison connectée
  • Créer des métriques basées sur les journaux pour générer des métriques à partir de vos requêtes
  • Créer des graphiques et des tableaux de bord à partir de métriques basées sur les journaux à des fins de surveillance

2. Utiliser les journaux

Comme nous l'avons brièvement expliqué dans l'atelier de programmation Déboguer la maison connectée, l'utilisation des journaux est essentielle à la réussite de votre projet. Google Cloud Platform propose d'excellents outils pour surveiller et analyser vos journaux. Pour accéder à tous les journaux disponibles pour votre projet, vous pouvez utiliser l'explorateur de journaux.

Accéder aux journaux

Pour accéder à vos journaux, la première étape consiste à vous connecter à Google Cloud Platform et à choisir votre projet. Accédez à l'explorateur de journaux à partir du menu latéral, en cliquant sur Opérations > Journaux > Explorateur de journaux. Une fois l'outil ouvert, la vue suivante doit s'afficher :

78982d8b6d19b827.png

L'explorateur de journaux comprend deux sections principales : une section en haut de l'écran dans laquelle saisir vos requêtes (le générateur de requêtes) et une zone dans laquelle s'affichent les résultats correspondants (intitulée Résultats de la requête).

Par défaut, de nombreux composants de Google écrivent des journaux dans votre projet. Pour trouver et utiliser les journaux provenant de votre intégration pour la maison connectée, vous devez rédiger des requêtes personnalisées.

Rédiger des requêtes

Les journaux sont publiés dans les projets d'un type de ressource donné. Chaque type de ressource représente une plate-forme Google différente. Pour votre projet, les journaux provenant de la plate-forme pour la maison connectée sont disponibles dans le type de ressource assistant_action_project.

En outre, un niveau de gravité est attribué à tous les journaux au moment de leur création. Pour les journaux de la maison connectée, nous utilisons le niveau ERROR pour les journaux représentant les erreurs et les exceptions, et le niveau DEBUG pour tout le reste.

Dans l'exemple suivant, nous allons rédiger une requête pour filtrer les journaux ne provenant que de notre plate-forme et représentant des erreurs, comme suit :

753bfe72a9f8e959.png

Une fois la requête rédigée, cliquez sur le bouton Exécuter la requête. Des erreurs liées à votre intégration pour la maison connectée doivent s'afficher :

3ef42da5a6c322e1.png

Comme vous pouvez le constater, des erreurs se sont produites à plusieurs reprises au cours de la dernière heure. Chaque ligne représente un seul journal d'erreurs. Vous pouvez cliquer sur chacun des journaux et développer les champs imbriqués pour voir les informations qu'ils contiennent.

Utiliser l'histogramme

L'explorateur de journaux fournit une fonctionnalité d'histogramme utile pour afficher la distribution dans le temps des journaux correspondant à votre requête. Pour activer l'histogramme, cliquez sur MISE EN PAGE dans les boutons situés en haut à droite, puis cochez la case Histogramme pour activer la fonctionnalité.

10eaf1d204decf3c.png

Une fois la fonctionnalité activée, la distribution des journaux correspondant à votre requête s'affiche :

dd3410e65a83cf5d.png

Comme vous pouvez le voir sur l'image ci-dessus, plusieurs petits groupes d'erreurs sont apparus au cours de l'heure précédente. Ils semblent former trois clusters autour de 13:45, 14:00 et 14:15. L'histogramme peut vous aider à détecter des tendances qui seraient difficiles à identifier si vous ne vous basiez que sur les valeurs d'horodatage.

Pour le moment, la requête que nous utilisons ne fait aucune différence entre les journaux et affiche toutes les erreurs provenant de l'intégration pour la maison connectée. Dans de nombreux cas, il peut être utile de différencier les erreurs, par exemple pour suivre les tendances d'erreurs provenant de certains types d'appareils ou de certaines caractéristiques. Pour ce faire, nous allons découvrir comment rédiger des requêtes avancées.

Requêtes avancées

Lorsque vous inspectez un journal des événements de la maison connectée, vous pouvez voir qu'il existe différents champs dans lesquels il est possible de recueillir des informations :

825c57c36800844e.png

action

  • trait:ciblez la caractéristique de l'appareil en fonction de l'utilisateur (par exemple, OnOff, StartStop et Luminosité).
  • actionType : état précis de la caractéristique (par exemple, On, Off, Pause, Stop et Resume).

device

  • deviceType:ciblez le type d'appareil en fonction de l'utilisateur (éclairage, interrupteur, lave-linge, par exemple).

status

  • isSuccess : indique si le résultat de l'action est considéré comme réussi (true/false).
  • statusType : code d'état du résultat de l'action (indique un code d'erreur en cas d'échec).
  • externalDebugString : chaîne de débogage de l'action (décrit l'erreur en détail).

Autres champs

Vous pouvez aussi obtenir des informations à partir d'autres champs :

  • requestId : identifiant unique associé à la requête (généré par Google).
  • executionType : chemin d'accès utilisé par la requête (indique s'il s'agit d'un chemin cloud ou local).
  • latencyMsec : latence perçue de la requête sur les serveurs Google (en millisecondes).
  • locale : langue ou région d'origine de la requête (par exemple, en-US, fr-FR).

À l'aide du champ de caractéristique de la liste ci-dessus, nous allons modifier notre requête pour n'inclure que les erreurs provenant de la caractéristique OnOff :

resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

Après avoir exécuté notre nouvelle requête, le système identifie les journaux et affiche le résultat correspondant :

76176d7a41962341.png

Jusqu'à présent, nous avons effectué toutes nos requêtes manuellement. Il s'agit d'un excellent moyen de vérifier rapidement l'état des erreurs, mais il s'avère moins efficace pour surveiller l'évolution des tendances d'erreurs au fil du temps. Pour automatiser ce flux et collecter les données sur des périodes plus longues, nous allons créer des métriques basées sur les journaux.

3. Métriques basées sur les journaux

Vous pouvez utiliser des métriques basées sur les journaux pour comptabiliser le nombre de journaux correspondant à vos requêtes au fil du temps. Cela vous permettra d'afficher des tendances dans vos journaux et de fournir de bons insights concernant les problèmes sous-jacents.

Créer une métrique basée sur les journaux

Pour créer une métrique basée sur les journaux, accédez à Opérations > Journaux > Métriques basées sur les journaux. La liste des métriques basées sur les journaux déjà disponibles dans votre projet s'affiche. Lorsque vous cliquez sur le bouton CRÉER UNE MÉTRIQUE, l'écran de création de métriques basées sur les journaux s'affiche :

296af6e7d8dcf6cf.png

Il existe deux types de métriques principaux: une métrique de compteur qui compte le nombre de journaux correspondant à votre requête. Une métrique de distribution assure le suivi de la distribution sous-jacente et permet des opérations statistiques telles que la moyenne, la médiane et le 95e centile.

Si vous faites défiler la page vers le bas, vous verrez une section de filtre dans laquelle vous pouvez saisir votre requête.

f7f2093fa1bce2ac.png

Nous allons coller la requête de la section précédente dans la zone de texte Créer un filtre.

​​resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

Vous pouvez également cliquer sur le bouton PRÉVISUALISER LES JOURNAUX pour avoir un aperçu rapide des journaux précédents correspondant à votre filtre. Une fois que vous avez terminé, vous pouvez cliquer sur le bouton CRÉER UNE MÉTRIQUE et passer à la section suivante.

Afficher les données de métriques basées sur les journaux

Maintenant que nous avons créé notre métrique basée sur les journaux, elle sera disponible dans la section Métriques définies par l'utilisateur de la page des métriques basées sur les journaux.

1b2c88c18533fbcd.png

Dans le menu correspondant à la métrique basée sur les journaux (menu à trois points), sélectionnez Afficher dans l'explorateur de métriques pour afficher les données collectées dans la métrique basée sur les journaux :

54a836fdc3a666a3.png

Une fois qu'une nouvelle erreur s'est produite, elle est capturée par notre métrique basée sur les journaux et affichée dans la fenêtre du graphique de l'explorateur de métriques.

Surveillance via des tableaux de bord personnalisés

Une fois que notre nouvelle métrique basée sur les journaux fonctionne comme prévu, il est temps d'enregistrer ce graphique dans un tableau de bord personnalisé. Pour ce faire, cliquez sur le bouton Enregistrer le graphique en haut à droite de l'explorateur de métriques. Une invite s'affiche pour vous permettre de nommer le graphique et de sélectionner le tableau de bord dans lequel vous souhaitez l'enregistrer :

52329085f841782e.png

Une fois le graphique enregistré, vous pouvez facilement y accéder depuis le tableau de bord. Pour accéder à la liste des tableaux de bord disponibles dans votre projet, accédez à Opérations > Surveillance > Tableaux de bord.

44961e7cb3663341.png

Nous avons enregistré notre graphique dans un tableau de bord intitulé "Atelier de programmation". Ouvrez-le pour afficher la vue suivante :

f7e025c27f30f996.png

Le graphique représentant la métrique basée sur les journaux s'affiche ici, avec les nouvelles données collectées. Les journaux de la maison connectée sont publiés dans votre projet en temps réel. Lorsqu'un nouveau journal sera disponible, il sera immédiatement comptabilisé dans votre métrique basée sur les journaux.

4. Félicitations

674c4f4392e98c1.png

Félicitations ! Vous avez découvert comment transformer vos requêtes en métriques basées sur les journaux. Vous avez également appris à les enregistrer dans des tableaux de bord personnalisés pour la surveillance.

Étapes suivantes

En complément de cet atelier de programmation, faites ces exercices et découvrez d'autres ressources :