1. Wprowadzenie
Ostatnia aktualizacja: 2023-07-28
Co to jest pakiet operacyjny Google Cloud?
Google Cloud Operations Suite to platforma, na której możesz monitorować i rozwiązywać problemy z wydajnością aplikacji oraz ją optymalizować w środowisku Google Cloud. Kluczowe filary pakietu Cloud Operations to Cloud Monitoring, Cloud Logging i Cloud Tracing.
Obejrzyj ten film, aby uzyskać ogólne informacje na temat Google Cloud Operations.
Co utworzysz
W ramach tego ćwiczenia w Codelabs wdrożysz przykładowy interfejs API w Google Cloud. Następnie poznasz i skonfigurujesz wiele funkcji Cloud Monitoring w porównaniu z interfejsem API.
Czego się nauczysz
- Używanie Cloud Shell w Google Cloud do wdrażania przykładowej aplikacji w Cloud Run.
- Korzystanie z funkcji Google Cloud Monitoring, takich jak panele, alerty, kontrole dostępności, monitorowanie SLI/SLO i inne.
Czego potrzebujesz
- najnowszą wersję Chrome (74 lub nowszą),
- Konto Google Cloud i projekt Google Cloud
2. Konfiguracja i wymagania
Samodzielne konfigurowanie środowiska
Jeśli nie masz jeszcze konta Google (w Gmailu lub Google Apps), musisz je utworzyć. Zaloguj się w konsoli Google Cloud Platform ( console.cloud.google.com) i utwórz nowy projekt.
- Nazwa projektu to wyświetlana nazwa uczestników tego projektu. Jest to ciąg znaków, którego nie używają interfejsy API Google. Możesz ją zaktualizować w dowolnym momencie.
- Identyfikator projektu musi być niepowtarzalny we wszystkich projektach Google Cloud i nie można go zmienić (po ustawieniu). Konsole Google Cloud automatycznie generuje unikalny ciąg znaków. Zwykle nie ma znaczenia, jaki to ciąg. W większości laboratoriów z kodem musisz odwołać się do identyfikatora projektu (zwykle jest to PROJECT_ID). Jeśli nie podoba Ci się wygenerowany identyfikator, możesz wygenerować inny losowy. Możesz też spróbować użyć własnego konta i sprawdzić, czy jest ono dostępne. Po tym kroku nie można go zmienić. Pozostanie ona niezmieniona przez cały czas trwania projektu.
- Jest jeszcze trzecia wartość, czyli numer projektu używany przez niektóre interfejsy API. Więcej informacji o wszystkich 3 wartościach znajdziesz w dokumentacji.
Uwaga: identyfikator projektu musi być globalnie niepowtarzalny i nie może być używany przez nikogo innego po jego wybraniu. Jesteś jedyną osobą, która używa tego identyfikatora. Nawet po usunięciu projektu identyfikatora nie można użyć ponownie
- Następnie musisz włączyć płatności w Cloud Console, aby korzystać z zasobów Cloud/interfejsów API. Ukończenie tego ćwiczenia z programowania nie powinno kosztować zbyt wiele. Aby wyłączyć zasoby, aby nie generować opłat po zakończeniu samouczka, możesz usunąć utworzone zasoby lub cały projekt. Nowi użytkownicy Google Cloud mogą skorzystać z programu bezpłatnego okresu próbnego o wartości 300 USD.
Konfiguracja Google Cloud Shell
Google Cloud i Google Cloud Trace można obsługiwać zdalnie z laptopa, ale w tym laboratorium kodu będziemy używać Google Cloud Shell, czyli środowiska wiersza poleceń działającego w chmurze.
Aby aktywować Cloud Shell z poziomu konsoli Cloud, kliknij Aktywuj Cloud Shell (udostępnienie środowiska i połączenie z nim powinno zająć tylko kilka chwil).
Jeśli nigdy wcześniej nie uruchamiałeś(-aś) Cloud Shell, zobaczysz ekran pośredni (poniżej zgięcia) z opisem tego narzędzia. W takim przypadku kliknij Dalej (nie zobaczysz go już nigdy więcej). Oto jak wygląda ekran jednorazowy:
Uproszczenie i połączenie z Cloud Shell powinno zająć tylko kilka chwil.
Ta maszyna wirtualna ma wszystkie potrzebne narzędzia dla programistów. Zawiera stały katalog domowy o pojemności 5 GB i działa w Google Cloud, co znacznie poprawia wydajność sieci i uwierzytelnianie. Większość czynności z tego ćwiczenia z programowania można wykonać w przeglądarce lub na Chromebooku.
Po połączeniu z Cloud Shell powinieneś zobaczyć, że jesteś już uwierzytelniony i że projekt jest już ustawiony na identyfikator Twojego projektu.
Aby potwierdzić uwierzytelnianie, uruchom w Cloud Shell to polecenie:
Po połączeniu z Cloud Shell powinieneś zobaczyć, że jesteś już uwierzytelniony i że projekt jest już ustawiony na PROJECT_ID
.
gcloud auth list
Dane wyjściowe polecenia
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
Wynik polecenia
[core] project = <PROJECT_ID>
Jeśli z jakiegoś powodu projekt nie jest ustawiony, po prostu uruchom to polecenie:
gcloud config set project <PROJECT_ID>
Cloud Shell domyślnie ustawia też niektóre zmienne środowiskowe, co może być przydatne podczas wykonywania kolejnych poleceń.
echo $GOOGLE_CLOUD_PROJECT
Wynik polecenia
<PROJECT_ID>
Przykładowe aplikacje
Wszystko, czego potrzebujesz do tego projektu, jest dostępne w repozytorium Git. Repozytorium zawiera kilka przykładowych aplikacji, z których możesz skorzystać w tym ćwiczeniu.
Link do repozytorium Git: https://github.com/rominirani/cloud-code-sample-repository
3. Wdrażanie aplikacji API
O czym jest aplikacja próbna lub interfejs API?
Nasza aplikacja to prosta aplikacja Inventory API, która udostępnia punkt końcowy interfejsu API REST z kilkoma operacjami umożliwiającymi wyświetlanie listy produktów i uzyskanie liczby produktów w magazynie.
Po wdrożeniu interfejsu API, zakładając, że jest on hostowany pod adresem https://<somehost>, możemy uzyskać dostęp do punktów końcowych interfejsu API w następujący sposób:
- https://<somehost>/inventory
Spowoduje to wyświetlenie listy wszystkich produktów, które mają dostępne poziomy asortymentu.
- https://<somehost>/inventory/{productid}
W ten sposób otrzymasz jeden rekord z identyfikatorem produktu i poziomem zapasów tego produktu.
Zwracane dane odpowiedzi są w formacie JSON.
Przykładowe dane i żądanie/odpowiedź interfejsu API
Aby zachować prostotę, aplikacja nie korzysta z bazy danych na serwerze. Zawiera on 3 przykładowe identyfikatory produktów i ich poziomy zapasów.
Identyfikator produktu | Dostępny poziom zasobów reklamowych |
I-1 | 10 |
I-2 | 20 |
I-3 | 30 |
Przykładowe żądanie i odpowiedź do interfejsu API znajdziesz poniżej:
Żądanie API | Odpowiedź interfejsu API |
https://<somehost>/inventory | [ { "I-1": 10, "I-2": 20, "I-3": 30 }] |
https://<somehost>/inventory/I-1 | { "productid": "I-1", "qty": 10} |
https://<somehost>/inventory/I-2 | { "productid": "I-2", "qty": 20} |
https://<somehost>/inventory/I-200 | { "productid": I-200, "qty": -1} |
Klonowanie repozytorium
Google Cloud można obsługiwać zdalnie z laptopa, ale w tym ćwiczeniu będziesz używać Google Cloud Shell, czyli środowiska wiersza poleceń działającego w chmurze.
W konsoli GCP kliknij ikonę Cloud Shell na pasku narzędzi w prawym górnym rogu:
Uzyskanie dostępu do środowiska i połączenie się z nim powinno zająć tylko kilka chwil. Po jego zakończeniu powinno wyświetlić się coś takiego:
Ta maszyna wirtualna zawiera wszystkie potrzebne narzędzia dla programistów. Zawiera stały katalog domowy o pojemności 5 GB i działa w Google Cloud, co znacznie poprawia wydajność sieci i uwierzytelnianie. Wszystkie zadania w tym module możesz wykonać w przeglądarce.
Konfigurowanie gcloud
W Cloud Shell ustaw identyfikator projektu i zapisz go jako zmienną PROJECT_ID.
PROJECT_ID=[YOUR-PROJECT-ID]
gcloud config set project $PROJECT_ID
Teraz uruchom to polecenie:
$ git clone https://github.com/rominirani/cloud-code-sample-repository.git
Spowoduje to utworzenie w tym folderze folderu o nazwie cloud-code-sample-repository.
(Opcjonalnie) Uruchamianie aplikacji w Cloud Shell
Aby uruchomić aplikację lokalnie, wykonaj te czynności:
- W terminalu przejdź do wersji interfejsu API w języku Python, używając tego polecenia:
$ cd cloud-code-sample-repository
$ cd python-flask-api
- W terminalu wpisz to polecenie (w momencie pisania tego artykułu w Cloud Shell jest zainstalowana wersja Pythona 3.9.x, więc użyjemy wersji domyślnej). Jeśli planujesz uruchomić aplikację lokalnie na laptopie, możesz użyć Pythona 3.8 lub nowszego:
$ python app.py
- Aby uruchomić serwer Python lokalnie, wykonaj to polecenie:
- Spowoduje to uruchomienie serwera na porcie 8080. Możesz go przetestować lokalnie za pomocą funkcji Podgląd w przeglądarce w Cloud Shell. Kliknij przycisk Podgląd w przeglądarce, jak pokazano na ilustracji:
Kliknij Podgląd na porcie 8080.
- Otworzy się okno przeglądarki. Zobaczysz błąd 404, ale to normalne. Zmień adres URL tak, aby po nazwie hosta pojawiał się tylko ciąg /inventory.
Na przykład na moim komputerze wygląda to tak:
https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory
Pojawi się lista pozycji asortymentu, jak wyjaśniliśmy wcześniej:
- Możesz teraz zatrzymać serwer, otwierając Terminal i naciskając Ctrl-C.
Wdrażanie aplikacji
Teraz wdrożymy tę aplikację API w Cloud Run. W tym celu należy użyć klienta wiersza poleceń gcloud, aby uruchomić polecenie wdrażania kodu na Cloud Run.
W terminalu uruchom to polecenie gcloud:
$ gcloud run deploy --source .
Uzyskasz dostęp do wielu pytań (jeśli pojawi się prośba o autoryzację, potwierdź ją). Niektóre z nich znajdziesz poniżej. Możesz otrzymać wszystkie pytania lub nie, w zależności od konfiguracji i tego, czy masz już włączone określone interfejsy API w projekcie Google Cloud.
- Nazwa usługi (python-flask-api): użyj domyślnej nazwy lub wybierz coś takiego jak my-inventory-api.
- Interfejs API [run.googleapis.com] nie jest włączony w projekcie [numer-projektu]. Czy chcesz włączyć tę funkcję i spróbować ponownie (może to potrwać kilka minut)? (tak/nie)? T
- Określ region: podaj numer i wybierz region.
- Interfejs API [artifactregistry.googleapis.com] nie jest włączony w projekcie [numer-projektu]. Czy chcesz włączyć tę funkcję i spróbować ponownie (może to potrwać kilka minut)? (tak/nie)? T
- Wdrożenie z poziomu źródła wymaga repozytorium Dockera w Artifact Registry, w którym można przechowywać skompilowane kontenery. Zostanie utworzone repozytorium o nazwie [cloud-run-source-deploy] w regionie [us-west1].
Czy chcesz kontynuować (Y/n)? T
- Zezwalaj na nieuwierzytelnione wywołania [my-inventory-api] (tak/nie)? T
W efekcie rozpocznie się proces pobierania kodu źródłowego, skonteneryzowania go, wypychania do Artifact Registry, a następnie wdrażania usługi Cloud Run z rewizją. Ten proces może potrwać 3–4 minuty. Po jego zakończeniu powinieneś zobaczyć adres URL usługi.
Poniżej przedstawiono przykładowy przebieg:
Testowanie aplikacji
Teraz, gdy aplikacja została wdrożona do Cloud Run, możesz uzyskać do niej dostęp w ten sposób:
- Zapisz adres URL usługi z poprzedniego kroku. Na przykład w mojej konfiguracji jest to
https://my-inventory-api-bt2r5243dq-uw.a.run.app
. Nazwijmy go <SERVICE_URL>. - Otwórz przeglądarkę i uzyskaj dostęp do tych 3 adresów URL punktów końcowych interfejsu API:
- <SERVICE_URL>/inventory
- <SERVICE_URL>/inventory/I-1
- <SERVICE_URL>/inventory/I-100
Powinien on być zgodny ze specyfikacją podaną w poprzedniej sekcji z przykładowym żądaniem i odpowiedzią interfejsu API.
Pobieranie szczegółów usługi z Cloud Run
Wdrożyliśmy usługę API w Cloud Run, czyli bezserwerowym środowisku obliczeniowym. W dowolnym momencie możemy otworzyć usługę Cloud Run w konsoli Google Cloud.
W menu głównym przejdź do Cloud Run. Wyświetli się lista usług uruchomionych w Cloud Run. Powinna być widoczna wdrożona przed chwilą usługa. W zależności od wybranej nazwy powinna wyświetlić się nazwa podobna do tej:
Kliknij nazwę usługi, aby wyświetlić szczegóły. Poniżej znajdziesz przykładowe szczegóły:
Zwróć uwagę na adres URL, który jest niczym innym jak adresem URL usługi. Możesz go wpisać w przeglądarce i uzyskać dostęp do właśnie wdrożonego interfejsu Inventory API. Możesz też sprawdzić dane i inne szczegóły.
Zacznijmy od pakietu operacyjnego Google Cloud.
4. Konfigurowanie panelu
Jedną z przydatnych funkcji, które oferuje Cloud Monitoring, są panele typu „Out-of-the-Box” (OOTB) obejmujące wiele zasobów w Google Cloud. Dzięki temu wstępna konfiguracja paneli ze standardowymi danymi jest szybka i wygodna.
Zobaczmy, jak to zrobić w przypadku usługi API, którą właśnie wdrożono w Cloud Run.
Niestandardowy panel naszej usługi
Ponieważ usługa interfejsu API została wdrożona do Cloud Run, sprawdźmy, jak skonfigurować panele, które pomogą Ci wizualizować różne dane, w tym opóźnienie usługi.
W konsoli kliknij Monitorowanie → Przegląd:
W sekcji Omówienie znajdziesz wiele elementów skonfigurowanych w sekcji Monitorowanie, takich jak panele, alerty, kontrole dostępności itp.
Kliknij Panele w menu głównym po lewej stronie. Pojawi się ten ekran:
Kliknij BIBLIOTEKA PRZYKŁADÓW . Wyświetli się lista dostępnych w Google Cloud gotowych paneli, które obejmują wiele zasobów. W tym celu przewiń listę w dół i wybierz Google Cloud Run, jak pokazano na ilustracji.
Wyświetli się lista standardowych paneli dostępnych w Google Cloud Run. Jesteśmy zainteresowani tym, ponieważ wdrożylismy naszą usługę w Cloud Run.
Zobaczysz 1 panel Monitoringu Cloud Run. Kliknij link PODGLĄD, aby wyświetlić listę standardowych wykresów (danych), które są dostępne w przypadku monitorowania Cloud Run. Aby zaimportować wszystkie te wykresy do panelu niestandardowego, kliknij IMPORTUJ PRZYKŁADOWY PANEL. Zostanie wyświetlony ekran Panelu z wstępnie wypełnioną nazwą, jak pokazano poniżej:
Możesz do niego wrócić , klikając strzałkę w lewo, która znajduje się po lewej stronie nazwy panelu w prawym górnym rogu. Spowoduje to przejście do listy paneli, na której powinien być widoczny nowo utworzony panel.
Kliknij link do panelu, aby wyświetlić różne dostępne domyślnie dane. Dane te obejmują m.in. opóźnienie, liczbę żądań i dane dotyczące kontenera.
Możesz też oznaczyć dowolny panel jako ulubiony, klikając ikonę gwiazdki, jak pokazano poniżej:
Spowoduje to dodanie panelu do ekranu Przegląd na stronie Monitorowanie i umożliwia łatwe przechodzenie do często używanych paneli.
Świetnie! Panel niestandardowy do monitorowania usług Cloud Run został właśnie dodany. Brawo!
5. Kontrole dostępności
W tej sekcji skonfigurujemy kontrolę dostępności dla wdrożonej usługi interfejsu API. Publiczna kontrola dostępności może wysyłać żądania z wielu lokalizacji na całym świecie do publicznie dostępnych adresów URL lub zasobów Google Cloud, aby sprawdzić, czy zasób odpowiada.
W tym przypadku zasobem będzie usługa API wdrożona w Cloud Run. Adres URL będzie określonym punktem końcowym, który usługa interfejsu API udostępnia, aby wskazać stan usługi.
W przykładowym kodzie usługi API ujawniliśmy punkt końcowy /healthy, który zwraca wartość ciągu znaków „All Izz Well”. Wystarczy, że zdefiniować kontrolę dostępności, która wykonuje działanie w rodzaju https://<URL_USŁUGI>/healthy i sprawdzić, czy ciąg "All Izz Well" jest zwracany.
Tworzenie kanału powiadomień
Przed utworzeniem kontroli dostępności należy skonfigurować kanały powiadomień. Kanał powiadomień to medium, za pomocą którego otrzymasz powiadomienie, jeśli wystąpi incydent lub problem z którymś z monitorowanych zasobów. Przykładem kanału powiadomień jest e-mail. Otrzymasz e-maile w przypadku alertu itp.
Na razie skonfigurujemy kanał powiadomień e-mail, podając nasz adres e-mail, abyśmy mogli otrzymywać powiadomienia o wszelkich alertach, które nasz system wygeneruje i które skonfigurujemy.
Aby utworzyć kanał powiadomień:
W głównym menu konsoli Google Cloud kliknij Monitorowanie → Alerty:
Wyświetli się strona z alertami, zasadami i innymi informacjami. Na razie będziesz widzieć u góry link EDYTUJ KANAŁY POWIADOMIEŃ. Kliknij tę opcję.
Wyświetli się lista różnych kanałów powiadomień:
Znajdź sekcję E-mail i w odpowiadającym mu wierszu kliknij DODAJ NOWY. Pojawi się okno z informacjami o konfiguracji poczty e-mail, jak pokazano poniżej:
Wpisz swój adres e-mail i wyświetlaną nazwę, jak pokazano poniżej. Kliknij ZAPISZ.
W ten sposób utworzysz kanał powiadomień e-mail. Skonfigurujmy teraz kontrolę dostępności.
Tworzenie kontroli dostępności
W głównym menu konsoli Google Cloud otwórz Monitorowanie → Kontrole dostępności. U góry zobaczysz link UTWÓRZ SPRAWDZANIE CZAS PRACY. Kliknij ją.
Spowoduje to wyświetlenie serii czynności, które musisz wykonać, aby skonfigurować kontrolę dostępności.
Pierwszym krokiem jest skonfigurowanie szczegółów celu, czyli informacji o wdrożonej usłudze Cloud Run. Poniżej możesz zobaczyć wypełniony formularz:
Różne wartości można wybrać w ten sposób:
- Protokół : HTTPS
- Typ zasobu : wybierz usługę Cloud Run. Zwróć uwagę na inne obsługiwane zasoby, w których możesz skonfigurować kontrolę dostępności.
- Usługa Cloud Run : wybierz my-inventory-api lub konkretną nazwę usługi Cloud Run.
- Ścieżka to /healthy, ponieważ zwracamy ciąg „All Izz Well”, co chcemy sprawdzić.
Aby przejść do następnego kroku, kliknij DALEJ. Kolejny krok to weryfikacja odpowiedzi, jak pokazano poniżej:
Jak widać, włączamy sprawdzanie dopasowania treści i konfigurujemy odpowiedź zwracaną przez punkt końcowy /healthy („All Izz Well”). Kliknij KONTYNUUJ, aby przejść do następnego kroku, w którym skonfigurujemy alert i kanał powiadomień, na który mają być wysyłane alerty w przypadku niepowodzenia kontroli dostępności.
W tym kroku nadaj nazwę alertowi. Wybrałem Sprawdzanie dostępności interfejsu Inventory API, ale możesz wybrać swoją nazwę. Ważne jest, aby z listy skonfigurowanych wcześniej kanałów wybrać odpowiedni kanał powiadomień.
Kliknij SPRAWDŹ, aby przejść do ostatniego kroku, aby przejrzeć skonfigurowaną kontrolę dostępności.
W ostatnim kroku nazwij kontrolę dostępności (np. Inventory API Uptime Check), aby sprawdzić, czy kontrola jest prawidłowo skonfigurowana. W tym celu kliknij przycisk TEST.
Dokończ proces (kliknij przycisk UTWÓRZ po lewej stronie). Google Cloud instruuje sondy kontroli dostępności skonfigurowane w różnych regionach tak, aby pingowały adres URL, co spowoduje zbieranie tych odpowiedzi. Po kilku minutach otwórz sekcję Monitorowanie → Kontrole dostępności. W idealnej sytuacji wszystkie sygnały powinny być zielone, co oznacza, że adres URL był dostępny z różnych sond.
Jeśli którykolwiek z testów się nie powiedzie przez pewien czas (co można skonfigurować), otrzymasz powiadomienie o alertach na skonfigurowanym przez nas kanale e-mail.
To już koniec sekcji poświęconej konfigurowaniu kontroli dostępności. Brawo!
6. Metrics Explorer
Cloud Monitoring udostępnia tysiące standardowych danych pochodzących z wielu usług Google Cloud. Możesz analizować te dane, tworzyć zapytania, przekształcać je w wykresy, dodawać je do paneli i przesyłać alerty dotyczące innych kwestii.
Naszym celem w tej sekcji jest:
- Dowiedz się, jak możesz sprawdzać różne dane, a potem zbadaj konkretny rodzaj danych (opóźnienie) w naszej usłudze interfejsu API.
- Przekształcić te dane w wykres i panel niestandardowy, aby móc je w dowolnym momencie wizualizować.
Poznaj wskaźnik czasu oczekiwania dla usługi interfejsu Inventory API
W menu głównym konsoli Google Cloud wybierz Monitorowanie → Metrics Explorer. Spowoduje to przejście do ekranu Metrics Explorer. Kliknij WYBIERZ DANE. Możesz teraz poruszać się po kilku aktywnych zasobach, w których zostały wygenerowane wskaźniki.
Ponieważ mamy do czynienia z usługami Cloud Run, kliknij Wersja Cloud Run, a potem kategorię i konkretny wskaźnik o nazwie Opóźnienie żądania, jak pokazano poniżej:
Kliknij Zastosuj. Wyświetli się wykres opóźnienia żądania. Typ widżetu możesz zmienić na wykres liniowy w ustawieniach wyświetlacza po prawej stronie, jak pokazano poniżej:
Spowoduje to wyświetlenie wykresu czasu oczekiwania, jak pokazano poniżej:
Tworzenie wykresu i panelu niestandardowego
Zapiszmy ten wykres. Kliknij Zapisz wykres i postępuj zgodnie z poniższymi informacjami:
Pamiętaj, że tworzymy nowy panel, a nie zapisujemy go w dotychczasowym panelu. Kliknij przycisk ZAPISZ. Spowoduje to dodanie nowo utworzonego panelu do listy paneli, jak pokazano poniżej:
Kliknij utworzony panel, aby wyświetlić jego szczegóły.
To już koniec sekcji poświęconej analizowaniu różnych danych za pomocą Eksploratora danych oraz tworzeniu własnych paneli.
7. Cloud Logging
W tej sekcji omówimy usługę Cloud Logging. Cloud Logging zawiera interfejs Eksplorator logów, który ułatwia nawigację po logach generowanych przez różne usługi Google i Twoje własne aplikacje.
W tej sekcji poznasz Eksplorator logów i zsymulujesz kilka komunikatów logowania, które możesz następnie wyszukać i przekształcić w dane za pomocą funkcji Dane oparte na logach.
Eksplorator logów
Eksplorator logów jest dostępny w sekcji Logowanie → Eksplorator logów w głównej konsoli Google Cloud, jak pokazano na ilustracji poniżej:
Wyświetli się interfejs logów, w którym możesz wybrać lub odznaczyć różne zasoby (projekt, zasób Google Cloud, nazwy usług itp.) oraz poziomy logów, aby w razie potrzeby filtrować komunikaty logów.
Powyżej przedstawiliśmy listę logów wersji Cloud Run, tj. wdrożonych przez nas usług Cloud Run. Zobaczysz kilka żądań, które są sprawdzaniem dostępności, kierowanych do skonfigurowanego przez nas punktu końcowego /healthy.
Szukaj ostrzeżeń
Symuluj kilka nieprawidłowych żądań do usługi Inventory, podając identyfikatory produktów, które nie są I-1, I-2 ani I-3. Przykłady nieprawidłowych żądań:
https://<SERVICE_URL>/inventory/I-999
Jeśli w zapytaniu podany zostanie nieprawidłowy identyfikator produktu, będziemy teraz wyszukiwać wszystkie ostrzeżenia wygenerowane przez nasz interfejs API.
W polu Zapytanie wstaw te parametry zapytania:
resource.type="cloud_run_revision"
textPayload =~ "Received inventory request for incorrect productid"
Powinna wyglądać mniej więcej tak:
Kliknij Uruchom zapytanie. Wyświetli się lista wszystkich żądań, które zostały przesłane i mają ten problem.
Wskaźniki oparte na logach
Aby śledzić te błędy, utwórz niestandardowy wskaźnik dziennika. Chcielibyśmy się dowiedzieć, czy ma miejsce znaczna liczba połączeń z niewłaściwymi identyfikatorami produktów.
Aby przekształcić powyższe dane w dane o błędach, kliknij przycisk Utwórz dane w eksploratorze logów.
Otworzy się formularz do tworzenia definicji danych. Wybierz typ danych Licznik, a następnie podaj szczegóły dotyczące nazwy danych (inventory_lookup_errors) i opisu, jak pokazano poniżej. Następnie kliknij Utwórz dane.
Spowoduje to utworzenie danych typu licznik i wyświetlenie komunikatu podobnego do tego:
W menu głównym kliknij kolejno Rejestrowanie → Dane oparte na logach. Na liście danych zdefiniowanych przez użytkownika powinieneś zobaczyć dane niestandardowe zdefiniowane przez nas w następujący sposób:
Na końcu tego wpisu znajdziesz 3 pionowe kropki. Kliknij je, aby zobaczyć operacje, które możesz wykonać na tych danych niestandardowych. Lista powinna być podobna do tej poniżej. Kliknij opcję Wyświetl w narzędziu Metrics Explorer.
Powinniśmy trafić do obszaru analizy danych, który opisywaliśmy w poprzedniej sekcji, z tą różnicą, że teraz jest on wstępnie wypełniony.
Kliknij Zapisz wykres. W opcjach zapisywania wykresu użyj tych wartości:
Spowoduje to utworzenie nowego panelu, na którym będą widoczne błędy wyszukiwania asortymentu. Panel będzie dostępny na liście paneli.
Świetnie! Na podstawie logów utworzyłeś dane niestandardowe, które zostały przekształcone w wykres na niestandardowym panelu. Pomoże nam to śledzić liczbę połączeń, które używają nieprawidłowych identyfikatorów produktów.
8. Zasady tworzenia alertów
W tej sekcji użyjemy utworzonych przez nas danych niestandardowych i będziemy monitorować ich wartości, aby sprawdzić, czy nie przekraczają określonego progu. Jeśli liczba błędów przekroczy określony próg, wyślemy alert. Innymi słowy, skonfigurujemy zasadę tworzenia alertów.
Tworzenie zasady tworzenia alertów
Przejdźmy do panelu wyszukiwania zasobów reklamowych. Pojawi się wykres, który utworzyliśmy, aby wskazać błędy wyszukiwania zasobów reklamowych, jak pokazano poniżej:
Spowoduje to wyświetlenie bieżących danych. Najpierw edytuj dane, jak pokazano poniżej (kliknij przycisk Edytuj):
Pojawią się szczegóły danych. Zmieńmy wykres tak, aby zamiast częstotliwości występowania błędów wyświetlał ich łączną liczbę. Pole, które można zmienić, znajduje się poniżej:
W prawym górnym rogu kliknij ZASTOSUJ. Ponownie wyświetlimy się na ekranie Dane, ale tym razem będziemy mogli zobaczyć łączną liczbę błędów w okresie wyrównywania w porównaniu z częstotliwością błędów.
Utworzymy zasadę tworzenia alertów, która będzie nas powiadamiać, gdy liczba błędów przekroczy określony próg. Kliknij 3 kropki w prawym górnym rogu wykresu, a na liście opcji, jak pokazano powyżej, kliknij Konwertuj na wykres alertów.
Zobaczysz ekran podobny do tego:
Kliknij Dalej, aby wyświetlić wartość progu, którą możesz ustawić. Przykładowy próg, który tutaj zastosowaliśmy, to 5, ale możesz wybrać dowolny próg.
Kliknij DALEJ, aby otworzyć formularz powiadomień.
Wybraliśmy Kanał powiadomień jako utworzony wcześniej kanał e-mail. Możesz podać inne szczegóły, takie jak dokumentacja (będzie ona udostępniona w ramach zgłoszonego alertu). Kliknij DALEJ, aby wyświetlić podsumowanie i dokończyć proces.
Po utworzeniu tej zasady tworzenia alertów będzie ona widoczna na liście zasad tworzenia alertów, jak pokazano poniżej. Listę zasad tworzenia alertów znajdziesz, klikając Monitorowanie → Alerty. Przejrzyj stronę, aby znaleźć sekcję Zasady, w której znajdziesz listę dotychczas skonfigurowanych zasad.
Świetnie! Skonfigurowano niestandardową zasadę alertów, która będzie wysyłać powiadomienia w przypadku zwiększonej liczby błędów podczas wyszukiwania w interfejsie Inventory API.
9. Monitorowanie usług (opcjonalnie)
W tej sekcji skonfigurujemy wskaźniki SLI/SLO dla naszych usług zgodnie z zasadami inżynierii niezawodności witryny (SRE). Zauważysz, że monitorowanie w usłudze Cloud ułatwia Ci pracę, automatycznie wykrywając usługi wdrożone w Cloud Run. Może też automatycznie obliczać kluczowe wskaźniki SLI, takie jak dostępność i opóźnienie, a także budżet błędów.
Skonfigurujmy teraz SLO dotyczący czasu oczekiwania dla usługi interfejsu API.
Konfigurowanie poziomu usług Czas oczekiwania dla usługi Zasoby reklamowe
W menu głównym Cloud Console kliknij Monitorowanie → Usługi. Spowoduje to wyświetlenie listy usług skonfigurowanych pod kątem monitorowania usług.
Obecnie nie mamy żadnych usług skonfigurowanych pod kątem monitorowania SLI/SLO, więc lista jest pusta. Kliknij link DEFINE SERVICE (Określ usługę) u góry strony, aby najpierw zdefiniować / określić usługę.
Spowoduje to automatyczne wykrywanie usług, które mogą być kandydatami do monitorowania docelowego poziomu usług. Jest ona w stanie wykrywać usługi Cloud Run, więc nasza usługa interfejsu Inventory API wdrożona w Cloud Run będzie widoczna na liście.
Wyświetlana nazwa może być inna i zależy od tego, co zostało wybrane podczas wdrażania usługi w Cloud Run. Kliknij przycisk PRZEŚLIJ. Pojawi się ekran pokazany poniżej:
Możesz kliknąć UTWÓRZ SLO. Dzięki temu będziesz mieć możliwość wyboru spośród SLI, które są obliczane automatycznie.
Na początek wybieramy Wskaźnik czasu oczekiwania. Kliknij DALEJ. Następnie zobaczysz ekran z aktualną wydajnością tej usługi i typowym opóźnieniem.
W polu Prog ustaw wartość 300 ms, czyli wartość, którą chcemy osiągnąć. Jeśli chcesz, możesz wybrać inną wartość, ale pamiętaj, że wpłynie to na określony przez Ciebie budżet błędów. Kliknij DALEJ.
Teraz ustaw docelowe poziom usług (okno docelowe i okno pomiaru) w ten sposób:
Oznacza to, że wybieramy okno pomiarowe jako okno ruchome i mierzymy je przez 7 dni. Podobnie w przypadku docelowego współczynnika konwersji wybraliśmy wartość 90%. Oznacza to, że 90% żądań wysyłanych do usługi interfejsu API powinno zostać zrealizowanych w ciągu 300 ms. Czas ten powinien być mierzony w ciągu 7 dni.
Kliknij Dalej. Pojawi się ekran podsumowania, który możesz potwierdzić, klikając przycisk ZMIEŃ CZAS REALIZACJI OBIETNICY.
Dzięki temu zapiszesz definicję docelowego poziomu usług, a budżet błędów zostanie obliczony automatycznie.
Oto kilka rzeczy, które możesz zrobić:
- Wykorzystaj interfejs API za pomocą wielu wywołań, aby sprawdzić wydajność usługi i sposób, w jaki wpływa ona na pozostały budżet błędów.
- Zmodyfikuj kod źródłowy, aby wprowadzić dodatkowe losowe opóźnienie (uśpienie) w niektórych wywołaniach. Spowoduje to wydłużenie opóźnienia w przypadku wielu wywołań i powinno negatywnie wpłynąć na budżet błędów.
10. Gratulacje
Gratulacje! Udało Ci się wdrożyć przykładową aplikację do Google Cloud i dowiedzieć się, jak za pomocą pakietu operacyjnego Google Cloud monitorować kondycję aplikacji.
Omówione zagadnienia
- wdrażać usługę w Google Cloud Run,
- Konfigurowanie panelu dla usługi Google Cloud Run.
- Kontrole dostępności.
- Konfigurowanie na ich podstawie niestandardowych wskaźników logów oraz paneli/wykresów.
- Poznawanie narzędzia Metrics Explorer i konfigurowanie panelu lub wykresu.
- Konfigurowanie zasad tworzenia alertów.
- Konfigurowanie SLI/SLO na potrzeby monitorowania usług w Google Cloud.
Uwaga: jeśli wykonasz ćwiczenie na swoim koncie i w projekcie Google Cloud, przydzielone zasoby mogą nadal generować opłaty. Po zakończeniu modułu usuń projekt i zasoby.
Co dalej?
Aby dowiedzieć się więcej o pakiecie operacyjnym Google Cloud, przejdź przez ten kurs.