Wskaźniki oparte na logach dotyczące inteligentnego domu

1. Zanim zaczniesz

Zgodnie z opisem w ramach ćwiczenia z programowania Debugowanie inteligentnego domu publikujemy dane i logi w Twoich projektach związanych z inteligentnym domem. Dane pomagają określić, gdzie występuje problem z akcją inteligentnego domu, a dzienniki przydają się, gdy dokładniej analizujesz te problemy.

848f483bfcd2997a.png

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

Wymagania wstępne

Czego się nauczysz

  • Jak tworzyć skuteczne zapytania, aby filtrować dzienniki błędów inteligentnego domu
  • Jak tworzyć wskaźniki oparte na logach, aby generować wskaźniki na podstawie zapytań
  • Jak tworzyć wykresy i panele informacyjne na podstawie wskaźników opartych na logach na potrzeby monitorowania

2. Praca z logami

Jak pokrótce omówiliśmy Debugowanie ćwiczeń z programowania Smart Home, praca z logami to klucz do powodzenia projektu. W Google Cloud Platform dostępne są świetne narzędzia do monitorowania i analizowania logów. Aby uzyskać dostęp do wszystkich logów dostępnych w Twoim projekcie, możesz użyć eksploratora logów.

Uzyskiwanie dostępu do dzienników

Aby uzyskać dostęp do logów, zaloguj się w Google Cloud Platform i wybierz projekt. W bocznym menu otwórz Eksplorator logów, klikając Operacje > Logowanie > Eksplorator logów. Po uruchomieniu narzędzia powinien być widoczny następujący widok:

78982d8b6d19b827.png

Eksplorator logów składa się z 2 głównych sekcji: sekcji, w której możesz wpisywać zapytania (Kreator zapytań), i obszaru, w którym wyświetlają się pasujące wyniki (Wyniki zapytania).

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

Pisanie zapytań

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

Wszystkie logi mają też podczas tworzenia przypisany poziom ważności. W przypadku dzienników inteligentnego domu używamy poziomu ERROR do logów reprezentujących błędy i wyjątki, a w przypadku pozostałych zdarzeń – DEBUG.

W poniższym przykładzie utworzymy zapytanie filtrujące logi pochodzące tylko z naszej platformy i reprezentujące błędy w ten sposób:

753bfe72a9f8e959.png

Po zakończeniu tworzenia zapytania kliknij przycisk Uruchom zapytanie, aby je zainicjować. Powinno to spowodować wyświetlenie błędów związanych z integracją z inteligentnym domem:

3ef42da5a6c322e1.png

Jak widać, napotkaliśmy wiele błędów w różnych momentach w ciągu ostatniej godziny. Każdy wiersz odpowiada pojedynczemu logowi błędów. Możesz też kliknąć poszczególne dzienniki i rozwinąć zagnieżdżone pola, by zobaczyć zawarte w nich informacje.

Używanie histogramu

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

10eaf1d204decf3c.png

Gdy ta funkcja jest włączona, zobaczysz rozkład logów pasujących do zapytania:

dd3410e65a83cf5d.png

Jak widać na powyższym obrazie, w ciągu ostatniej godziny mamy kilka błędów, które są rzadko wyświetlane. Wygląda na to, że około 13:45, 14:00 i 14:15 tworzą trzy klastry. Histogram może pomóc w wykrywaniu wzorców, które byłyby trudne do zauważenia, sprawdzając tylko wartości sygnatury czasowej.

Obecnie używane przez nas zapytanie nie rozróżnia dzienników i pokazuje wszystkie błędy pochodzące z integracji inteligentnego domu. Istnieje wiele sytuacji, w których warto rozróżniać błędy, na przykład w celu śledzenia wzorców błędów pochodzących z określonych typów urządzeń lub cech. Aby to zrobić, przyjrzymy się tworzeniu zaawansowanych zapytań.

Zapytania zaawansowane

Dziennik zdarzeń inteligentnego domu zawiera różne pola, z których możesz uzyskać informacje:

825c57c36800844e.png

action

  • trait: kierowanie na cechy urządzenia według użytkownika (np. włączanie, wyłączanie, jasność).
  • actionType: stan drobnego ziarnistości cechy (na przykład włączona, wyłączona, wstrzymaj, zatrzymaj, wznów).

device

  • deviceType: kierowanie typu urządzenia według użytkownika (np. Lampka, Przełącznik, Pralka).

status

  • isSuccess: określa, czy wynik działania jest uznawany za zakończony powodzeniem (prawda / fałsz).
  • statusType: kod stanu wyniku działania (wskazuje kod błędu w przypadku niepowodzenia).
  • externalDebugString: ciąg tekstowy debugowania dotyczący działania (szczegółowo opisuje błąd).

Inne pola

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

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

Korzystając z pola cechy z powyższej listy, zmodyfikujemy zapytanie tak, aby uwzględniało tylko błędy pochodzące z cechy 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 wykonywaliśmy ręcznie. To świetny sposób na szybkie sprawdzanie stanu błędów, ale nie na tyle, aby monitorować zmiany wzorców błędów na przestrzeni czasu. Aby zautomatyzować ten proces i rejestrować dane z dłuższych okresów, utworzymy wskaźniki oparte na logach.

3. Wskaźniki oparte na logach

Aby policzyć logi, które pasują do Twoich zapytań w danym okresie, możesz użyć wskaźników opartych na logach. Dzięki temu uzyskasz wgląd w wzorce i dane w dziennikach oraz zyskasz lepszy wgląd w problemy.

Tworzenie wskaźnika opartego na logach

Aby utworzyć wskaźnik oparty na logach, otwórz 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. Po kliknięciu przycisku UTWÓRZ WSKAŹNIK pojawi się ekran tworzenia wskaźnika opartego na logach:

296af6e7d8dcf6cf.png

Istnieją 2 typy danych podstawowych. Wskaźnik licznika zlicza liczbę logów pasujących do zapytania. Wskaźnik dystrybucji śledzi rozkład bazowy i umożliwia operacje statystyczne, takie jak średnia, mediana i 95 centyl.

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

f7f2093fa1bce2ac.png

W obszarze tekstowym Tworzenie filtra wklejemy 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 WYŚWIETL PODGLĄD LOGÓW, aby wyświetlić wcześniejsze dzienniki pasujące do filtra. Gdy skończysz, możesz kliknąć przycisk UTWÓRZ WSKAŹNIK i przejść do następnej sekcji.

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

Po utworzeniu wskaźnika opartego na logach będzie on dostępny w sekcji Wskaźniki zdefiniowane przez użytkownika na stronie wskaźników opartych na logach.

1b2c88c18533fbcd.png

W menu odpowiadającym wskaźnikowi opartemu na logach (3 kropki) wybierz Wyświetl w narzędziu Metrics Explorer, aby wyświetlić dane zebrane we wskaźniku opartym 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, możesz zapisać ten widok wykresu w niestandardowym panelu informacyjnym. Aby to zrobić, kliknij przycisk Zapisz wykres w prawym górnym rogu narzędzia Metrics Explorer. Pojawi się prośba o nazwanie wykresu i wybranie panelu, na którym chcesz go zapisać:

52329085f841782e.png

Gdy zapiszesz wykres w panelu, będziemy mieć do niego łatwy dostęp. Aby uzyskać dostęp do listy paneli dostępnych w Twoim projekcie, otwórz Operacje > Monitorowanie > Panele.

44961e7cb3663341.png

Zapisaliśmy nasz wykres w panelu o nazwie „Panel ćwiczeń z programowania”. Po otwarciu okna zobaczysz ten widok:

f7e025c27f30f996.png

Jak widać wykres przedstawiający wskaźnik oparty na logach, razem z nowo zebranymi danymi. Dzienniki inteligentnego domu są publikowane w projekcie w czasie rzeczywistym. Gdy pojawi się nowy dziennik, od razu zostanie on zliczony przez Twój wskaźnik oparty na logach.

4. Gratulacje

674c4f4392e98c1.png

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

Dalsze kroki

Nawiązując do tych ćwiczeń z programowania, wypróbuj te ćwiczenia i zapoznaj się z dodatkowymi materiałami:

  • Zapoznaj się z przewodnikiem Tworzenie wskaźników dystrybucji, aby dowiedzieć się, jak tworzyć wskaźniki oparte na logach na podstawie pól liczbowych, takich jak czas oczekiwania.
  • Przejrzyj bibliotekę przykładowych zapytań dostępną w Google Cloud, aby poznać niektóre złożone filtry, których możesz używać w przypadku wskaźników opartych na logach.