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.
![Wykonywanie zapytań dotyczących logów Cloud](https://developers.home.google.com/static/images/analytics_logs_query.png?authuser=4&hl=pl)
Przyciski zapytania ułatwiają tworzenie filtrów niestandardowych.
![Tworzenie zapytań do Cloud Log](https://developers.home.google.com/static/images/analytics_logs_tools.png?authuser=4&hl=pl)
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.