Google Cloud udostępnia narzędzia do monitorowania niezawodności projektów z wykorzystaniem Google Cloud Monitoring i debugowania problemów za pomocą logów 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 Twoich wskaźnikach i publikuje dziennik błędów w logach projektu.
Rozwiązywanie problemów z błędami odbywa się na 2 sposoby:
- Monitoruj stan swoich projektów za pomocą wskaźników dotyczących inteligentnego domu.
- Badaj 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ć Google Cloud Monitoring dashboard. Poniżej znajdziesz 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 należy zacząć monitorowanie niezawodności projektów. Spadki na tym wykresie mogą wskazywać na przerwę w działaniu usługi w przypadku części lub całości 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 centyl 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, aby zaobserwować ewentualne nieoczekiwane zachowanie.
- Wykresy z zestawieniem błędów najbardziej przydatne do rozwiązywania problemów z integracją. W przypadku każdego błędu wyszczególnionego na wykresie procentowym sukcesu w zestawieniu błędów wyświetlany jest kod błędu. W tabeli poniżej możesz sprawdzić błędy oznaczone przez interfejs Google Home platform i sposoby ich rozwiązywania.
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 Google Home platform. W poniższej tabeli 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 usługą upłynął limit czasu żądania Google.
Sprawdź, czy usługa jest online, akceptuje połączenia i nie przekracza limitu. Sprawdź też, czy urządzenie docelowe jest włączone, online i zsynchronizowane. |
BACKEND_FAILURE_URL_UNREACHABLE |
Firma Google otrzymała 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 niepowodzenie 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 requestId w 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 w GCP Logging widzisz wzrost liczby tych błędów, 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 w GCP Logging widzisz wzrost liczby tych błędów, 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 są 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 w GCP Logging widzisz wzrost liczby tych błędów, 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 w GCP Logging widzisz wzrost liczby tych błędów, 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.
Nie jest to 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. Aby sprawdzić logi usługi inteligentnego domu, użyj usługi requestId w usłudze GCP Logging.
|
INVALID_JSON |
Odpowiedzi JSON nie można przeanalizować ani zrozumieć.
Sprawdź strukturę odpowiedzi JSON pod kątem nieprawidłowej składni, takiej jak niezgodność nawiasów, 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 Google otrzymał kod błędu HTTP 401 z Twojej usługi.
Jeśli zauważysz wzrost liczby tego kodu, sprawdź, czy 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ź zawiera 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 na żądanie ma pasujące nawiasy i czy ma prawidłową strukturę jak pole 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 podanej 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 1 urządzenia uwzględnionego 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 dodać pole ładunku. Dowiedz się więcej o tym, jak prawidłowo utworzyć odpowiedź wykonania. |
PARTNER_RESPONSE_NOT_OBJECT |
Odpowiedzi nie można przeanalizować jako obiektu JSON.
Sprawdź, czy wszystkie pola w odpowiedzi na żądanie zawierają niezamierzone znaki, nawiasy kwadratowe oraz błędy formatowania. Niektóre znaki Unicode mogą być nieobsługiwane. Sprawdź też, czy odpowiedź ma prawidłową strukturę jako obiekt JSON. |
PROTOCOL_ERROR |
Przetwarzanie żądania nie powiodło się.
Aby sprawdzić logi usługi inteligentnego domu, użyj requestId w Google Cloud Logging.
|
RESPONSE_TIMEOUT |
Podczas oczekiwania na odpowiedź żądanie przekroczyło limit czasu.
Czas oczekiwania na odpowiedź wynosi 9 sekund od momentu wysłania żądania. Pamiętaj, aby wysłać odpowiedź przed upływem tego czasu. |
RESPONSE_UNAVAILABLE |
Nie otrzymano odpowiedzi lub odpowiedź nie wskazuje stanu.
Odpowiedzi na żądania realizacji intencji powinny być uporządkowane zgodnie z dokumentacją inteligentnego domu i muszą wskazywać stan. |
TRANSIENT_ERROR |
Błąd przejściowy to błąd, który rozwiąże się sam.
Błędy te najczęściej pojawiają się jako połączenie z urządzeniem lub usługą. Dzieje się tak również wtedy, gdy nie można nawiązać nowych połączeń z serwerem. |
Dzienniki wyszukiwania
Gdy nauczysz się już monitorować integracje za pomocą wskaźników, kolejnym krokiem będzie rozwiązanie problemów z poszczególnymi błędami za pomocą narzędzia Cloud Logging. Log błędów to wpis w formacie JSON zawierający pola zawierające przydatne informacje, takie jak czas, kod błędu i szczegóły dotyczące pierwotnej intencji inteligentnego domu.
W Google Cloud jest kilka systemów, które przez cały czas wysyłają logi do Twojego projektu. Aby przefiltrować logi, musisz napisać zapytania i znaleźć te, których potrzebujesz. Zapytania mogą być oparte na zakresie czasu, zasobie, ważności logu lub wpisach niestandardowych.

Przyciski zapytania ułatwiają tworzenie filtrów niestandardowych.

Aby określić Zakres czasu, kliknij przycisk wyboru zakresu czasu
i wybierz jedną z dostępnych opcji. Spowoduje to odfiltrowanie logów i wyświetlenie tych, które pochodzą z wybranego zakresu czasu.Aby określić Zasób, kliknij menu Zasób, a potem wybierz Google Assistant Action Project (Projekt akcji Asystenta Google). Spowoduje to dodanie do zapytania filtra, który będzie wyświetlał logi pochodzące z Twojego projektu.
Za pomocą przycisku Waga możesz filtrować dane według poziomu logowania Alarmowe, Informacje, Debugowanie i innych poziomów logu ważności.
Wpisy niestandardowe możesz też wpisywać w polu Zapytanie w Logs Explorer. Mechanizm zapytań używany w tym polu obsługuje zarówno zapytania podstawowe, np. dopasowywanie ciągów, jak i bardziej zaawansowane typy zapytań, w tym porównywarki (<, >=, !=
) i operatory logiczne (AND, OR, NOT
).
Na przykład poniższy wpis niestandardowy 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"
Więcej przykładów skutecznego wysyłania zapytań do logów znajdziesz w bibliotece zapytań.
Testowanie poprawek
Gdy zidentyfikujesz błędy i zastosujesz aktualizacje, żeby je naprawić, zalecamy dokładne przetestowanie poprawek w narzędziu Google Home Test Suite. Udostępniliśmy 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 instrukcje rozwiązywania problemów z działaniem 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 lokalnej integracji inteligentnego domu.