Odśwież_date: 6.01.2023 r.
Google Cloud udostępnia narzędzia do monitorowania niezawodności projektów przy użyciu Google Cloud Monitoring i do debugowania problemów przy użyciu Google Cloud Logging logów błędów. Gdy wystąpi błąd przy realizacji intencji użytkownika, potok Google Home Analytics odnotowuje ten błąd w Twoich wskaźnikach i publikuje dziennik błędów w dziennikach projektu.
Aby rozwiązać ten problem, wykonaj 2 czynności:
- Monitoruj stan projektów za pomocą wskaźników inteligentnego domu.
- Aby badać problemy, sprawdź szczegółowe opisy błędów w logach błędów.
Monitorowanie błędów
Aby uzyskać dostęp do wskaźników projektu, możesz użyć Google Cloud Monitoring dashboard. Oto kilka kluczowych wykresów, które przydają się przy monitorowaniu jakości i debugowaniu:
- Wykres Wskaźnik sukcesu to pierwszy wykres, od którego zaczyna się monitorowanie niezawodności projektów. Spadek na wykresie może oznaczać przerwę w działaniu usługi w przypadku części lub wszystkich użytkowników. Zalecamy dokładne monitorowanie tego wykresu pod kątem wszelkich nieprawidłowości po każdej zmianie lub aktualizacji projektu.
- Wykresy z podziałem błędów są najbardziej przydatne podczas rozwiązywania problemów z integracją. Każdy błąd wyróżniony na wykresie procentowym powodzenia zawiera kod błędu. 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 mogą wystąpić w logach 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 |
Firma Google otrzymała z Twojej usługi kod błędu HTTP 4xx inny niż 401.
Użyj requestId w 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 Twoja usługa jest online, akceptuje połączenia i czy nie przekracza limitu. Sprawdź też, czy urządzenie docelowe jest włączone, online i zsynchronizowane. |
BACKEND_FAILURE_URL_UNREACHABLE |
Otrzymaliśmy kod błędu HTTP 5xx z Twojej usługi.
Użyj requestId w 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 ze względu na nieprawidłowy format lub nieprawidłowe 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 przez Google 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 przez Google 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_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 zauważysz wzrost częstotliwości występowania tego błędu w GCP Logging, skontaktuj się z nami, aby uzyskać więcej informacji. |
GAL_PERMISSION_DENIED |
Gdy udostępnianie tokenów nie było autoryzowane, 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_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 usługa unieważniła go. Użyj requestId w GCP Logging, aby sprawdzić logi usługi inteligentnego domu.
|
INVALID_JSON |
Odpowiedź JSON nie może zostać przeanalizowana lub niezrozumiała.
Sprawdź, czy struktura odpowiedzi JSON nie zawiera nieprawidłowej składni, np. niezgodnych 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 |
Pola odpowiedzi payload nie można przeanalizować jako obiektu JSON.
Sprawdź, czy pole ładunku w odpowiedzi na żądanie zawiera pasujące nawiasy i ma prawidłową strukturę jako pole JSON. |
PARTNER_RESPONSE_INVALID_STATUS |
Odpowiedź nie wskazuje stanu lub wskazuje nieprawidłowy stan.
Odpowiedzi na żądania realizacji intencji powinny wskazywać stan za pomocą SUCCESS, OFFLINE, ERROR, EXCEPTIONS . Więcej informacji o
obsłudze błędów i wyjątków.
|
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES |
W odpowiedzi brakuje co najmniej 1 intencji znajdującej się w żądaniu.
Sprawdź, czy odpowiedź wykonania ma prawidłową strukturę i czy zawiera ona wyniki wszystkich intencji z żądania. |
PARTNER_RESPONSE_MISSING_DEVICE |
W odpowiedzi brakuje co najmniej 1 urządzenia.
Sprawdź, czy odpowiedź wykonania ma prawidłową strukturę i czy zawiera 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 wszystkie pola w odpowiedzi na żądanie nie zawierają niezamierzonych znaków, niepasujących nawiasów ani błędów formatowania. Niektóre znaki Unicode mogą nie być obsługiwane. Sprawdź też, czy odpowiedź ma prawidłową strukturę jako obiekt JSON. |
PROTOCOL_ERROR |
Nie udało się przetworzyć żądania.
Użyj requestId w Google Cloud Logging, aby sprawdzić logi usługi inteligentnego domu.
|
RESPONSE_TIMEOUT |
Podczas oczekiwania na odpowiedź przekroczono limit czasu żądania.
Limit czasu na wysłanie odpowiedzi wynosi 9 sekund od momentu wysłania żądania. Pamiętaj, aby odpowiedzieć w tym czasie. |
RESPONSE_UNAVAILABLE |
Nie otrzymano odpowiedzi lub odpowiedź nie określa stanu.
Odpowiedzi na żądania dotyczące realizacji intencji powinny być uporządkowane zgodnie z dokumentacją inteligentnego domu i podawać ich stan. |
TRANSIENT_ERROR |
Błąd przejściowy to błąd, który ustąpi samoistnie.
Zwykle te błędy pojawiają się jako brak 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 nabierzesz wprawy w monitorowaniu integracji za pomocą wskaźników, możesz rozwiązać problemy z określonymi błędami za pomocą narzędzia Cloud Logging. Dziennik błędów to taki wpis w formacie JSON zawierający pola zawierające przydatne informacje, takie jak godzina, kod błędu i szczegóły dotyczące źródłowej intencji inteligentnego domu.
W projekcie Google Cloud jest wiele systemów, które zawsze wysyłają logi do Twojego projektu. Musisz napisać zapytania, aby filtrować logi i znajdować potrzebne Ci informacje. Zapytania mogą być oparte na zakresie czasu, zasobie, poziomie ważności logu lub wpisach niestandardowych.
![Wysyłanie zapytań dotyczących logów Cloud](https://developers.home.google.com/static/images/analytics_logs_query.png?authuser=2&hl=pl)
W tworzeniu filtrów niestandardowych możesz używać przycisków zapytań.
![Tworzenie zapytań Cloud Log](https://developers.home.google.com/static/images/analytics_logs_tools.png?authuser=2&hl=pl)
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ą z wybranego zakresu czasu.Aby określić Zasób, kliknij menu Zasób i wybierz Projekt akcji Asystenta Google. Spowoduje to dodanie do zapytania filtra, który wyświetli logi pochodzące z Twojego projektu.
Użyj przycisku Waga, aby filtrować według poziomów ważności Alarmowe, Informacje, Debugowanie i inne poziomy ważności.
Możesz też użyć pola Zapytanie w Logs Explorer, aby wpisać wpisy niestandardowe. Mechanizm zapytań używany w tym polu obsługuje zarówno podstawowe zapytania, takie jak dopasowywanie ciągów znaków, jak i bardziej zaawansowane typy zapytań, w tym komparatory (<, >=, !=
) i operatory logiczne (AND, OR, NOT
).
Na przykład ten niestandardowy wpis zwróciłby błędy, które są wynikiem działania urządzenia typu LIGHT
:
resource.type = "assistant_action_project" AND severity = ERROR AND jsonPayload.executionLog.executionResults.actionResults.device.deviceType = "LIGHT"
Otwórz Bibliotekę zapytań, aby znaleźć więcej przykładów skutecznego wysyłania zapytań dotyczących logów.
Poprawki testów
Gdy wykryjesz błędy i zastosujesz aktualizacje, aby je naprawić, zalecamy dokładne przetestowanie poprawek w narzędziu Google Home Test Suite. Udostępniamy przewodnik użytkownika, z którego dowiesz się, jak korzystać z narzędzia Test Suite, z którego dowiesz się, jak skutecznie testować zmiany.
Materiały szkoleniowe
W tym dokumencie opisujemy sposoby rozwiązywania problemów z działaniem Inteligentnym domem. 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 w chmurze.
- Ćwiczenie z programowania dotyczące debugowania lokalnego domu: krótki przewodnik po debugowaniu lokalnej integracji inteligentnego domu.