refresh_date: 2023-01-06
Google Cloud udostępnia narzędzia do monitorowania niezawodności projektów za pomocą Google Cloud Monitoring oraz rozwiązywania problemów za pomocą Google Cloud Logginglogów 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 swoich projektów za pomocą danych 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 tym wykresie może wskazywać przerwę w działaniu usługi dla 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 odsetka sukcesów. W tabeli poniżej znajdziesz błędy oznaczone ikoną Google Home platform oraz 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. Informacje o rozwiązywaniu problemów znajdziesz w tabeli poniżej.
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 wskazuje to na błąd synchronizacji danych lub warunki 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.
Aby sprawdzić dzienniki błędów w usłudze łączenia kont, użyj requestId w logowaniu GCP.
|
GAL_INTERNAL |
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_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ł, a inna próba jego odświeżenia jest już w toku.
Nie jest to problem i nie musisz nic robić. |
INVALID_AUTH_TOKEN |
Google otrzymało od Twojej usługi kod błędu HTTP 401.
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ł, a Google nie może go odświeżyć,
lub Google otrzymało od Twojej usługi kod błędu HTTP 401.
Jeśli zauważysz zwiększoną częstotliwość występowania tego kodu, sprawdź, czy nie wzrosła też liczba błędów związanych z intencjami dotyczącymi inteligentnego domu lub żądaniami odświeżania tokenów. |
PARTNER_RESPONSE_INVALID_ERROR_CODE |
Odpowiedź wskazuje nierozpoznany kod błędu.
Jeśli odpowiedź na żądanie wskazuje na błąd, użyj jednego z naszych obsługiwanych kodów 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 z błędami i wyjątkami
|
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ą. Dotyczy to również sytuacji, gdy nie można otworzyć nowych połączeń z serwerem. |
Dzienniki wyszukiwania
Gdy już zaczniesz monitorować integracje za pomocą danych, następnym krokiem będzie rozwiązywanie konkretnych błędów za pomocą 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ć Zasób, kliknij menu Zasób, a następnie wybierz Projekt działania Asystenta Google. Spowoduje to dodanie filtra do zapytania, aby 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. Aby dowiedzieć się więcej o debugowaniu, możesz też zapoznać się z naszą serią Codelabs:
- 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.