Wskaźniki oparte na logach dotyczące inteligentnego domu

1. Zanim zaczniesz

Jak wspomnieliśmy w samouczku Debugowanie inteligentnego domu, publikujemy w Twoich projektach inteligentnego domu dane i logi. Dane pomagają określić, gdzie Twoja akcja inteligentnego domu ma problemy, a logi są przydatne, gdy chcesz dokładnie zbadać te problemy i je rozwiązać.

848f483bfcd2997a.png

Oprócz danych udostępnianych w projekcie możesz też generować własne dane za pomocą opartych na logach wskaźników z Google Cloud. Umożliwia to monitorowanie określonych wzorców w logach i skuteczne debugowanie problemów z jakością.

Wymagania wstępne

Czego się nauczysz

  • Jak pisać skuteczne zapytania do filtrowania dzienników błędów inteligentnego domu
  • Jak tworzyć wskaźniki oparte na logach, aby generować wskaźniki na podstawie zapytań
  • Tworzenie wykresów i paneli na podstawie wskaźników opartych na logach na potrzeby monitorowania

2. Praca z logami

Jak wspomnieliśmy w samouczku dotyczącym debugowania inteligentnego domu, praca z logami jest kluczowa dla powodzenia projektu. Google Cloud udostępnia świetne narzędzia do monitorowania i analizowania logów. Aby uzyskać dostęp do wszystkich logów dostępnych w projekcie, możesz użyć eksploratora logów.

Uzyskiwanie dostępu do logów

Aby uzyskać dostęp do logów, najpierw zaloguj się w Google Cloud i wybierz projekt. Otwórz Eksplorator logów w bocznym menu, wybierając Operacje > Logowanie > Eksplorator logów. Po otwarciu narzędzia zobaczysz taki widok:

78982d8b6d19b827.png

Eksplorator logów składa się z 2 głównych sekcji: sekcji do pisania zapytań u góry (Kreator zapytań) i obszaru do wyświetlania pasujących wyników (Wyniki zapytania).

Wiele różnych komponentów Google domyślnie zapisuje logi w Twoim projekcie. Aby znaleźć i przetwarzać logi pochodzące z integracji z inteligentnym domem, musisz napisać niestandardowe zapytania.

Tworzenie zapytań

Logi są publikowane w projektach w ramach typu zasobu. Każdy typ zasobu reprezentuje inną platformę w Google. Logi pochodzące z platformy inteligentnego domu są dostępne w projekcie w ramach typu zasobu assistant_action_project.

Ponadto podczas tworzenia do wszystkich logów przypisywany jest poziom ważności. W przypadku dzienników inteligentnego domu używamy poziomu ERROR dla dzienników reprezentujących błędy i wyjątki, a poziomu DEBUG dla wszystkich pozostałych dzienników.

W tym przykładzie napiszemy zapytanie, aby odfiltrować dzienniki pochodzące tylko z naszej platformy, które reprezentują błędy:

753bfe72a9f8e959.png

Po utworzeniu zapytania kliknij przycisk Uruchom zapytanie, aby je uruchomić. Powinny pojawić się błędy pochodzące z integracji z systemem inteligentnego domu:

3ef42da5a6c322e1.png

Jak widać, w ciągu ostatniej godziny wystąpiło kilka błędów w różnych momentach. Każdy wiersz reprezentuje jeden dziennik błędów. Możesz też klikać poszczególne logi i rozwijać zagnieżdżone pola, aby wyświetlić zawarte w nich informacje.

Korzystanie z histogramu

Eksplorator logów udostępnia przydatną funkcję histogramu, która pozwala wyświetlać rozkład czasowy logów pasujących do zapytania. Aby aktywować histogram, kliknij UKŁAD STRONY w prawym górnym rogu i zaznacz Histogram.

10eaf1d204decf3c.png

Po włączeniu tej funkcji zobaczysz rozkład logów pasujących do zapytania:

dd3410e65a83cf5d.png

Jak widać na powyższym obrazie, w ciągu ostatniej godziny wystąpiło kilka błędów, które są rozproszone. Widać 3 grupy około 13:45, 14:00 i 14:15. Histogram może pomóc w wykryciu wzorców, które trudno byłoby zauważyć, sprawdzając tylko wartości sygnatur czasowych.

Obecnie używane przez nas zapytanie nie rozróżnia logów i wyświetla wszystkie błędy pochodzące z integracji z inteligentnym domem. W wielu przypadkach możesz chcieć rozróżniać błędy, np. aby śledzić wzorce błędów pochodzące z określonych typów lub cech urządzeń. W tym celu przyjrzymy się pisaniu zaawansowanych zapytań.

Zapytania zaawansowane

Gdy sprawdzisz dziennik zdarzeń inteligentnego domu, zobaczysz różne pola, z których możesz uzyskać informacje:

825c57c36800844e.png

action

  • trait: kierowanie na cechę urządzenia użytkownika (np. OnOff, StartStop, Brightness);
  • actionType: dokładny stan cechy (np. włączona, wyłączona, wstrzymana, zatrzymana, wznowiona);

device

  • deviceType: kierowanie na typ urządzenia użytkownika (np. oświetlenie, przełącznik, pralka).

status

  • isSuccess: czy wynik działania jest uznawany za udany (prawda / fałsz).
  • statusType: kod stanu wyniku działania (w przypadku niepowodzenia wskazuje kod błędu).
  • externalDebugString: ciąg znaków debugowania czynności (szczegółowo opisuje błąd);

Inne pola

Możesz też uzyskać informacje z tych dodatkowych pól:

  • requestId: unikalny identyfikator powiązany z żądaniem (wygenerowany przez Google);
  • executionType: ścieżka użyta przez żądanie (wskazuje, czy jest to chmura, czy lokalna).
  • latencyMsec: odczuwalne opóźnienie żądania na serwerach Google (w milisekundach).
  • locale: para język/region, z której wysyłane jest żądanie (np. en-US, fr-FR);

Korzystając z pola cechy z powyższej listy, zmodyfikujemy zapytanie tak, aby zawierało tylko błędy pochodzące z cechy OnOff:

resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

Po uruchomieniu zaktualizowanego zapytania system identyfikuje logi i wyświetla odpowiedni wynik:

76176d7a41962341.png

Do tej pory wszystkie zapytania wykonywaliśmy ręcznie. To świetny sposób na szybkie sprawdzenie stanu błędów, ale nie sprawdza się w przypadku monitorowania zmian w wzorcach błędów w czasie. Aby zautomatyzować ten proces i zbierać dane z dłuższych okresów, utworzymy wskaźniki oparte na logach.

3. Wskaźniki oparte na logach

Aby zliczać liczbę logów pasujących do zapytań w czasie, możesz używać wskaźników opartych na logach. Dzięki temu możesz zobaczyć wzorce w logach i uzyskać przydatne informacje o przyczynach problemów.

Tworzenie wskaźnika opartego na logach

Aby utworzyć wskaźnik oparty na logach, otwórz Operacje > Logowanie > Wskaźniki oparte na logach. Wyświetli się lista wskaźników opartych na logach, które są już dostępne w Twoim projekcie. Po kliknięciu przycisku UTWÓRZ WSKAŹNIK pojawi się ekran tworzenia wskaźnika opartego na logach:

296af6e7d8dcf6cf.png

Istnieją 2 główne rodzaje danych: dane licznika zliczają liczbę logów pasujących do zapytania. Dane rozkładu śledzą rozkład podstawowy i umożliwiają wykonywanie operacji statystycznych, takich jak obliczanie średniej, mediany i 95 percentyla.

Przewiń w dół, aby zobaczyć sekcję filtra, w której możesz wpisać zapytanie.

f7f2093fa1bce2ac.png

Wkleimy zapytanie z poprzedniej sekcji w obszarze tekstowym Tworzenie filtra.

​​resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

Możesz też kliknąć przycisk WYŚWIETL PODGLĄD DZIENNIKÓW, aby wyświetlić podgląd poprzednich dzienników pasujących do filtra. Gdy skończysz, możesz kliknąć przycisk UTWÓRZ RODZAJ DANYCH i przejść do następnej sekcji.

Wyświetlanie danych wskaźników opartych na logach

Utworzony wskaźnik oparty na logach będzie dostępny w sekcji Wskaźniki zdefiniowane przez użytkownika na stronie Wskaźniki oparte na logach.

1b2c88c18533fbcd.png

W menu odpowiadającym wskaźnikowi opartemu na logach (3 kropki) wybierz Wyświetl w narzędziu Metrics Explorer, aby zobaczyć dane zebrane w tym wskaźniku:

54a836fdc3a666a3.png

Gdy pojawi się nowy błąd, zostanie on zarejestrowany przez wskaźnik oparty na logach i wyświetlony w oknie wykresu w narzędziu Metrics Explorer.

Monitorowanie za pomocą paneli niestandardowych

Gdy zauważymy, że nowy wskaźnik oparty na logach działa zgodnie z oczekiwaniami, możemy zapisać ten widok wykresu w panelu niestandardowym. Aby to zrobić, w prawym górnym rogu Eksploratora danych kliknij przycisk Zapisz wykres. Wyświetli się prośba o nadanie nazwy wykresowi i wybranie panelu, w którym chcesz go zapisać:

52329085f841782e.png

Po zapisaniu wykresu w panelu możemy łatwo uzyskać do niego dostęp. Aby wyświetlić listę paneli informacyjnych dostępnych w projekcie, kliknij Operacje > Monitorowanie > Panele informacyjne.

44961e7cb3663341.png

Wykres został zapisany w panelu o nazwie „Codelab Dashboard”. Po otwarciu zobaczysz ten widok:

f7e025c27f30f996.png

Jak widać, wyświetla się tu wykres przedstawiający dane oparte na logach wraz z nowo zebranymi danymi. Logi inteligentnego domu są publikowane w projekcie w czasie rzeczywistym. Gdy pojawi się nowy log, od razu zobaczysz go w danych opartych na logach.

4. Gratulacje

674c4f4392e98c1.png

Gratulacje! Wiesz już, jak przekształcać zapytania w wskaźniki oparte na logach i zapisywać je w panelach niestandardowych na potrzeby monitorowania.

Dalsze kroki

Wykonaj te ćwiczenia i zapoznaj się z dodatkowymi materiałami, korzystając z tego samouczka:

  • Aby utworzyć wskaźniki oparte na logach w polach liczbowych, takich jak czas oczekiwania, zapoznaj się z przewodnikiem Tworzenie wskaźników rozkładu.
  • Zapoznaj się z biblioteką przykładowych zapytań udostępnioną przez Google Cloud, aby zobaczyć niektóre złożone filtry, których możesz używać w przypadku wskaźników opartych na logach.