Rozwiązywanie problemów z integracją spraw

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:

  1. Monitoruj stan projektów za pomocą wskaźników inteligentnego domu.
  2. 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.

Wysyłanie zapytań dotyczących logów Cloud

Do tworzenia filtrów niestandardowych możesz używać przycisków zapytań.

Tworzenie zapytań do logów Cloud

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: