Rozwiązywanie problemów z integracją spraw

Odśwież_date: 06.01.2023 r.

Google Cloud udostępnia narzędzia do monitorowania niezawodności projektów w Google Cloud Monitoring i debugowania problemów z logami 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 danych i publikuje dziennik błędów w logach projektu.

Rozwiązywanie problemów z błędami jest możliwe na 2 sposoby:

  1. Monitoruj stan swoich projektów za pomocą wskaźników dotyczących inteligentnego domu.
  2. Zbadaj 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ć elementów Google Cloud Monitoring dashboard. Oto 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 zaczyna się monitorowanie niezawodności projektów. Spadki na tym wykresie mogą wskazywać na awarie w przypadku niektórych lub wszystkich użytkowników. Zalecamy uważne monitorowanie tego wykresu pod kątem ewentualnych nieprawidłowości po każdej zmianie lub aktualizacji projektu.
  • Wykresy z zestawieniem błędów najbardziej przydają się do rozwiązywania problemów z integracją. W przypadku każdego błędu wyróżnionego na wykresie odsetka powodzenia wyświetlany jest kod błędu. W tabeli poniżej znajdziesz błędy zgłoszone przez interfejs Google Home platform oraz sposoby rozwiązywania tych problemów.

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 interfejs Google Home platform. W tabeli poniżej 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 Twoją usługą upłynął limit czasu żądania Google.

Sprawdź, czy Twoja usługa jest online, akceptuje połączenia i czy nie przekroczyła limitu pojemności. Sprawdź też, czy urządzenie docelowe jest włączone, online i zsynchronizowane.
BACKEND_FAILURE_URL_UNREACHABLE Google otrzymało 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 błąd 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 usługi requestId w usłudze 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 liczby tych błędów w usłudze 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 wzrost liczby tych błędów w usłudze 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 zostaną 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 liczby tych błędów w usłudze GCP Logging, 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 zauważysz wzrost liczby tych błędów w usłudze GCP Logging, 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.

To nie jest 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. Użyj usługi requestId w usłudze GCP Logging, aby sprawdzić logi usług inteligentnego domu.
INVALID_JSON Odpowiedzi JSON nie można przeanalizować ani zrozumieć.

Sprawdź strukturę odpowiedzi JSON pod kątem nieprawidłowej składni, na przykład przez niezgodne nawiasy, 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 otrzymał kod błędu HTTP 401 z Twojej usługi.

Jeśli zauważysz wzrost częstotliwości występowania tego kodu, sprawdź, czy nie 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ź wskazuje 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 żądania ma pasujące nawiasy i ma prawidłową strukturę pola 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 występującej 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 jednego urządzenia obecnego 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 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 we wszystkich polach odpowiedzi na żądanie nie występują niezamierzone znaki, niepasujące nawiasy i błędy formatowania. Niektóre znaki Unicode mogą być nieobsługiwane. Sprawdź też, czy odpowiedź jest poprawnie uporządkowana jako obiekt JSON.
PROTOCOL_ERROR Niepowodzenie przetwarzania żądania.

Użyj usługi requestId w usłudze Google Cloud Logging, aby sprawdzić logi usługi inteligentnego domu.
RESPONSE_TIMEOUT Podczas oczekiwania na odpowiedź upłynął limit czasu żądania.

Czas oczekiwania na wysłanie odpowiedzi to 9 sekund od wysłania żądania. Pamiętaj, aby odpowiedzieć w tym czasie.
RESPONSE_UNAVAILABLE Nie otrzymano odpowiedzi lub odpowiedź nie wskazuje stanu.

Odpowiedzi na żądania dotyczące realizacji intencji powinny być uporządkowane zgodnie z dokumentacją inteligentnego domu i wskazać stan.
TRANSIENT_ERROR Przejściowy błąd to błąd, który zniknie samoistnie.

Zwykle te błędy mają postać połączenia z urządzeniem lub usługą. Także jeśli 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 przy użyciu narzędzia Cloud Logging. Log błędów to wpis w formacie JSON z polami zawierającymi przydatne informacje, takie jak godzina, kod błędu i szczegóły dotyczące źródłowej intencji inteligentnego domu.

W Google Cloud jest kilka systemów, które przez cały czas wysyłają logi do Twojego projektu. Aby filtrować logi, musisz tworzyć zapytania i znajdować te, które są Ci potrzebne. Zapytania mogą być oparte na zakresie czasowym, zasobach, wadze logów lub wpisach niestandardowych.

Wysyłanie zapytań do logów Cloud

Przyciski zapytania mogą Ci pomóc w tworzeniu filtrów niestandardowych.

Tworzenie zapytań do logów Cloud

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ą w wybranym przedziale czasu.

Aby określić Zasób, kliknij menu Zasób, a potem wybierz Google Assistant Action Project. Spowoduje to dodanie w zapytaniu filtra, który będzie wyświetlać logi pochodzące z Twojego projektu.

Za pomocą przycisku Waga możesz filtrować według poziomów logowania Alarmowe, Informacje, Debugowanie i innych poziomów ważności.

Wpisy niestandardowe możesz też wpisywać w polu Zapytanie w Logs Explorer. Mechanizm zapytań używany przez to pole obsługuje zarówno zapytania podstawowe, takie jak dopasowywanie ciągów znaków, jak i bardziej zaawansowane typy zapytań, w tym porównania (<, >=, !=) i operatory logiczne (AND, OR, NOT).

Na przykład ten niestandardowy wpis 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"

W bibliotece zapytań znajdziesz więcej przykładów skutecznego wysyłania zapytań do logów.

Testowanie poprawek

Gdy zidentyfikujesz błędy i zastosujesz aktualizacje w celu ich usunięcia, zalecamy dokładne przetestowanie poprawek za pomocą narzędzia Google Home Test Suite. Udostępniamy 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 informacje o tym, jak rozwiązać problemy z działaniami w inteligentnym domu. Możesz też zapoznać się z naszymi ćwiczeniami z programowania, aby dowiedzieć się więcej o debugowaniu: