Google Cloud udostępnia narzędzia do monitorowania niezawodności projektów w Google Cloud Monitoring i debugowania problemów z logami błędów Google Cloud Logging. Gdy podczas realizacji intencji użytkownika wystąpi błąd, potok Google Home Analytics rejestruje ten błąd w danych i publikuje dziennik błędów w logach projektu.
Rozwiązywanie problemów z błędami jest możliwe na 2 sposoby:
- Monitoruj stan swoich projektów za pomocą wskaźników dotyczących inteligentnego domu.
- Zbadaj problemy, sprawdzając szczegółowe opisy błędów w logach błędów.
Błędy monitorowania
Aby uzyskać dostęp do wskaźników projektu, możesz użyć elementów Google Cloud Monitoring dashboard. Oto kilka kluczowych wykresów, które są szczególnie przydatne do monitorowania jakości i debugowania:
- Wykres Wskaźnik sukcesu to pierwszy wykres, od którego zaczyna się monitorowanie niezawodności projektów. Spadki na tym wykresie mogą wskazywać na awarie w przypadku niektórych lub wszystkich użytkowników. Zalecamy uważne monitorowanie tego wykresu pod kątem ewentualnych nieprawidłowości po każdej zmianie lub aktualizacji projektu.
- Wykres 95 centyla czasu oczekiwania to ważny wskaźnik skuteczności działania inteligentnego domu w przypadku użytkowników. Nagłe wahania na tym wykresie mogą wskazywać, że Twoje systemy mogą nie nadążać za żądaniami. Zalecamy okresowe sprawdzanie tego wykresu w celu wykrycia nieoczekiwanych zachowań.
- Wykresy z zestawieniem błędów najbardziej przydają się do rozwiązywania problemów z integracją. W przypadku każdego błędu wyróżnionego na wykresie odsetka powodzenia wyświetlany jest kod błędu. W tabeli poniżej znajdziesz błędy zgłoszone przez interfejs Google Home platform oraz sposoby rozwiązywania tych problemów.
Kody błędów platformy
Oto kilka typowych kodów błędów, które możesz zobaczyć w logach projektu, aby zidentyfikować problemy wykryte przez interfejs Google Home platform. W tabeli poniżej znajdziesz informacje na temat rozwiązywania problemów.
Kod błędu | Opis |
---|---|
BACKEND_FAILURE_URL_ERROR |
Google otrzymał z Twojej usługi kod błędu HTTP 4xx inny niż 401.
Użyj usługi requestId w usłudze GCP Logging, aby sprawdzić logi usługi inteligentnego domu.
|
BACKEND_FAILURE_URL_TIMEOUT |
Podczas próby nawiązania połączenia z Twoją usługą upłynął limit czasu żądania Google.
Sprawdź, czy Twoja usługa jest online, akceptuje połączenia i czy nie przekroczyła limitu pojemności. Sprawdź też, czy urządzenie docelowe jest włączone, online i zsynchronizowane. |
BACKEND_FAILURE_URL_UNREACHABLE |
Google otrzymało z Twojej usługi kod błędu HTTP 5xx.
Użyj usługi requestId w usłudze GCP Logging, aby sprawdzić logi usługi inteligentnego domu.
|
DEVICE_NOT_FOUND |
Urządzenie nie istnieje po stronie usługi partnera.
Zwykle oznacza to błąd synchronizacji danych lub warunek wyścigu. |
GAL_BAD_3P_RESPONSE |
Google nie może przeanalizować odpowiedzi z usługi łączenia kont z powodu nieprawidłowego formatu lub wartości w ładunku.
Użyj usługi requestId w usłudze GCP Logging, aby sprawdzić logi błędów w usłudze łączenia kont.
|
GAL_INTERNAL |
Podczas próby pobrania tokena dostępu wystąpił błąd wewnętrzny Google.
Jeśli zauważysz wzrost liczby tych błędów w usłudze GCP Logging, skontaktuj się z nami, aby uzyskać więcej informacji. |
GAL_INVALID_ARGUMENT |
Podczas próby pobrania tokena dostępu wystąpił błąd wewnętrzny Google.
Jeśli zauważysz wzrost liczby tych błędów w usłudze GCP Logging, skontaktuj się z nami, aby uzyskać więcej informacji. |
GAL_NOT_FOUND |
Tokeny dostępu użytkownika i tokeny odświeżania przechowywane w Google zostaną unieważnione i nie można ich już odświeżać. Użytkownik musi ponownie połączyć swoje konto, aby nadal korzystać z Twojej usługi.
Jeśli zauważysz wzrost liczby tych błędów w usłudze GCP Logging, skontaktuj się z nami, aby uzyskać więcej informacji. |
GAL_PERMISSION_DENIED |
Gdy udostępnianie tokenów nie jest autoryzowane, wystąpił błąd wewnętrzny Google.
Jeśli zauważysz wzrost liczby tych błędów w usłudze GCP Logging, skontaktuj się z nami, aby uzyskać więcej informacji. |
GAL_REFRESH_IN_PROGRESS |
Token dostępu użytkownika wygasł. Trwa już inna próba jego odświeżenia.
To nie jest problem i nie musisz nic robić. |
INVALID_AUTH_TOKEN |
Google otrzymało z Twojej usługi kod błędu HTTP 401.
Token dostępu nie wygasł, ale usługa go unieważniła. Użyj usługi requestId w usłudze GCP Logging, aby sprawdzić logi usług inteligentnego domu.
|
INVALID_JSON |
Odpowiedzi JSON nie można przeanalizować ani zrozumieć.
Sprawdź strukturę odpowiedzi JSON pod kątem nieprawidłowej składni, na przykład przez niezgodne nawiasy, brakujące przecinki czy nieprawidłowe znaki. |
OPEN_AUTH_FAILURE |
Token dostępu użytkownika stracił ważność i Google nie może go odświeżyć lub otrzymał kod błędu HTTP 401 z Twojej usługi.
Jeśli zauważysz wzrost częstotliwości występowania tego kodu, sprawdź, czy nie występuje też zwiększona liczba błędów związanych z intencjami inteligentnego domu lub żądaniami tokena odświeżania. |
PARTNER_RESPONSE_INVALID_ERROR_CODE |
Odpowiedź wskazuje nierozpoznany kod błędu.
Jeśli odpowiedź na żądanie wskazuje błąd, użyj kodu podanego w obsługiwanych kodach błędów. |
PARTNER_RESPONSE_INVALID_PAYLOAD |
Pola odpowiedzi payload nie można przeanalizować jako obiektu JSON.
Sprawdź, czy pole ładunku w odpowiedzi żądania ma pasujące nawiasy i ma prawidłową strukturę pola JSON. |
PARTNER_RESPONSE_INVALID_STATUS |
Odpowiedź nie wskazuje stanu lub wskazuje nieprawidłowy.
Odpowiedzi na żądania realizacji intencji powinny wskazywać stan o wartości SUCCESS, OFFLINE, ERROR, EXCEPTIONS . Dowiedz się więcej o
obsłudze błędów i wyjątków.
|
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES |
W odpowiedzi brakuje co najmniej 1 intencji występującej w żądaniu.
Sprawdź, czy odpowiedź na wykonanie ma prawidłową strukturę i czy w odpowiedzi znajdują się wyniki dotyczące wszystkich intencji z żądania. |
PARTNER_RESPONSE_MISSING_DEVICE |
W odpowiedzi brakuje co najmniej jednego urządzenia obecnego w żądaniu.
Sprawdź, czy odpowiedź na wykonanie ma prawidłową strukturę i czy w odpowiedzi znajdują się wszystkie identyfikatory urządzeń z żądania. |
PARTNER_RESPONSE_MISSING_PAYLOAD |
Odpowiedź nie zawiera pola payload .
Pamiętaj, aby w odpowiedzi na żądanie uwzględnić pole ładunku. Dowiedz się więcej o tym, jak prawidłowo utworzyć odpowiedź wykonania. |
PARTNER_RESPONSE_NOT_OBJECT |
Nie można przeanalizować odpowiedzi jako obiektu JSON.
Sprawdź, czy we wszystkich polach odpowiedzi na żądanie nie występują niezamierzone znaki, niepasujące nawiasy i błędy formatowania. Niektóre znaki Unicode mogą być nieobsługiwane. Sprawdź też, czy odpowiedź jest poprawnie uporządkowana jako obiekt JSON. |
PROTOCOL_ERROR |
Niepowodzenie przetwarzania żądania.
Użyj usługi requestId w usłudze Google Cloud Logging, aby sprawdzić logi usługi inteligentnego domu.
|
RESPONSE_TIMEOUT |
Podczas oczekiwania na odpowiedź upłynął limit czasu żądania.
Czas oczekiwania na wysłanie odpowiedzi to 9 sekund od wysłania żądania. Pamiętaj, aby odpowiedzieć w tym czasie. |
RESPONSE_UNAVAILABLE |
Nie otrzymano odpowiedzi lub odpowiedź nie wskazuje stanu.
Odpowiedzi na żądania dotyczące realizacji intencji powinny być uporządkowane zgodnie z dokumentacją inteligentnego domu i wskazać stan. |
TRANSIENT_ERROR |
Przejściowy błąd to błąd, który zniknie samoistnie.
Zwykle te błędy mają postać połączenia z urządzeniem lub usługą. Także jeśli nie można nawiązać nowych połączeń z serwerem. |
Dzienniki wyszukiwania
Gdy nauczysz się już monitorować integracje za pomocą wskaźników, następnym krokiem będzie rozwiązywanie konkretnych błędów przy użyciu narzędzia Cloud Logging. Log błędów to wpis w formacie JSON z polami zawierającymi przydatne informacje, takie jak godzina, kod błędu i szczegóły dotyczące źródłowej intencji inteligentnego domu.
W Google Cloud jest kilka systemów, które przez cały czas wysyłają logi do Twojego projektu. Aby filtrować logi, musisz tworzyć zapytania i znajdować te, które są Ci potrzebne. Zapytania mogą być oparte na zakresie czasowym, zasobach, wadze logów lub wpisach niestandardowych.

Przyciski zapytania mogą Ci pomóc w tworzeniu filtrów niestandardowych.

Aby określić Zakres czasowy, kliknij przycisk wyboru zakresu czasu
i wybierz jedną z dostępnych opcji. Spowoduje to przefiltrowanie logów i wyświetlenie tych, które pochodzą w wybranym przedziale czasu.Aby określić Zasób, kliknij menu Zasób, a potem wybierz Google Assistant Action Project. Spowoduje to dodanie w zapytaniu filtra, który będzie wyświetlać logi pochodzące z Twojego projektu.
Za pomocą przycisku Waga możesz filtrować według poziomów logowania Alarmowe, Informacje, Debugowanie i innych poziomów ważności.
Wpisy niestandardowe możesz też wpisywać w polu Zapytanie w Logs Explorer. Mechanizm zapytań używany przez to pole obsługuje zarówno zapytania podstawowe, takie jak dopasowywanie ciągów znaków, jak i bardziej zaawansowane typy zapytań, w tym porównania (<, >=, !=
) i operatory logiczne (AND, OR, NOT
).
Na przykład ten niestandardowy wpis zwróci błędy pochodzące z urządzenia typu LIGHT
:
resource.type = "assistant_action_project" AND severity = ERROR AND jsonPayload.executionLog.executionResults.actionResults.device.deviceType = "LIGHT"
W bibliotece zapytań znajdziesz więcej przykładów skutecznego wysyłania zapytań do logów.
Testowanie poprawek
Gdy zidentyfikujesz błędy i zastosujesz aktualizacje w celu ich usunięcia, zalecamy dokładne przetestowanie poprawek za pomocą narzędzia Google Home Test Suite. Udostępniamy przewodnik użytkownika, który wyjaśnia, jak używać narzędzia Test Suite, z którego dowiesz się, jak skutecznie testować zmiany.
Materiały szkoleniowe
Ten dokument zawiera informacje o tym, jak rozwiązać problemy z działaniami w inteligentnym domu. Możesz też zapoznać się z naszymi ćwiczeniami z programowania, aby dowiedzieć się więcej o debugowaniu:
- Ćwiczenie z programowania dotyczące inteligentnego domu: krótki przewodnik po debugowaniu integracji inteligentnego domu z chmurą.
- Debugowanie lokalnego domu z programowania: Krótki przewodnik po debugowaniu integracji lokalnej z inteligentnym domem.