Integrationsfehler beheben

Cloud-zu-Cloud    Matter

Google Cloud bietet Ihnen die Tools, mit denen Sie die Zuverlässigkeit Ihrer Projekte mit Google Cloud Monitoring überwachen und Fehler mit Google Cloud Logging-Fehlerlogs beheben können. Wenn bei der Erfüllung von Nutzerabsichten ein Fehler auftritt, zeichnet die Google Home Analytics-Pipeline diesen Fehler in Ihren Messwerten auf und veröffentlicht ein Fehlerlog in Ihren Projektlogs.

Zur Fehlerbehebung sind zwei Schritte erforderlich:

  1. Behalte den Status deiner Projekte mit Smart-Home-Messwerten im Blick.
  2. Untersuchen Sie Probleme, indem Sie sich die detaillierten Fehlerbeschreibungen in den Fehlerlogs ansehen.

Der Vorgang ist für die lokale Einbindung mithilfe von Local Home SDK ähnlich. Sobald Sie den Fehlerbehebungsablauf gemeistert haben, können Sie einfach zwischen Messwerten und Logs hin- und herwechseln, um Einblicke in Ihre Fehler zu erhalten.

Monitoringfehler

Mit Google Cloud Monitoring dashboards können Sie auf Ihre Projektmesswerte zugreifen. Es gibt einige wichtige Diagramme, die für das Monitoring der Qualität und die Fehlerbehebung besonders nützlich sind:

  • Das Diagramm Success Rate (Erfolgsquote) ist das erste Diagramm, ab dem Sie die Zuverlässigkeit Ihrer Projekte überwachen. Einbrüche in diesem Diagramm können auf einen Ausfall für einen Teil oder die gesamte Nutzerbasis hinweisen. Wir empfehlen, dieses Diagramm nach jeder Änderung oder Aktualisierung Ihres Projekts genau auf Unregelmäßigkeiten zu überwachen.
  • Das Diagramm zur Latenz des 95. Perzentils ist ein wichtiger Indikator für die Leistung deiner Smart-Home-Aktion für deine Nutzer. Plötzliche Schwankungen in diesem Diagramm können darauf hindeuten, dass Ihre Systeme den Anfragen nicht nachkommen können. Es empfiehlt sich, dieses Diagramm regelmäßig zu prüfen, um unerwartetes Verhalten zu beobachten.
  • Die Diagramme zur Fehleraufschlüsselung sind am hilfreichsten bei der Fehlerbehebung in Ihren Integrationen. Für jeden Fehler, der im Diagramm für den Erfolgsprozentsatz hervorgehoben ist, wird in der Fehleraufschlüsselung ein Fehlercode angezeigt. In der folgenden Tabelle sind die von Google Home platform gekennzeichneten Fehler und Informationen zu ihrer Fehlerbehebung aufgeführt.

Plattformfehlercodes

Im Folgenden finden Sie einige häufige Fehlercodes, die in Ihren Projektlogs angezeigt werden können, um von Google Home platform erfasste Probleme zu identifizieren. Informationen zur Fehlerbehebung finden Sie in der folgenden Tabelle.

Fehlercode Beschreibung
BACKEND_FAILURE_URL_ERROR Google hat von Ihrem Dienst einen anderen HTTP-Fehlercode 4xx als 401 erhalten.

Verwenden Sie requestId in GCP Logging, um Ihre Smart-Home-Dienstlogs zu prüfen.
BACKEND_FAILURE_URL_TIMEOUT Bei der Anfrage von Google kam es zu einer Zeitüberschreitung, als Sie versucht haben, Ihren Dienst zu erreichen.

Prüfen Sie, ob Ihr Dienst online ist, Verbindungen akzeptiert und nicht überlastet ist. Prüfen Sie außerdem, ob das Zielgerät eingeschaltet, online und synchronisiert ist.
BACKEND_FAILURE_URL_UNREACHABLE Google hat von Ihrem Dienst einen HTTP-Fehlercode 5xx erhalten.

Verwenden Sie requestId in GCP Logging, um Ihre Smart-Home-Dienstlogs zu prüfen.
DEVICE_NOT_FOUND Das Gerät ist beim Partnerdienst nicht vorhanden.

Dies weist normalerweise auf einen Fehler bei der Datensynchronisierung oder eine Race-Bedingung hin.
GAL_BAD_3P_RESPONSE Google kann die Antwort deines Kontoverknüpfungsdienstes nicht parsen, da das Format oder die Werte in der Nutzlast ungültig sind.

Verwenden Sie requestId in GCP Logging, um Fehlerlogs in Ihrem Kontoverknüpfungsdienst zu prüfen.
GAL_INTERNAL Beim Abrufen eines Zugriffstokens ist ein interner Google-Fehler aufgetreten.

Wenn Sie eine erhöhte Fehlerrate in GCP Logging feststellen, kontaktieren Sie uns für weitere Informationen.
GAL_INVALID_ARGUMENT Beim Abrufen eines Zugriffstokens ist ein interner Google-Fehler aufgetreten.

Wenn Sie eine erhöhte Fehlerrate in GCP Logging feststellen, kontaktieren Sie uns für weitere Informationen.
GAL_NOT_FOUND Die in Google gespeicherten Zugriffstokens und Aktualisierungstokens des Nutzers werden ungültig und können nicht mehr aktualisiert werden. Der Nutzer muss sein Konto neu verknüpfen, um Ihren Dienst weiterhin verwenden zu können.

Wenn Sie eine erhöhte Fehlerrate in GCP Logging feststellen, kontaktieren Sie uns für weitere Informationen.
GAL_PERMISSION_DENIED Ein interner Google-Fehler ist aufgetreten, weil die Tokenfreigabe nicht autorisiert ist.

Wenn Sie eine erhöhte Fehlerrate in GCP Logging feststellen, kontaktieren Sie uns für weitere Informationen.
GAL_REFRESH_IN_PROGRESS Das Zugriffstoken des Nutzers ist abgelaufen und ein weiterer gleichzeitiger Versuch, es zu aktualisieren, wird bereits ausgeführt.

Dies ist kein Problem und Sie müssen nichts unternehmen.
INVALID_AUTH_TOKEN Google hat von Ihrem Dienst den HTTP-Fehlercode 401 erhalten.

Das Zugriffstoken ist nicht abgelaufen, aber Ihr Dienst hat es ungültig gemacht. Verwenden Sie requestId in GCP Logging, um Ihre Smart-Home-Dienstlogs zu prüfen.
INVALID_JSON Die JSON-Antwort kann nicht geparst oder verstanden werden.

Prüfen Sie die Struktur Ihrer JSON-Antwort auf ungültige Syntax, z. B. nicht übereinstimmende Klammern, fehlende Kommas oder ungültige Zeichen.
OPEN_AUTH_FAILURE Das Zugriffstoken des Nutzers ist abgelaufen und Google kann es nicht aktualisieren oder Google hat von Ihrem Dienst den HTTP-Fehlercode 401 erhalten.

Wenn du eine erhöhte Rate dieses Codes feststellst, solltest du prüfen, ob auch eine erhöhte Fehlerrate im Zusammenhang mit Smart-Home-Intents oder Anfragen von Aktualisierungstokens auftritt.
PARTNER_RESPONSE_INVALID_ERROR_CODE Die Antwort zeigt einen unbekannten Fehlercode an.

Wenn Ihre Antwort auf einen Fehler verweist, verwenden Sie einen Fehlercode unserer unterstützten Fehlercodes.
PARTNER_RESPONSE_INVALID_PAYLOAD Das Antwortfeld payload kann nicht als JSON-Objekt geparst werden.

Prüfen Sie, ob das Nutzlastfeld in Ihrer Anfrageantwort übereinstimmende Klammern hat und korrekt als JSON-Feld strukturiert ist.
PARTNER_RESPONSE_INVALID_STATUS Die Antwort gibt keinen oder einen falschen Status an.

Antworten auf Anfragen zur Intent-Auftragsausführung sollten entweder den Status SUCCESS, OFFLINE, ERROR, EXCEPTIONS enthalten. Weitere Informationen zum Umgang mit Fehlern und Ausnahmen finden Sie hier.
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES Mindestens ein in der Anfrage vorhandener Intent fehlt in der Antwort.

Prüfen Sie, ob die Ausführungsantwort richtig strukturiert ist und ob die Ergebnisse für alle Intents der Anfrage in der Antwort vorhanden sind.
PARTNER_RESPONSE_MISSING_DEVICE Ein oder mehrere in der Anfrage vorhandene Geräte fehlen in der Antwort.

Prüfen Sie, ob die Ausführungsantwort richtig strukturiert ist und alle Geräte-IDs aus der Anfrage in der Antwort enthalten sind.
PARTNER_RESPONSE_MISSING_PAYLOAD Die Antwort enthält kein payload-Feld.

Achten Sie darauf, in Ihrer Antwort auf die Anfrage ein Nutzlastfeld anzugeben. Weitere Informationen zum korrekten Erstellen einer Ausführungsantwort
PARTNER_RESPONSE_NOT_OBJECT Die Antwort kann nicht als JSON-Objekt geparst werden.

Prüfen Sie alle Felder in der Anfrageantwort auf unbeabsichtigte Zeichen, nicht übereinstimmende Klammern oder Formatierungsfehler. Einige Unicode-Zeichen werden möglicherweise nicht unterstützt. Achte außerdem darauf, dass deine Antwort korrekt als JSON-Objekt strukturiert ist.
PROTOCOL_ERROR Fehler beim Verarbeiten der Anfrage.

Verwenden Sie requestId in Google Cloud Logging, um Ihre Smart-Home-Dienstlogs zu prüfen.
RESPONSE_TIMEOUT Zeitüberschreitung bei der Anfrage, während auf die Antwort gewartet wurde.

Die Zeitüberschreitung beim Senden einer Antwort beträgt 9 Sekunden nach dem Senden der Anfrage. Achten Sie darauf, innerhalb dieser Frist eine Antwort zu senden.
RESPONSE_UNAVAILABLE Es wird keine Antwort empfangen oder die Antwort gibt keinen Status an.

Antworten auf Anfragen zur Auftragsausführung mit Intents sollten gemäß der Smart-Home-Dokumentation strukturiert sein und den Status angeben.
TRANSIENT_ERROR Ein vorübergehender Fehler ist ein Fehler, der von selbst behoben wird.

In den meisten Fällen entstehen diese Fehler durch eine Verbindung zu einem unterbrochenen Gerät oder Dienst. Auch wenn keine neuen Verbindungen zu einem Server hergestellt werden können.

Suchprotokolle

Sobald Sie sich mit dem Monitoring Ihrer Integrationen mithilfe von Messwerten vertraut gemacht haben, besteht der nächste Schritt darin, bestimmte Fehler mit Cloud Logging zu beheben. Ein Fehlerlog ist ein JSON-ähnlicher Eintrag mit Feldern, die nützliche Informationen wie Uhrzeit, Fehlercode und Details zum ursprünglichen Smart-Home-Intent enthalten.

In Google Cloud gibt es mehrere Systeme, die jederzeit Logs an Ihr Projekt senden. Sie müssen Abfragen schreiben, um die Logs zu filtern und die gewünschten Abfragen zu finden. Abfragen können auf einem Zeitraum, einer Ressource, einem Log-Schweregrad oder benutzerdefinierten Einträgen basieren.

Cloud-Logs abfragen

Mithilfe der Abfrageschaltflächen können Sie Ihre benutzerdefinierten Filter erstellen.

Cloud-Logabfragen erstellen

Wenn Sie einen Zeitraum festlegen möchten, klicken Sie auf die Schaltfläche zur Zeitraumauswahl und wählen Sie eine der verfügbaren Optionen aus. Dadurch werden die Logs gefiltert und nur die Logs angezeigt, die aus dem ausgewählten Zeitraum stammen.

Klicken Sie zum Angeben einer Ressource auf das Drop-down-Menü Ressource und wählen Sie Google Assistant Action Project aus. Dadurch wird der Abfrage ein Filter hinzugefügt, mit dem Logs angezeigt werden, die aus Ihrem Projekt stammen.

Über die Schaltfläche Schweregrad können Sie nach Notfall, Info, Fehlerbehebung und anderen Schweregrad-Logebenen filtern.

Sie können auch das Abfragefeld im Logs Explorer verwenden, um benutzerdefinierte Einträge einzugeben. Die von diesem Feld verwendete Abfrage-Engine unterstützt sowohl einfache Abfragen wie den Stringabgleich als auch komplexere Abfragetypen, einschließlich Vergleicher (<, >=, !=) und boolesche Operatoren (AND, OR, NOT).

Der benutzerdefinierte Eintrag unten würde beispielsweise Fehler zurückgeben, die auf den Gerätetyp LIGHT zurückzuführen sind:

resource.type = "assistant_action_project" AND severity = ERROR AND jsonPayload.executionLog.executionResults.actionResults.device.deviceType = "LIGHT"

Weitere Beispiele für ein effektives Abfragen von Logs finden Sie in der Abfragebibliothek.

Fehlerkorrekturen beim Testen

Nachdem Sie Fehler gefunden und Aktualisierungen angewendet haben, um sie zu beheben, empfehlen wir, Ihre Korrekturen gründlich mit Google Home Test Suite zu testen. In unserem Nutzerhandbuch zur Verwendung von Test Suite wirst du durch das effektive Testen deiner Änderungen geführt.

Lernmaterialien

In diesem Dokument werden die Schritte zur Fehlerbehebung bei deiner Smart-Home-Aktion beschrieben. Weitere Informationen zum Debugging finden Sie auch in unseren Codelabs: