Rozwiązywanie problemów z błędami integracji

Z chmury do chmury    Sprawa

Google Cloud udostępnia narzędzia do monitorowania niezawodności projektów. z wykorzystaniem Google Cloud Monitoring i debuguj problemy z zasadą Google Cloud Logging dzienników błędów. Gdy wystąpi porażka przy realizacji zamiarów użytkownika, Potok Google Home Analytics rejestruje ten błąd w Twoich danych, publikuje dziennik błędów w logach projektu.

Aby rozwiązać problemy z błędami, wykonaj 2 kroki:

  1. Monitoruj stan swoich projektów za pomocą danych inteligentnego domu.
  2. Aby badać problemy, sprawdź szczegółowe opisy błędów w dzienników błędów.

Ten proces jest podobny w przypadku integracji lokalnej z użyciem parametru Local Home SDK Po opanowaniu procedury rozwiązywania problemów możesz: możesz łatwo przełączać się między wskaźnikami i logami, aby uzyskać wgląd .

Monitorowanie błędów

Aby uzyskać dostęp do danych projektu, możesz użyć Google Cloud Monitoring dashboard. Istnieje kilka kluczowych wykresów, które szczególnie przydatne do monitorowania jakości i debugowania:

  • Wskaźnik sukcesu to pierwszy wykres, od którego zaczyna się w momencie monitorowania niezawodności projektów. Spadek na tym wykresie może może oznaczać przerwę w działaniu usługi w przypadku części lub wszystkich użytkowników. Zalecamy uważnie monitoruj ten wykres pod kątem wszelkich nieprawidłowości po każdej zmianie lub zaktualizuj ją do projektu.
  • Wykres 95 centyl czasu oczekiwania to ważny wskaźnik czasu, Działanie inteligentnego domu. Nagłe wahania na tym wykresie może oznaczać, że systemy nie są w stanie nadgonić z prośbami. Zalecamy okresowe sprawdzanie tego wykresu w celu nieoczekiwane zachowanie.
  • Wykresy z podziałem błędów są najbardziej przydatne, jeśli chodzi w celu rozwiązania 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 mogą wystąpić w logach projektu, aby identyfikować problemy wykryte przez Google Home platform. Zapoznaj się z w poniższej tabeli.

Kod błędu Opis
BACKEND_FAILURE_URL_ERROR Do Google został wysłany kod błędu HTTP 4xx inny niż 401 posprzedażna.

Użyj requestId w GCP Logging, aby sprawdzić inteligentne dzienników usług dla domu.
BACKEND_FAILURE_URL_TIMEOUT Podczas próby nawiązania połączenia z usługą upłynął limit czasu żądania Google.

Sprawdź, czy usługa jest dostępna online, akceptuje połączenia i nie przekracza limitu przepustowości. Sprawdź też, czy wartość docelowa urządzenie jest włączone, online i zsynchronizowane.
BACKEND_FAILURE_URL_UNREACHABLE Google otrzymało od Twojej usługi kod błędu HTTP 5xx.

Użyj requestId w GCP Logging, aby sprawdzić inteligentne dzienników usług dla domu.
DEVICE_NOT_FOUND Urządzenie nie istnieje po stronie usługi partnera.

Zwykle oznacza to błąd synchronizacji danych lub wyścigu .
GAL_BAD_3P_RESPONSE Google nie może przeanalizować odpowiedzi z usługi łączenia kont z powodu nieprawidłowego formatu lub nieprawidłowych wartości w ładunku.

Aby sprawdzić dzienniki błędów w usłudze łączenia kont, użyj requestId w logowaniu GCP.
GAL_INTERNAL Podczas próby pobrania przez Google wiadomości wystąpił błąd wewnętrzny Google token dostępu.

Jeśli zauważysz wzrost częstotliwości tego błędu w GCP Logging, skontaktuj się z .
GAL_INVALID_ARGUMENT Podczas próby pobrania przez Google wiadomości wystąpił błąd wewnętrzny Google token dostępu.

Jeśli zauważysz wzrost częstotliwości tego błędu w GCP Logging, skontaktuj się z .
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ć. Użytkownik musi: połączyć je ponownie, aby nadal korzystać z usługi.

Jeśli zauważysz wzrost częstotliwości tego błędu w GCP Logging, skontaktuj się z .
GAL_PERMISSION_DENIED Gdy udostępnianie tokena nie było prawidłowe, wystąpił błąd wewnętrzny Google .

Jeśli zauważysz wzrost częstotliwości tego błędu w GCP Logging, skontaktuj się z .
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 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ć inteligentne dzienników usług dla domu.
INVALID_JSON Odpowiedź JSON nie może zostać przeanalizowana lub niezrozumiała.

Sprawdź, czy struktura odpowiedzi JSON nie zawiera nieprawidłowej składni, na przykład jako niezgodne nawiasy, brakujące przecinki, nieprawidłowe znaki.
OPEN_AUTH_FAILURE token dostępu użytkownika wygasł i Google nie może go odświeżyć, lub Google otrzymał kod błędu HTTP 401 z Twojej usługi.

Jeśli zauważysz wzrost częstotliwości wysyłania tego kodu, sprawdź, czy pojawia się również wzrost liczby błędów związanych z intencjami lub odświeżeniami dotyczącymi inteligentnego domu żądania tokenów.
PARTNER_RESPONSE_INVALID_ERROR_CODE Odpowiedź wskazuje nierozpoznany kod błędu.

Jeśli odpowiedź na żądanie wskazuje błąd, użyj takiego kodu pochodzące z naszego obsługiwane kody błędów.
PARTNER_RESPONSE_INVALID_PAYLOAD Pola odpowiedzi payload nie można przeanalizować jako pliku JSON Obiekt.

Sprawdź, czy pole ładunku w odpowiedzi na żądanie jest zgodne nawiasy klamrowe 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 przy użyciu: SUCCESS, OFFLINE, ERROR, EXCEPTIONS. Ty można znaleźć więcej informacji na temat obsługi błędów i wyjątków.
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES W żądaniu brakuje co najmniej 1 intencji .

Sprawdź, czy atrybuty odpowiedź na wykonanie ma prawidłową strukturę, a wyniki dla wszystkich intencji z żądania.
PARTNER_RESPONSE_MISSING_DEVICE W żądaniu brakuje co najmniej 1 urządzenia .

Sprawdź, czy odpowiedź na żądanie wykonania jest poprawnie sformatowana 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 umieścić pole ładunku. Ty można dowiedzieć się więcej na temat prawidłowego tworzenia odpowiedzi na wykonanie.
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ące nawiasy czy błędy formatowania. niektóre znaki Unicode; może nie być obsługiwany. Upewnij się też, że odpowiedź jest poprawna ma strukturę obiektu JSON.
PROTOCOL_ERROR Nie udało się przetworzyć żądania.

Użyj requestId w Google Cloud Logging, aby sprawdzić dzienników usług inteligentnego domu.
RESPONSE_TIMEOUT Podczas oczekiwania na odpowiedź przekroczono limit czasu żądania.

Limit czasu na wysłanie odpowiedzi wynosi 9 sekund od momentu prośba zostanie wysłana. Pamiętaj, aby wysłać odpowiedź w tym terminie.
RESPONSE_UNAVAILABLE Nie otrzymano odpowiedzi lub odpowiedź nie określa stanu.

Odpowiedzi na żądania dotyczące realizacji intencji powinny być uporządkowane zgodnie z dokumenty inteligentnego domu i określić ich stan.
TRANSIENT_ERROR Błąd przejściowy to błąd, który ustąpi samoistnie.

Zwykle te błędy występują jako połączenie z urządzeniem lub usługi. Ponadto jeśli nie można nawiązać nowych połączeń z serwerem otwarto.

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 stylu JSON z polami zawierającymi przydatne informacje, takie jak godzina, błąd kod i szczegóły dotyczące pierwotnej intencji inteligentnego domu.

W usłudze Google Cloud jest wiele systemów, które w każdej chwili wysyłają logi do Twojego projektu. Czynności, które musisz wykonać napisz zapytania pozwalające filtrować logi i znajdować te, których potrzebujesz. Zapytania mogą być oparte na zakresie czasu, Zasób, Poziom ważności lub wpisy niestandardowe.

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

W tworzeniu filtrów niestandardowych możesz używać przycisków zapytań.

Tworzenie zapytań Cloud Log

Aby określić Zakres czasowy, kliknij przycisk wyboru zakresu czasowego  i wybierz jedną z dostępnych opcji. Spowoduje to przefiltrowanie dzienników i wyświetlenie tych, które pochodzą w wybranym przedziale czasu.

Aby określić Zasób, kliknij menu Zasób. a następnie wybierz Google Assistant Action Project (Projekt akcji Asystenta Google). Spowoduje to dodanie filtra w: zapytanie, aby wyświetlić logi pochodzące z Twojego projektu.

Kliknij przycisk Waga, aby filtrować według tych kryteriów: Alarmowe, Informacje, Debugowanie. i innych poziomów ważności.

Możesz też użyć pola Zapytanie w interfejsie Logs Explorer aby wpisać wpisy niestandardowe. Mechanizm zapytań używany w tym polu obsługuje zarówno podstawowych zapytań, takich jak dopasowanie ciągów, oraz bardziej zaawansowanych typów zapytań, operatory logiczne (<, >=, !=) i operatory logiczne (AND, OR, NOT).

Na przykład poniższy wpis niestandardowy zwróciłby błędy, które pochodzą z 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 przetestowanie wraz z wprowadzaniem poprawek 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 inteligentnym domem. Akcja. Aby dowiedzieć się więcej o debugowaniu, możesz też zapoznać się z naszą serią Codelabs: