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.
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
- mieć integrację z systemem Współpracuje z inteligentnym domem.
- Ukończ ćwiczenia z programowania dotyczące debugowania inteligentnego domu
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:
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:
Po napisaniu zapytania kliknij przycisk Uruchom zapytanie, aby uruchomić zapytanie. To powinno spowodować wyświetlenie błędów związanych z integracją inteligentnego domu:
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ę.
Po włączeniu zobaczysz rozkład logów pasujących do zapytania:
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:
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:
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:
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.
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.
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:
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ć:
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.
Wykres został zapisany w panelu o nazwie „Codelab Dashboard”. Po otwarciu wyświetli się ten widok:
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
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.