1. Hinweis
Wie bereits im Codelab Fehlerbehebung im Smart Home behandelt, veröffentlichen wir Messwerte und Protokolle in Ihren Smart-Home-Projekten. Anhand von Messwerten kannst du feststellen, wo deine Smart-Home-Aktion Probleme hat. Die Protokolle sind für eine detaillierte Lösung dieser Probleme hilfreich.
Neben den Messwerten, die wir für Ihr Projekt zur Verfügung stellen, können Sie mit den logbasierten Messwerten der Google Cloud Platform auch eigene Messwerte generieren. So können Sie bestimmte Muster in Ihren Logs überwachen und Qualitätsprobleme effektiv beheben.
Voraussetzungen
- Funktioniert mit Smart Home
- Codelab zur Fehlerbehebung im Smart Home abschließen
Lerninhalte
- Effektive Abfragen zum Filtern von Smart-Home-Fehlerprotokollen schreiben
- Logbasierte Messwerte zum Generieren von Messwerten aus Ihren Abfragen erstellen
- Diagramme und Dashboards aus logbasierten Messwerten für das Monitoring erstellen
2. Mit Logs arbeiten
Wie wir bereits im Artikel Smart-Home-Codelab debuggen behandelt haben, ist die Arbeit mit Protokollen der Schlüssel für den Erfolg Ihres Projekts. Auf der Google Cloud Platform stehen Ihnen großartige Tools zum Überwachen und Analysieren Ihrer Logs zur Verfügung. Mit dem Log-Explorer können Sie auf alle für Ihr Projekt verfügbaren Logs zugreifen.
Auf Logs zugreifen
Um auf Ihre Protokolle zuzugreifen, müssen Sie sich zuerst bei der Google Cloud Platform anmelden und Ihr Projekt auswählen. Rufen Sie im seitlichen Menü den Log-Explorer auf. Klicken Sie dazu auf Vorgänge > Logging > Log-Explorer. Nach dem Öffnen des Tools sollten Sie folgende Ansicht sehen:
Der Log-Explorer besteht aus zwei Hauptabschnitten: einem Bereich, in den Ihre Abfragen oben geschrieben werden (Query Builder), und einem Bereich, in dem die übereinstimmenden Ergebnisse angezeigt werden (Abfrageergebnisse).
Viele verschiedene Komponenten in Google schreiben standardmäßig Logs in Ihr Projekt. Damit Sie die Protokolle finden und damit arbeiten können, die von Ihrer Smart-Home-Integration stammen, müssen Sie benutzerdefinierte Abfragen erstellen.
Abfragen schreiben
Logs werden unter einem Ressourcentyp in Projekten veröffentlicht. Jeder Ressourcentyp steht für eine andere Plattform innerhalb von Google. Protokolle von der Smart-Home-Plattform sind für Ihr Projekt unter dem Ressourcentyp assistant_action_project
verfügbar.
Außerdem wird allen Logs bei der Erstellung eine Wichtigkeitsstufe zugewiesen. Bei Smart-Home-Protokollen verwenden wir die Ebene ERROR
für Logs, die Fehler und Ausnahmen darstellen, und die DEBUG
-Ebene für alles andere.
Im folgenden Beispiel schreiben wir eine Abfrage zum Filtern von Logs, die ausschließlich von unserer Plattform stammen und Fehler darstellen:
Wenn Sie mit dem Schreiben der Abfrage fertig sind, klicken Sie auf die Schaltfläche Abfrage ausführen, um die Abfrage zu starten. Es sollten Fehler auftreten, die von Ihrer Smart-Home-Integration verursacht werden:
Wie Sie sehen, gibt es eine Reihe von Fehlern, die in der letzten Stunde zu verschiedenen Zeitpunkten aufgetreten sind. Jede Zeile steht für ein einzelnes Fehlerprotokoll. Sie können weiter auf die einzelnen Logs 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 sehen können, die Ihrer Abfrage entsprechen. Um das Histogramm zu aktivieren, klicken Sie oben rechts auf SEITENLAYOUT und dann auf Histogramm.
Nach der Aktivierung sehen Sie eine Verteilung der Logs, die Ihrer Abfrage entsprechen:
Wie Sie in der Abbildung oben sehen können, sind mehrere Fehler in der letzten Stunde aufgetreten. Sie bilden etwa zwischen 13:45, 14:00 und 14:15 Uhr drei Cluster. Das Histogramm kann Ihnen helfen, Muster zu erkennen, die schwer zu erkennen wären, indem Sie nur die Zeitstempelwerte überprüfen.
Im Moment unterscheidet die von uns verwendete Abfrage nicht zwischen Protokollen und zeigt uns alle Fehler an, die auf unsere Smart-Home-Integration zurückzuführen sind. In vielen Fällen möchten Sie möglicherweise zwischen Fehlern unterscheiden, z. B. um Fehlermuster zu verfolgen, die von bestimmten Gerätetypen oder Merkmalen stammen. Zu diesem Zweck schauen wir uns das Schreiben erweiterter Abfragen an.
Erweiterte Abfragen
Wenn Sie sich ein Smart-Home-Ereignisprotokoll ansehen, sehen Sie verschiedene Felder, aus denen Sie Informationen erfassen können:
action
trait
:Targeting auf Geräte-Trait durch den Nutzer (z. B. Ein/Aus, StartStop, Helligkeit)actionType
: Detaillierungsgrad des Merkmals (z. B. „Ein“, „Aus“, „Pause“, „Stopp“, „Fortsetzen“).
device
deviceType
:Targeting auf den Gerätetyp des Nutzers (z. B. Licht, Schalter, 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, falls die Aktion nicht erfolgreich war)externalDebugString
: Debug-String für die Aktion (detaillierte Beschreibung des Fehlers)
Andere Felder
Außerdem gibt es weitere Felder, aus denen Sie Informationen ableiten können:
requestId
: Eine eindeutige ID, die mit der Anfrage verknüpft ist (von Google generiert)executionType
: Pfad, der von der Anfrage verwendet wird (gibt an, ob Cloud oder lokal)latencyMsec
: Wahrgenommene Latenz der Anfrage auf Google-Servern (in ms)locale
:Aus welcher Sprache/Region die Anfrage gesendet wird (z. B. en-US, fr-FR)
Wenn wir das Trait-Feld aus der Liste oben verwenden, ändern wir unsere Abfrage so, dass nur Fehler berücksichtigt werden, die aus dem Trait OnOff stammen:
resource.type="assistant_action_project" AND severity=ERROR AND jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"
Nachdem wir unsere aktualisierte Abfrage ausgeführt haben, identifiziert das System die Protokolle und zeigt uns das entsprechende Ergebnis an:
Bisher haben wir alle unsere Abfragen manuell durchgeführt. Das ist eine gute Möglichkeit, den Status der Fehler schnell zu überprüfen, aber es geht nicht so sehr um die Verschiebung von Fehlermustern im Zeitverlauf. Um diesen Ablauf zu automatisieren und Daten aus längeren Zeiträumen zu erfassen, erstellen wir logbasierte Messwerte.
3. Logbasierte Messwerte
Wenn Sie die Anzahl der Logs ermitteln möchten, die im Laufe der Zeit Ihren Abfragen entsprechen, können Sie logbasierte Messwerte verwenden. So können Sie Muster und in Ihren Logs erkennen und aussagekräftige Informationen zu den zugrunde liegenden Problemen erhalten.
Logbasierten Messwert erstellen
Rufen Sie zum Erstellen eines logbasierten Messwerts Vorgänge > Logging > Logbasierte Messwerte auf. Dadurch wird die Liste der logbasierten Messwerte angezeigt, die bereits für Ihr Projekt verfügbar sind. Wenn Sie auf die Schaltfläche MESSWERT ERSTELLEN klicken, wird der Bildschirm zum Erstellen logbasierter Messwerte angezeigt:
Es gibt zwei Hauptmesswerttypen: Ein Zählermesswert zählt die Anzahl der Logs, die Ihrer Abfrage entsprechen. Ein Verteilungsmesswert erfasst die zugrunde liegende Verteilung und ermöglicht statistische Operationen wie Mittelwert, Medianwert und 95. Perzentil.
Wenn Sie nach unten scrollen, sehen Sie einen Filterbereich, in den Sie Ihre Abfrage eingeben können.
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 ANSEHEN klicken, um eine Schnellansicht der bisherigen Logs zu sehen, die Ihrem Filter entsprechen. Wenn Sie fertig sind, können Sie auf die Schaltfläche MESSWERT ERSTELLEN klicken und mit dem nächsten Abschnitt fortfahren.
Logbasierte Messwertdaten ansehen
Der logbasierte Messwert ist jetzt im Bereich Benutzerdefinierte Messwerte auf der Seite „Logbasierte Messwerte“ verfügbar.
Wählen Sie im Menü für den logbasierten Messwert (drei Punkte) die Option Im Metrics Explorer ansehen aus, um die entsprechenden Daten zu sehen:
Ein neuer Fehler wird in unserem logbasierten Messwert erfasst und im Diagrammfenster des Metrics Explorer angezeigt.
Monitoring über benutzerdefinierte Dashboards
Sobald wir feststellen, dass unser neuer logbasierter 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 die Schaltfläche Diagramm speichern. Daraufhin werden Sie aufgefordert, dem Diagramm einen Namen zu geben und das Dashboard auszuwählen, in dem Sie speichern möchten:
Sobald wir das Diagramm in einem Dashboard gespeichert haben, können wir von dort aus ganz einfach darauf zugreifen. Eine Liste der für Ihr Projekt verfügbaren Dashboards finden Sie unter Vorgänge > Monitoring > Dashboards.
Wir haben unser Diagramm in einem Dashboard namens „Codelab Dashboard“ gespeichert. Wenn du sie öffnest, wird folgende Ansicht angezeigt:
Das Diagramm für den logbasierten Messwert wird hier zusammen mit den neu erfassten Daten angezeigt. Smart-Home-Protokolle werden in Echtzeit für Ihr Projekt veröffentlicht. Wenn ein neues Log verfügbar ist, wird es sofort für den logbasierten Messwert gezählt.
4. Glückwunsch
Glückwunsch! Sie haben gelernt, wie Sie Ihre Abfragen in logbasierte Messwerte umwandeln und zu Monitoringzwecken in benutzerdefinierten Dashboards speichern.
Weiteres Vorgehen
Bauen Sie auf diesem Codelab auf und versuchen Sie es mit den folgenden Übungen und zusätzlichen Ressourcen:
- In der Anleitung 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.