1. Hinweis
Wie im Codelab zum Debuggen des Smart Home beschrieben, veröffentlichen wir Messwerte und Logs für Ihre Smart Home-Projekte. Mithilfe von Messwerten können Sie ermitteln, wo Probleme mit Ihrer Smart Home Action auftreten. Logs sind nützlich, wenn Sie diese Probleme genauer untersuchen möchten.

Neben den Messwerten, die wir für Ihr Projekt zur Verfügung stellen, können Sie auch eigene Messwerte mit den logbasierten Messwerten von Google Cloud generieren. So können Sie bestimmte Muster in Ihren Logs beobachten und Qualitätsprobleme effektiv beheben.
Vorbereitung
- Funktioniert mit Smart Home-Integration
- Codelab Smart Home-Geräte debuggen abgeschlossen
Lerninhalte
- Effektive Abfragen zum Filtern von Smart Home-Fehlerprotokollen schreiben
- Logbasierte Messwerte erstellen, um Messwerte aus Ihren Abfragen zu generieren
- Diagramme und Dashboards aus logbasierten Messwerten für die Überwachung erstellen
2. Mit Logs arbeiten
Wie wir im Codelab zum Debuggen von Smart Home kurz angesprochen haben, ist die Arbeit mit Logs entscheidend für den Erfolg Ihres Projekts. Google Cloud bietet hervorragende Tools zum Überwachen und Analysieren Ihrer Logs. Wenn Sie auf alle für Ihr Projekt verfügbaren Logs zugreifen möchten, können Sie den Log-Explorer verwenden.
Auf Logs zugreifen
Als Erstes müssen Sie sich in Google Cloud anmelden und Ihr Projekt auswählen, um auf Ihre Logs zuzugreifen. Rufen Sie den Log-Explorer über das Seitenmenü auf, indem Sie Vorgänge > Logging > Log-Explorer auswählen. Wenn Sie das Tool öffnen, sollten Sie diese Ansicht sehen:

Der Log-Explorer besteht aus zwei Hauptbereichen: einem Bereich zum Schreiben von Abfragen oben (Query Builder) und einem Bereich zum Anzeigen der übereinstimmenden Ergebnisse (Abfrageergebnisse).
Viele verschiedene Komponenten von Google schreiben standardmäßig Logs in Ihr Projekt. Wenn Sie die Logs Ihrer Smart-Home-Integration aufrufen und damit arbeiten möchten, müssen Sie benutzerdefinierte Abfragen schreiben.
Abfragen schreiben
Logs werden in Projekten unter einem Ressourcentyp veröffentlicht. Jeder Ressourcentyp steht für eine andere Plattform bei Google. Logs 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 ein Schweregrad zugewiesen. Bei Smart Home-Logs verwenden wir die Ebene ERROR für Logs, die Fehler und Ausnahmen darstellen, und die Ebene DEBUG für alle anderen Logs.
Im folgenden Beispiel schreiben wir eine Abfrage, um Logs zu filtern, die nur von unserer Plattform stammen und Fehler darstellen:

Wenn Sie die Abfrage fertig geschrieben haben, klicken Sie auf die Schaltfläche Abfrage ausführen, um die Abfrage zu starten. Dadurch sollten Fehler aus Ihrer Smart-Home-Integration angezeigt werden:

Wie Sie sehen, sind in der letzten Stunde zu verschiedenen Zeiten mehrere Fehler aufgetreten. Jede Zeile steht für ein einzelnes Fehlerprotokoll. Sie können auf die einzelnen Logs klicken und verschachtelte Felder maximieren, um die darin enthaltenen Informationen zu sehen.
Histogramm verwenden
Der Log-Explorer bietet ein nützliches Histogramm, mit dem Sie die Zeitverteilung von Logs sehen können, die Ihrer Abfrage entsprechen. Klicken Sie zum Aktivieren des Histogramms oben rechts auf SEITENLAYOUT und setzen Sie ein Häkchen bei Histogramm.

Nach der Aktivierung sehen Sie eine Verteilung der Logs, die Ihrer Abfrage entsprechen:

Wie Sie im obigen Bild sehen, haben wir mehrere Fehler, die über die letzte Stunde verteilt sind. Sie scheinen drei Cluster um 13:45, 14:00 und 14:15 Uhr zu bilden. Mithilfe eines Histogramms können Sie Muster erkennen, die sich nur schwer aus den Zeitstempelwerten ablesen lassen.
Derzeit wird in der verwendeten Abfrage nicht zwischen Logs unterschieden. Es werden alle Fehler aus unserer Smart-Home-Integration angezeigt. Es gibt viele Situationen, in denen Sie zwischen Fehlern unterscheiden möchten, z. B. um Fehlermuster zu erfassen, die von bestimmten Gerätetypen oder Attributen stammen. Dazu sehen wir uns an, wie erweiterte Abfragen erstellt werden.
Erweiterte Abfragen
Wenn Sie ein Smart Home-Ereignisprotokoll untersuchen, sehen Sie verschiedene Felder, aus denen Sie Informationen abrufen können:

action
trait:Das Gerätemerkmal, das vom Nutzer gesteuert werden soll (z. B. OnOff, StartStop, Brightness)actionType:Feingranularer Status des Merkmals (z. B. „Ein“, „Aus“, „Pausieren“, „Stoppen“, „Fortsetzen“)
device
deviceType:Ziel-Gerätetyp des Nutzers (z. B. Licht, Schalter, Waschmaschine)
status
isSuccess:Gibt an, ob das Ergebnis der Aktion als erfolgreich gilt (true / false).statusType:Statuscode für das Aktionsergebnis (gibt bei einem Fehler einen Fehlercode an)externalDebugString:Debug-String für die Aktion (beschreibt den Fehler im Detail)
Andere Felder
Es gibt auch zusätzliche Felder, aus denen Sie Informationen ableiten können:
requestId:Eine eindeutige ID, die der Anfrage zugeordnet ist (von Google generiert)executionType:Pfad, der von der Anfrage verwendet wird (gibt an, ob Cloud oder lokal)latencyMsec:Die wahrgenommene Latenz für die Anfrage auf Google-Servern (in Millisekunden)locale:Das Sprach-/Regionspaar, von dem die Anfrage gesendet wird (z. B. en-US, fr-FR)
Wenn wir das Attributfeld aus der obigen Liste verwenden, ändern wir unsere Abfrage so, dass nur Fehler aus dem Attribut OnOff berücksichtigt werden:
resource.type="assistant_action_project" AND severity=ERROR AND jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"
Nachdem wir die aktualisierte Abfrage ausgeführt haben, identifiziert das System die Logs und zeigt uns das entsprechende Ergebnis an:

Bisher haben wir alle unsere Anfragen manuell ausgeführt. So lässt sich der Status von Fehlern schnell prüfen, aber nicht so gut, um die Veränderungen bei Fehlermustern im Zeitverlauf zu beobachten. Um diesen Ablauf zu automatisieren und Daten über längere Zeiträume zu erfassen, erstellen wir logbasierte Messwerte.
3. Logbasierte Messwerte
Mit logbasierten Messwerten können Sie die Anzahl der Logs zählen, die im Zeitverlauf mit Ihren Abfragen übereinstimmen. So können Sie Muster in Ihren Logs erkennen und erhalten gute Einblicke in die zugrunde liegenden Probleme.
Logbasierten Messwert erstellen
Rufen Sie Operations > Logging > Logbasierte Messwerte auf, um einen logbasierten Messwert zu erstellen. Daraufhin 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 zur Erstellung logbasierter Messwerte angezeigt:

Es gibt zwei primäre Messwerttypen: Ein Zählermesswert gibt die Anzahl der Logs an, die mit Ihrer Abfrage übereinstimmen. Ein Verteilungs-Messwert erfasst die zugrunde liegende Verteilung und ermöglicht statistische Operationen wie Mittelwert, Median und 95. Perzentil.
Wenn Sie nach unten scrollen, sehen Sie einen Filterbereich, in den Sie Ihre Anfrage 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 VORSCHAU VON LOGS klicken, um eine Schnellansicht der bisherigen Logs aufzurufen, die Ihrem Filter entsprechen. Wenn Sie fertig sind, können Sie auf die Schaltfläche METRIC ERSTELLEN klicken und mit dem nächsten Abschnitt fortfahren.
Daten logbasierter Messwerte ansehen
Nachdem der logbasierte Messwert erstellt wurde, ist er auf der Seite „Logbasierte Messwerte“ im Abschnitt Benutzerdefinierte Messwerte verfügbar.

Wählen Sie im Menü des logbasierten Messwerts (3 Punkte) die Option In Metrics Explorer ansehen aus, um die im logbasierten Messwert erfassten Daten aufzurufen:

Wenn ein neuer Fehler auftritt, wird er von unserem logbasierten Messwert erfasst und im Diagrammfenster im Metrics Explorer angezeigt.
Monitoring über benutzerdefinierte Dashboards
Sobald wir sehen, dass der neue logbasierte Messwert wie vorgesehen funktioniert, können wir diese Diagrammansicht in einem benutzerdefinierten Dashboard speichern. Klicken Sie dazu rechts oben im Metrics Explorer auf die Schaltfläche Diagramm speichern. Daraufhin werden Sie aufgefordert, das Diagramm zu benennen und das Dashboard auszuwählen, in dem es gespeichert werden soll:

Sobald wir das Diagramm in einem Dashboard gespeichert haben, können wir ganz einfach darauf zugreifen. Die Liste der in Ihrem Projekt verfügbaren Dashboards finden Sie unter Operations > Monitoring > Dashboards.

Wir haben unser Diagramm in einem Dashboard namens „Codelab Dashboard“ gespeichert. Wenn Sie es öffnen, wird die folgende Ansicht angezeigt:

Das Diagramm für den logbasierten Messwert wird hier zusammen mit den neu erhobenen Daten angezeigt. Smart-Home-Logs werden in Echtzeit in Ihrem Projekt veröffentlicht. Wenn ein neues Log verfügbar ist, wird es sofort in Ihrem logbasierten Messwert berücksichtigt.
4. Glückwunsch

Glückwunsch! Sie haben gelernt, wie Sie Ihre Abfragen in logbasierte Messwerte umwandeln und zur Überwachung in benutzerdefinierten Dashboards speichern.
Nächste Schritte
Aufbauend auf diesem Codelab können Sie die folgenden Übungen ausprobieren und zusätzliche Ressourcen nutzen:
- Im Leitfaden Verteilungsmesswerte erstellen erfahren Sie, wie Sie logbasierte Messwerte für numerische Felder wie die Latenz erstellen.
- In der von Google Cloud bereitgestellten Beispielabfragebibliothek finden Sie einige der komplexen Filter, die Sie für logbasierte Messwerte verwenden können.