refresh_date: 2023-01-06
Google Cloud udostępnia narzędzia do monitorowania niezawodności projektów z wykorzystaniem Google Cloud Monitoring i debugowania problemów z Google Cloud Logging logami błędów. Gdy podczas realizacji intencji użytkownika wystąpi błąd, potok Google Home Analytics zarejestruje go w danych i opublikuje w dzienniku projektu.
Aby rozwiązać problemy z błędami, wykonaj 2 kroki:
- Monitoruj stan projektów za pomocą wskaźników inteligentnego domu.
- Aby zbadać problemy, sprawdź szczegółowe opisy błędów w logach błędów.
Błędy monitorowania
Aby uzyskać dostęp do danych projektu, możesz użyć Google Cloud Monitoring dashboard. Niektóre z tych wykresów są szczególnie przydatne do monitorowania jakości i debugowania:
- Gdy monitorujesz niezawodność swoich projektów, zacznij od wykresu Współczynnik sukcesu. Spadek na wykresie może oznaczać przerwę w działaniu usługi w przypadku części lub wszystkich użytkowników. Zalecamy uważnie śledzić ten wykres po każdej zmianie lub aktualizacji projektu pod kątem nieprawidłowości.
- Wykresy Podział błędów są najbardziej przydatne podczas rozwiązywania problemów z integracją. W zestawieniu błędów podany jest kod błędu dla każdego błędu wyróżnionego na wykresie z procentem sukcesów. Informacje o błędach oznaczonych przez Google Home platform i sposobach ich rozwiązywania znajdziesz w tabeli poniżej.
Kody błędów platformy
Oto kilka typowych kodów błędów, które możesz zobaczyć w dziennikach projektu, aby zidentyfikować problemy wykryte przez Google Home platform. W poniższej tabeli znajdziesz informacje o rozwiązywaniu problemów.
Kod błędu | Opis |
---|---|
BACKEND_FAILURE_URL_ERROR |
Otrzymaliśmy od Twojej usługi kod błędu HTTP 4xx inny niż 401.
Aby sprawdzić dzienniki usługi inteligentnego domu, użyj opcji requestId w Logowaniu GCP.
|
BACKEND_FAILURE_URL_TIMEOUT |
Podczas próby dotarcia do Twojej usługi nastąpiło przekroczenie limitu czasu żądania Google.
Sprawdź, czy usługa jest dostępna online, akceptuje połączenia i nie przekracza limitu przepustowości. Sprawdź też, czy urządzenie docelowe jest włączone, online i zsynchronizowane. |
BACKEND_FAILURE_URL_UNREACHABLE |
Google otrzymało od Twojej usługi kod błędu HTTP 5xx.
Aby sprawdzić dzienniki usługi inteligentnego domu, użyj opcji requestId w Logowaniu GCP.
|
DEVICE_NOT_FOUND |
Urządzenie nie istnieje po stronie usługi partnera.
Zazwyczaj oznacza to błąd synchronizacji danych lub warunek wyścigu. |
GAL_BAD_3P_RESPONSE |
Google nie może przeanalizować odpowiedzi otrzymanej od usługi łączenia kont z powodu nieprawidłowego formatu lub wartości w danych.
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 zauważysz wzrost częstotliwości występowania tego błędu w 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 zwiększoną częstotliwość występowania tego błędu w logach GCP, skontaktuj się z nami, aby uzyskać więcej informacji. |
GAL_NOT_FOUND |
Tokeny dostępu i tokeny odświeżania użytkownika przechowywane w Google są nieważne i nie można ich już odświeżyć. Aby nadal korzystać z usługi, użytkownik musi ponownie połączyć swoje konto.
Jeśli zauważysz zwiększoną częstotliwość występowania tego błędu w logach GCP, skontaktuj się z nami, aby uzyskać więcej informacji. |
GAL_PERMISSION_DENIED |
Podczas udostępniania tokena wystąpił błąd wewnętrzny Google.
Jeśli zauważysz zwiększoną częstotliwość występowania tego błędu w logach GCP, skontaktuj się z nami, aby uzyskać więcej informacji. |
GAL_REFRESH_IN_PROGRESS |
Token dostępu użytkownika wygasł i jest już wykonywana inna próba jego odświeżenia.
Nie jest to problem i nie musisz nic robić. |
INVALID_AUTH_TOKEN |
Otrzymaliśmy kod błędu HTTP 401 z Twojej usługi.
Token dostępu nie wygasł, ale Twoja usługa unieważniła go. Użyj opcji requestId w Logowaniu GCP, aby sprawdzić dzienniki usługi inteligentnego domu.
|
INVALID_JSON |
Nie można przeanalizować ani zinterpretować odpowiedzi w formacie JSON.
Sprawdź strukturę odpowiedzi JSON pod kątem nieprawidłowej składni, np. niepasujących nawiasów, brakujących przecinków czy nieprawidłowych znaków. |
OPEN_AUTH_FAILURE |
Token dostępu użytkownika wygasł i Google nie może go odświeżyć lub otrzymaliśmy z Twojej usługi kod błędu HTTP 401.
Jeśli zauważysz zwiększoną częstotliwość wysyłania tego kodu, sprawdź, czy nie zauważasz też większej liczby błędów związanych z intencjami inteligentnego domu lub odświeżaniem żądań tokenów. |
PARTNER_RESPONSE_INVALID_ERROR_CODE |
Odpowiedź wskazuje nierozpoznany kod błędu.
Jeśli odpowiedź na żądanie wskazuje błąd, upewnij się, że korzystasz z kodu podanego w naszych obsługiwanych kodach błędów. |
PARTNER_RESPONSE_INVALID_PAYLOAD |
Nie można przeanalizować pola odpowiedzi payload jako obiektu JSON.
Sprawdź, czy pole ładunku w odpowiedzi na żądanie ma pasujące nawiasy i czy jest prawidłowo sformatowane jako pole JSON. |
PARTNER_RESPONSE_INVALID_STATUS |
Odpowiedź nie wskazuje stanu lub wskazuje nieprawidłowy stan.
Odpowiedzi na żądania realizacji intencji powinny wskazywać stan SUCCESS, OFFLINE, ERROR, EXCEPTIONS . Więcej informacji o
postępowaniu w przypadku błędów i wyjątków
|
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES |
W odpowiedzi brakuje co najmniej 1 intencji obecnej w żądaniu.
Sprawdź, czy odpowiedź na żądanie jest poprawnie sformatowana i czy zawiera wyniki dla wszystkich intencji z żądania. |
PARTNER_RESPONSE_MISSING_DEVICE |
W odpowiedzi brakuje co najmniej 1 urządzenia obecnego w żądaniu.
Sprawdź, czy odpowiedź na wykonanie jest poprawnie sformatowana i czy zawiera wszystkie identyfikatory urządzeń z żądania. |
PARTNER_RESPONSE_MISSING_PAYLOAD |
Odpowiedź nie zawiera pola payload .
Upewnij się, że w odpowiedzi na żądanie uwzględniono pole ładunku. Możesz dowiedzieć się więcej o tym, jak prawidłowo tworzyć odpowiedzi na proces wykonania. |
PARTNER_RESPONSE_NOT_OBJECT |
Nie można przeanalizować odpowiedzi jako obiektu JSON.
Sprawdź wszystkie pola w odpowiedzi na żądanie pod kątem niechcianych znaków, niepasujących nawiasów lub błędów formatowania. Niektóre znaki Unicode mogą nie być obsługiwane. Sprawdź też, czy odpowiedź jest prawidłowo sformatowana jako obiekt JSON. |
PROTOCOL_ERROR |
Nie udało się przetworzyć żądania.
Aby sprawdzić logi usługi inteligentnego domu, użyj requestId w Google Cloud Logging.
|
RESPONSE_TIMEOUT |
Upłynął limit czasu oczekiwania na odpowiedź.
Czas oczekiwania na odpowiedź wynosi 9 sekund od momentu wysłania żądania. Pamiętaj, aby wysłać odpowiedź w tym terminie. |
RESPONSE_UNAVAILABLE |
Nie otrzymano odpowiedzi lub odpowiedź nie zawiera informacji o stanie.
Odpowiedzi na żądania dotyczące realizacji intencji powinny być uporządkowane zgodnie z dokumentacją na temat inteligentnych urządzeń domowych i wskazywać stan. |
TRANSIENT_ERROR |
Błąd przejściowy to błąd, który sam zniknie.
Najczęściej te błędy objawiają się jako utrata połączenia z urządzeniem lub usługą. Także 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, następnym krokiem będzie rozwiązywanie konkretnych błędów za pomocą narzędzia Cloud Logging. Dziennik błędów to wpis w formacie JSON z polami zawierającymi przydatne informacje, takie jak czas, kod błędu i szczegóły dotyczące intencji inteligentnego domu.
W usłudze Google Cloud jest wiele systemów, które w każdej chwili wysyłają logi do Twojego projektu. Musisz stworzyć zapytania do filtrowania dzienników i wyszukiwania potrzebnych. Zapytania mogą być oparte na zakresie czasowym, zasobach, poważnych wpisach w dzienniku lub wpisach niestandardowych.
Do tworzenia filtrów niestandardowych możesz używać przycisków zapytań.
Aby określić Zakres czasowy, kliknij przycisk wyboru zakresu czasowego
i wybierz jedną z dostępnych opcji. Spowoduje to odfiltrowanie logów i wyświetlenie tych, które pochodzą z wybranego zakresu czasowego.Aby określić zasobnik, kliknij menu Zasób, a następnie wybierz Projekt działania Asystenta Google. Spowoduje to dodanie do zapytania filtra, który wyświetli logi pochodzące z Twojego projektu.
Użyj przycisku Poziom ważności, aby filtrować według Alarm, Informacje, Debugowanie i innych poziomów ważności dzienników.
Możesz też użyć pola Zapytanie w sekcji Logs Explorer, aby wpisać dane niestandardowe. Mechanizm zapytań używany przez to pole obsługuje zarówno zapytania podstawowe, takie jak dopasowywanie ciągu znaków, jak i zaawansowane typy zapytań, w tym operatory porównywania (<, >=, !=
) i operatory logiczne (AND, OR, NOT
).
Na przykład wpis niestandardowy poniżej zwróci błędy pochodzące z typu urządzenia LIGHT
:
resource.type = "assistant_action_project" AND severity = ERROR AND jsonPayload.executionLog.executionResults.actionResults.device.deviceType = "LIGHT"
Więcej przykładów skutecznego wykonywania zapytań do dzienników znajdziesz w bibliotece zapytań.
Testowanie poprawek
Po zidentyfikowaniu błędów i zaimplementowaniu aktualizacji zalecamy dokładne przetestowanie poprawek za pomocą Google Home Test Suite. Udostępniamy przewodnik użytkownika dotyczący Test Suite, który pomoże Ci skutecznie przetestować zmiany.
Materiały szkoleniowe
W tym dokumencie znajdziesz instrukcje rozwiązywania problemów z błędami w aplikacji Dom. Możesz też zapoznać się z naszymi ćwiczeniami z programowania, aby dowiedzieć się więcej o debugowaniu:
- Debugowanie Codelab dotyczącego inteligentnego domu: krótki przewodnik po debugowaniu integracji inteligentnego domu z chmurą.
- Debugowanie Codelab dotyczącego lokalnego sterowania domem: krótki przewodnik po debugowaniu lokalnej integracji z systemem inteligentnego domu.