Logbasierte Messwerte für Smart Home

1. Hinweis

Wie im Codelab Fehlerbehebung im Smart-Home besprochen, veröffentlichen wir Messwerte und Protokolle für Ihre Smart-Home-Projekte. Anhand von Messwerten kannst du feststellen, wo deine Smart-Home-Aktion Probleme hat. Protokolle sind hilfreich, um diese Probleme genauer zu untersuchen.

848f483bfcd2997a.png

Neben den Messwerten, die wir für Ihr Projekt zur Verfügung stellen, können Sie mithilfe der logbasierten Messwerte der Google Cloud Platform auch Ihre eigenen Messwerte generieren. So können Sie bestimmte Muster in Ihren Logs überwachen und Qualitätsprobleme effektiv beheben.

Voraussetzungen

Aufgaben in diesem Lab

  • Effektive Abfragen schreiben, um Smart-Home-Fehlerprotokolle zu filtern
  • Logbasierte Messwerte erstellen, um Messwerte aus Abfragen zu generieren
  • Diagramme und Dashboards aus logbasierten Messwerten für das Monitoring erstellen

2. Mit Logs arbeiten

Wie im Artikel Fehlerbehebung im Smart-Home-Codelab bereits erläutert, ist die Arbeit mit Protokollen der Schlüssel für den Erfolg Ihres Projekts. Auf der Google Cloud Platform stehen Ihnen hervorragende Tools zur Überwachung und Analyse Ihrer Logs zur Verfügung. Mit dem Log-Explorer können Sie auf alle für Ihr Projekt verfügbaren Logs zugreifen.

Zugriff auf Logs

Der erste Schritt für den Zugriff auf Ihre Logs besteht darin, sich in der Google Cloud Platform anzumelden und Ihr Projekt auszuwählen. Rufen Sie über das seitliche Menü den Log-Explorer auf. Gehen Sie dazu zu Vorgänge > Logging > Log-Explorer Nach dem Öffnen des Tools sollten Sie folgende Ansicht sehen:

78982d8b6d19b827.png

Der Log-Explorer besteht aus zwei Hauptabschnitten: einem Abschnitt zum Schreiben Ihrer Abfragen oben (Query Builder) und einem Bereich zur Anzeige der übereinstimmenden Ergebnisse (Abfrageergebnisse).

Viele verschiedene Komponenten in Google schreiben standardmäßig Logs in Ihr Projekt. Wenn du die Protokolle aus deiner Smart-Home-Integration finden und damit arbeiten möchtest, musst du benutzerdefinierte Abfragen schreiben.

Abfragen schreiben

Logs werden in Projekten unter einem Ressourcentyp veröffentlicht. Jeder Ressourcentyp stellt eine andere Plattform innerhalb von Google dar. Logs aus der Smart-Home-Plattform sind für Ihr Projekt unter dem Ressourcentyp assistant_action_project verfügbar.

Außerdem wird allen Logs bei ihrer Erstellung ein Schweregrad zugewiesen. Bei Smart-Home-Protokollen verwenden wir die Ebene ERROR für Protokolle, die Fehler und Ausnahmen darstellen, und die Ebene DEBUG für alles andere.

Im folgenden Beispiel schreiben wir eine Abfrage zum Filtern von Logs, die nur von unserer Plattform stammen und Fehler darstellen:

753bfe72a9f8e959.png

Wenn Sie mit dem Schreiben der Abfrage fertig sind, klicken Sie auf die Schaltfläche Abfrage ausführen, um die Abfrage zu starten. Dadurch sollten Fehler auftreten, die von der Smart-Home-Integration verursacht werden:

3ef42da5a6c322e1.png

Wie Sie sehen, sind in der letzten Stunde einige Fehler aufgetreten. Jede Zeile steht für ein einzelnes Fehlerprotokoll. Sie können weiter auf die einzelnen Protokolle klicken und verschachtelte Felder maximieren, um die darin enthaltenen Informationen anzuzeigen.

Histogramm verwenden

Der Log-Explorer bietet eine nützliche Histogrammfunktion, mit der Sie die Zeitverteilung von Logs, die Ihrer Abfrage entsprechen, ansehen. Um das Histogramm zu aktivieren, klicken Sie oben rechts auf SEITENLAYOUT und dann auf das Kästchen Histogramm.

10eaf1d204decf3c.png

Nach der Aktivierung wird eine Verteilung der Logs angezeigt, die Ihrer Abfrage entsprechen:

dd3410e65a83cf5d.png

Wie Sie in der obigen Abbildung sehen können, liegen in der letzten Stunde mehrere Fehler vor. Sie scheinen um 13:45, 14:00 und 14:15 Uhr drei Cluster zu bilden. Das Histogramm kann Ihnen helfen, Muster zu erkennen, die schwer zu erkennen wären, indem nur die Zeitstempelwerte überprüft werden.

Im Moment unterscheidet die Abfrage nicht zwischen Protokollen und zeigt uns alle Fehler an, die von unserer Smart-Home-Integration verursacht werden. In vielen Fällen kann es sinnvoll sein, zwischen Fehlern zu unterscheiden, z. B. um Fehlermuster zu verfolgen, die von bestimmten Gerätetypen oder Merkmalen stammen. Dazu sehen wir uns an, wie erweiterte Abfragen geschrieben werden.

Erweiterte Abfragen

Wenn Sie ein Smart-Home-Ereignisprotokoll prüfen, sehen Sie verschiedene Felder, aus denen Sie Informationen abrufen können:

825c57c36800844e.png

action

  • trait:Targeting auf Geräteeigenschaften durch den Nutzer (z. B. OnOff, StartStop, Helligkeit)
  • actionType:Detaillierter Status des Traits (z. B. „An“, „Aus“, „Pause“, „Stopp“, „Fortsetzen“)

device

  • deviceType:Targeting auf den Gerätetyp nach Nutzer, z. B. Licht, Schalter oder Waschmaschine

status

  • isSuccess:Gibt an, ob das Ergebnis der Aktion als erfolgreich gilt (wahr / falsch)
  • statusType: Statuscode für das Aktionsergebnis (zeigt einen Fehlercode an, wenn das Ergebnis nicht erfolgreich war)
  • externalDebugString: Debug-String für die Aktion (beschreibt den Fehler ausführlich)

Andere Felder

Es gibt auch noch weitere Felder, aus denen Sie Informationen ableiten können:

  • requestId:Eine eindeutige ID für die Anfrage, die von Google generiert wurde.
  • executionType: Pfad, der von der Anfrage verwendet wird (gibt an, ob „Cloud“ oder „Local“)
  • latencyMsec: Empfundene Latenz für die Anfrage auf Google-Servern (in Millisekunden)
  • locale:Angabe, von welchem Sprache/Region-Paar die Anfrage gesendet wird (z. B. en-US, fr-FR)

Durch Verwendung des Trait-Felds aus der obigen Liste ändern wir unsere Abfrage so, dass sie nur Fehler enthält, die vom Trait OnOff stammen:

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

Nachdem die aktualisierte Abfrage ausgeführt wurde, identifiziert das System die Protokolle und zeigt das entsprechende Ergebnis an:

76176d7a41962341.png

Bisher haben wir alle Abfragen manuell durchgeführt. Auf diese Weise können Sie schnell den Fehlerstatus prüfen, aber nicht so sehr, um die Veränderungen der Fehlermuster im Laufe der Zeit zu überwachen. Um diesen Vorgang zu automatisieren und Daten aus längeren Zeiträumen zu erfassen, erstellen wir logbasierte Messwerte.

3. Logbasierte Messwerte

Wenn Sie die Anzahl der Logs zählen möchten, die Ihren Abfragen im Laufe der Zeit entsprechen, können Sie logbasierte Messwerte verwenden. So können Sie Muster in Ihren Logs erkennen und sich einen guten Einblick in die zugrunde liegenden Probleme verschaffen.

Logbasierten Messwert erstellen

Rufen Sie zum Erstellen eines logbasierten Messwerts Vorgänge > Logging > Logbasierte Messwerte Daraufhin wird eine Liste der logbasierten Messwerte angezeigt, die bereits für Ihr Projekt verfügbar sind. Nachdem Sie auf die Schaltfläche MESSWERT ERSTELLEN geklickt haben, wird der Bildschirm zur Erstellung logbasierter Messwerte angezeigt:

296af6e7d8dcf6cf.png

Es gibt zwei primäre Messwerttypen: Ein Zählermesswert zählt die Anzahl der Logs, die Ihrer Abfrage entsprechen. Ein Verteilungsmesswert verfolgt die zugrunde liegende Verteilung und ermöglicht statistische Vorgänge wie den Mittelwert, den Medianwert und das 95. Perzentil.

Scrollen Sie nach unten und sehen Sie einen Filterbereich, in dem Sie Ihre Abfrage eingeben können.

f7f2093fa1bce2ac.png

Wir fügen die Abfrage aus dem vorherigen Abschnitt in den Textbereich Filter erstellen ein.

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

Sie können auch auf die Schaltfläche LOGS VORSCHAU klicken, um eine Schnellansicht der früheren Logs aufzurufen, die Ihrem Filter entsprechen. Wenn Sie fertig sind, können Sie auf die Schaltfläche MESSWERT ERSTELLEN klicken, um mit dem nächsten Abschnitt fortzufahren.

Logbasierte Messwertdaten ansehen

Nachdem der logbasierte Messwert erstellt wurde, ist er auf der Seite „Logbasierte Messwerte“ im Bereich Benutzerdefinierte Messwerte verfügbar.

1b2c88c18533fbcd.png

Wählen Sie im Menü für den logbasierten Messwert (drei Punkte) die Option Im Metrics Explorer ansehen aus, um die im logbasierten Messwert erfassten Daten zu sehen:

54a836fdc3a666a3.png

Neue Fehler werden im logbasierten Messwert erfasst und im Metrics Explorer im Diagrammfenster angezeigt.

Monitoring über benutzerdefinierte Dashboards

Sobald der neue logbasierte Messwert wie vorgesehen funktioniert, ist es an der Zeit, diese Diagrammansicht in einem benutzerdefinierten Dashboard zu speichern. Klicken Sie dazu oben rechts im Metrics Explorer auf Save Chart (Diagramm speichern). Sie werden aufgefordert, dem Diagramm einen Namen zu geben und das Dashboard auszuwählen, in dem Sie die Datei speichern möchten:

52329085f841782e.png

Sobald wir das Diagramm in einem Dashboard gespeichert haben, können wir von dort ganz einfach darauf zugreifen. Die Liste der für Ihr Projekt verfügbaren Dashboards finden Sie unter Vorgänge > Monitoring > Dashboards:

44961e7cb3663341.png

Wir haben unser Diagramm in einem Dashboard mit dem Namen „Codelab Dashboard“ gespeichert. Wenn Sie sie öffnen, sehen Sie folgende Ansicht:

f7e025c27f30f996.png

Wie Sie sehen, wird hier das Diagramm mit dem logbasierten Messwert zusammen mit den neu erfassten Daten angezeigt. Smart-Home-Protokolle werden in Echtzeit in Ihrem Projekt veröffentlicht. Wenn ein neues Log verfügbar ist, wird es sofort im logbasierten Messwert berücksichtigt.

4. Glückwunsch

674c4f4392e98c1.png

Glückwunsch! Sie haben gelernt, wie Sie Ihre Abfragen in log-basierte Messwerte umwandeln und in benutzerdefinierten Dashboards für das Monitoring speichern können.

Weiteres Vorgehen

Probieren Sie die folgenden Übungen aus und nutzen Sie zusätzliche Ressourcen, die auf diesem Codelab aufbauen:

  • Im Leitfaden Verteilungsmesswerte erstellen erfahren Sie, wie Sie logbasierte Messwerte für numerische Felder wie die Latenz erstellen.
  • In der Beispielabfragebibliothek von Google Cloud finden Sie einige der komplexen Filter, die Sie für logbasierte Messwerte verwenden können.