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.
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
- mieć integrację Współpracuje z inteligentnym domem,
- Wykonaj ćwiczenia z programowania dotyczące debugowania inteligentnego domu
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:
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:
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:
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.
Gdy ta funkcja jest włączona, zobaczysz rozkład logów pasujących do zapytania:
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:
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:
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:
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.
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.
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:
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ć:
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.
Zapisaliśmy nasz wykres w panelu o nazwie „Panel ćwiczeń z programowania”. Po otwarciu okna zobaczysz ten widok:
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
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.