Wskaźniki oparte na logach dotyczące inteligentnego domu

1. Zanim zaczniesz

Jak wspomnieliśmy w ćwiczeniu z programowania dotyczącym debugowania inteligentnego domu, publikujemy dane i logi w Twoich projektach związanych z inteligentnym domem. Dane pomagają określić, gdzie występują problemy z działaniem inteligentnego domu. Dzienniki są przydatne przy analizowaniu tych problemów.

848f483bfcd2997a.png

Oprócz wskaźników, które udostępniamy Twojemu projektowi, możesz też generować własne wskaźniki za pomocą wskaźników opartych na logach z Google Cloud Platform. Dzięki temu możesz monitorować określone wzorce w dziennikach i skutecznie usuwać problemy z jakością.

Wymagania wstępne

Czego się nauczysz

  • Jak tworzyć skuteczne zapytania pozwalające filtrować logi błędów inteligentnego domu
  • Jak tworzyć wskaźniki oparte na logach do generowania wskaźników na podstawie zapytań
  • Jak tworzyć wykresy i panele na podstawie wskaźników opartych na logach do monitorowania

2. Praca z logami

Jak pokrótce omówiliśmy w części Debugowanie inteligentnego domu z programowania, użycie dzienników ma kluczowe znaczenie dla powodzenia projektu. W Google Cloud Platform znajdziesz ś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, zaloguj się w Google Cloud Platform i wybierz swój projekt. Otwórz Eksplorator logów, korzystając z bocznego menu, wybierając Operacje > Logowanie > Eksplorator logów. Po otwarciu narzędzia powinien wyświetlić się ten widok:

78982d8b6d19b827.png

Eksplorator logów składa się z 2 głównych sekcji: u góry (Konstruktor zapytań) i sekcji, w której wyświetlają się pasujące wyniki (Wyniki zapytania).

Wiele różnych komponentów Google domyślnie zapisuje logi w Twoim projekcie. Aby móc znajdować dzienniki pochodzące z integracji inteligentnego domu i korzystać z nich, musisz utworzyć zapytania niestandardowe.

Tworzenie zapytań

Logi są publikowane w projektach o określonym typie zasobu. Każdy typ zasobu reprezentuje inną platformę w Google. Logi pochodzące z platformy Smart Home są dostępne dla Twojego projektu jako zasobu assistant_action_project.

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

W poniższym przykładzie wpiszemy zapytanie filtrujące logi pochodzące tylko z naszej platformy, które przedstawiają błędy. Będzie to:

753bfe72a9f8e959.png

Po napisaniu zapytania kliknij przycisk Uruchom zapytanie, aby uruchomić zapytanie. To powinno spowodować wyświetlenie błędów związanych z integracją inteligentnego domu:

3ef42da5a6c322e1.png

Jak widzisz, wiele błędów pojawiało się o różnych porach w ciągu ostatniej godziny. Każdy wiersz reprezentuje 1 dziennik błędów. Możesz kliknąć poszczególne dzienniki i rozwinąć zagnieżdżone pola, aby zobaczyć zawarte w nich informacje.

Korzystanie z histogramu

Eksplorator logów udostępnia przydatną funkcję histogramu, która umożliwia sprawdzanie rozkładu czasu logów, które pasują do zapytania. Aby włączyć histogram, kliknij UKŁAD STRONY wśród przycisków w prawym górnym rogu i zaznacz Histogram, aby włączyć tę funkcję.

10eaf1d204decf3c.png

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

dd3410e65a83cf5d.png

Jak widać na powyższej grafice, w ciągu ostatniej godziny wystąpiło kilka błędów, które pojawiły się bardzo rzadko. Wygląda na to, że tworzą 3 klastry około 1:45, 14:00 i 14:15. Histogram pomaga wykrywać wzorce, które są trudne do zauważenia, sprawdzając tylko wartości sygnatur czasowych.

Obecnie zapytanie, którego używamy, nie rozróżnia dzienników i wyświetla wszystkie błędy pochodzące z integracji z inteligentnym domem. Istnieje wiele sytuacji, w których warto rozróżnić błędy, na przykład aby śledzić wzorce błędów pochodzące z określonych typów urządzeń lub cech. W tym celu przyjrzymy się tworzeniu zapytań zaawansowanych.

Zapytania zaawansowane

Przeglądając dziennik zdarzeń inteligentnego domu, możesz zauważyć, że w jednym z tych miejsc możesz zbierać informacje:

825c57c36800844e.png

action

  • trait: kieruj reklamy na cechy urządzenia użytkownika (np. OnOff, StartStop, Jasność).
  • actionType: szczegółowe ziarnistości cechy (np. Włączone, Wyłączone, Wstrzymaj, Zatrzymaj, Wznów).

device

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

status

  • isSuccess: określa, czy działanie jest uznawane za skuteczne (prawda / fałsz).
  • statusType: kod stanu wyniku działania (w przypadku niepowodzenia oznacza kod błędu).
  • externalDebugString: ciąg debugowania powiązany z działaniem (szczegółowo opisuje błąd).

Inne pola

Dostępne są też dodatkowe pola, z których można uzyskiwać informacje:

  • requestId: unikalny identyfikator powiązany z żądaniem (wygenerowany przez Google).
  • executionType: ścieżka używana przez żądanie (wskazuje, czy wersja Cloud, czy lokalna)
  • latencyMsec: obliczony czas oczekiwania dla żądania na serwerach Google (w ms)
  • locale: z której pary język-region jest wysyłane żądanie (na przykład en-US, fr-FR).

Używając pola trait z powyższej listy, zmodyfikujemy zapytanie tak, aby uwzględniało tylko błędy pochodzące z cech OnOff w ten sposób:

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

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

76176d7a41962341.png

Do tej pory wszystkie zapytania tworzyliśmy ręcznie. To świetny sposób, aby szybko sprawdzić stan błędów, ale nie śledzić zmian we wzorcach błędów na przestrzeni czasu. Aby zautomatyzować ten proces i przechwytywać dane z dłuższych okresów, utworzymy wskaźniki oparte na logach.

3. Wskaźniki oparte na logach

Aby zliczać logi zgodne z zapytaniami w danym okresie, możesz używać wskaźników opartych na logach. Pozwoli Ci to zobaczyć wzorce i logi, a także uzyskać przydatne informacje o problemach.

Tworzenie wskaźnika opartego na logach

Aby utworzyć wskaźnik oparty na logach, przejdź do sekcji Operacje > Logowanie > wskaźniki oparte na logach. Spowoduje to wyświetlenie listy wskaźników opartych na logach, które są już dostępne w Twoim projekcie. Gdy klikniesz przycisk UTWÓRZ Wskaźnik, pojawi się ekran tworzenia wskaźnika opartego na logach:

296af6e7d8dcf6cf.png

Istnieją 2 główne typy danych: dane licznika zliczają liczbę logów pasujących do zapytania. Wskaźnik rozkładu śledzi podstawowy rozkład i umożliwia operacje statystyczne, takie jak średnia, mediana i 95 centyl.

Po przewinięciu strony w dół zobaczysz sekcję filtrów, w której możesz wpisać zapytanie.

f7f2093fa1bce2ac.png

W obszarze tekstowym Tworzenie filtra wkleimy zapytanie z poprzedniej sekcji.

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

Możesz też kliknąć przycisk PODGLĄD LOGÓW, aby zobaczyć szybki przegląd wcześniejszych logów pasujących do filtra. Po zakończeniu możesz kliknąć przycisk UTWÓRZ DANE i przejść do następnej sekcji.

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

Wskaźnik oparty na logach został utworzony 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 przez wskaźnik oparty na logach:

54a836fdc3a666a3.png

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

Monitorowanie za pomocą paneli niestandardowych

Gdy zobaczymy, że nasz nowy wskaźnik oparty na logach działa zgodnie z oczekiwaniami, zapisz ten widok wykresu w panelu niestandardowym. Aby to zrobić, kliknij przycisk Zapisz wykres w prawym górnym rogu narzędzia Metrics Explorer. Wyświetli się prośba o podanie nazwy wykresu i wybranie panelu, w którym chcesz go zapisać:

52329085f841782e.png

Gdy zapiszesz wykres w panelu, będzie można łatwo go otworzyć. Aby uzyskać dostęp do listy paneli dostępnych w projekcie, przejdź do sekcji Operacje > Monitorowanie > Panele.

44961e7cb3663341.png

Wykres został zapisany w panelu o nazwie „Codelab Dashboard”. Po otwarciu wyświetli się ten widok:

f7e025c27f30f996.png

Jak widzisz, wyświetlany jest tutaj wykres reprezentujący wskaźnik oparty na logach, a także nowo zebrane dane. Dzienniki inteligentnego domu są publikowane w Twoim projekcie w czasie rzeczywistym. Gdy dostępny będzie nowy dziennik, zobaczysz go od razu policzony przez wskaźnik oparty na logach.

4. Gratulacje

674c4f4392e98c1.png

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

Dalsze kroki

Na bazie tego ćwiczenia z programowania wykonaj poniższe ćwiczenia i zapoznaj się z dodatkowymi materiałami:

  • Zapoznaj się z przewodnikiem Tworzenie wskaźników dystrybucji, aby dowiedzieć się, jak tworzyć oparte na logach wskaźniki w polach liczbowych, takie jak czas oczekiwania.
  • Zapoznaj się z biblioteką przykładowych zapytań udostępnionym przez Google Cloud, aby poznać niektóre złożone filtry, których można używać do wskaźników opartych na logach.