Wprowadzenie do Cloud Operations Suite

1. Wprowadzenie

Ostatnia aktualizacja: 28.07.2023 r.

Czym jest Google Cloud Operations Suite?

Google Cloud Operations Suite to platforma, na której możesz monitorować i poprawiać wydajność aplikacji w środowisku Google Cloud, a także rozwiązywać związane z nimi problemy. Najważniejsze filary pakietu Cloud Operations to Cloud Monitoring, Cloud Logging i Cloud Tracking.

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

  • Wykorzystanie Cloud Shell Google Cloud do wdrożenia przykładowej aplikacji w Cloud Run.
  • korzystanie z funkcji Google Cloud Monitoring, takich jak panele, alerty, kontrole dostępności, monitorowanie SLI/SLO i nie tylko.

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.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

c20a9642aaa18d11.png

  • Nazwa projektu jest wyświetlaną nazwą uczestników tego projektu. To ciąg znaków, który nie jest używany przez interfejsy API Google. W każdej chwili możesz ją zmienić.
  • Identyfikator projektu musi być unikalny we wszystkich projektach Google Cloud i nie można go zmienić (nie można go zmienić po ustawieniu). Cloud Console automatycznie wygeneruje unikalny ciąg znaków. zwykle nieważne, co ona jest. W większości ćwiczeń z programowania konieczne jest odwołanie się do identyfikatora projektu (zwykle jest to PROJECT_ID). Jeśli nie podoba Ci się wygenerowany identyfikator, możesz wygenerować kolejny losowy. Możesz też spróbować własnych sił i sprawdzić, czy jest dostępna. Potem nie będzie można go zmienić. Pozostanie ono przez 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 unikalny i po wybraniu nie może być używany przez nikogo innego. Jesteś jedynym użytkownikiem tego identyfikatora. Nawet po usunięciu projektu identyfikatora nie można użyć ponownie

  1. 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 naliczać opłat po zakończeniu tego 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

Usługi Google Cloud i Google Cloud Trace można obsługiwać zdalnie z poziomu laptopa, ale w tym ćwiczeniu z programowania wykorzystamy Google Cloud Shell – środowisko wiersza poleceń działające w chmurze.

Aby aktywować Cloud Shell z poziomu konsoli Google Cloud, kliknij Aktywuj Cloud Shell (udostępnienie i połączenie ze środowiskiem powinno zająć tylko kilka chwil).

30c26f30d17b3d46.png

Jeśli dopiero zaczynasz korzystać z Cloud Shell, wyświetli się ekran pośredni (w części strony widocznej po przewinięciu) z opisem tej funkcji. W takiej sytuacji kliknij przycisk Kontynuuj (nie zobaczysz go więcej). Tak wygląda ten jednorazowy ekran:

9c92662c6a846a5c.png

Uzyskanie dostępu do Cloud Shell i połączenie się z nim powinno zająć tylko kilka chwil.

9f0e51b578fecce5.png

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 zwiększa wydajność sieci i uwierzytelnianie. Większość czynności z tego ćwiczenia z programowania można wykonać w przeglądarce lub na Chromebooku.

Po nawiązaniu połączenia z Cloud Shell powinno pojawić się informacja, że użytkownik jest już uwierzytelniony i że projekt jest już ustawiony na identyfikator Twojego projektu.

Uruchom to polecenie w Cloud Shell, aby potwierdzić, że jesteś uwierzytelniony:

Po nawiązaniu połączenia z Cloud Shell powinno pojawić się potwierdzenie, że użytkownik jest już uwierzytelniony, a projekt jest już ustawiony na PROJECT_ID.

gcloud auth list

Dane wyjściowe polecenia

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)
gcloud config list project

Dane wyjściowe polecenia

[core]
project = <PROJECT_ID>

Jeśli z jakiegoś powodu projekt nie jest skonfigurowany, uruchom po prostu to polecenie:

gcloud config set project <PROJECT_ID>

Cloud Shell ustawia też domyślnie niektóre zmienne środowiskowe, które mogą być przydatne podczas uruchamiania kolejnych poleceń.

echo $GOOGLE_CLOUD_PROJECT

Dane wyjściowe polecenia

<PROJECT_ID>

Przykładowe aplikacje

Wszystko, czego potrzebujesz do tego projektu, umieściliśmy w repozytorium Git. Repozytorium zawiera kilka przykładowych aplikacji, które możesz wykorzystać w tym ćwiczeniu.

Link do repozytorium Git: https://github.com/rominirani/cloud-code-sample-repository

3. Wdrażanie aplikacji interfejsu API

Czego dotyczy przykładowa aplikacja lub interfejs API?

Nasza aplikacja to prosta aplikacja Inventory API, która udostępnia punkt końcowy interfejsu API REST z kilkoma operacjami w celu wyświetlania listy elementów asortymentu i pobierania określonej liczby zasobów.

Po wdrożeniu interfejsu API, zakładając, że jest on hostowany pod adresem https://&lt;somehost&gt;, możemy uzyskać dostęp do punktów końcowych interfejsu API w następujący sposób:

  • https://&lt;somehost&gt;/inventory

Spowoduje to wyświetlenie listy wszystkich produktów, które mają dostępne poziomy asortymentu.

  • https://&lt;somehost&gt;/inventory/{productid}

Dzięki temu uzyskasz pojedynczy rekord z identyfikatorem produktu oraz dostępnym poziomem asortymentu dla tego produktu.

Zwracane dane odpowiedzi mają format JSON.

Przykładowe dane i żądanie/odpowiedź interfejsu API

Dla uproszczenia aplikacja nie korzysta z bazy danych w backendzie. Zawiera on 3 przykładowe identyfikatory produktów i ich dostępne poziomy asortymentu.

Identyfikator produktu

Stan asortymentu

I-1

10

I-2

20

I-3

30

Przykładowe żądanie i odpowiedź do interfejsu API znajdziesz poniżej:

Żądanie do interfejsu API

Odpowiedź interfejsu API

https://&lt;somehost&gt;/inventory

[ { &quot;I-1&quot;: 10, &quot;I-2&quot;: 20, &quot;I-3&quot;: 30 }]

https://&lt;somehost&gt;/inventory/I-1

{ &quot;productid&quot;: &quot;I-1&quot;, &quot;qty&quot;: 10}

https://&lt;somehost&gt;/inventory/I-2

{ &quot;productid&quot;: &quot;I-2&quot;, &quot;qty&quot;: 20}

https://&lt;somehost&gt;/inventory/I-200

{ &quot;productid&quot;: I-200, &quot;qty&quot;: -1}

Klonowanie repozytorium

Google Cloud można obsługiwać zdalnie z laptopa, ale w ramach tego ćwiczenia z programowania wykorzystasz Google Cloud Shell – środowisko wiersza poleceń działające w chmurze.

W konsoli GCP kliknij ikonę Cloud Shell na górnym pasku narzędzi:

bce75f34b2c53987.png

Uzyskanie dostępu do środowiska i połączenie się z nim powinno zająć tylko kilka chwil. Po zakończeniu powinno pojawić się coś takiego:

f6ef2b5f13479f3a.png

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, znacząco zwiększając wydajność sieci i uwierzytelnianie. Wszystkie zadania w tym module możesz wykonać w przeglądarce.

Skonfiguruj 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 nim folderu o nazwie cloud-code-sample-repository.

(Opcjonalnie) Uruchamianie aplikacji w Cloud Shell

Aby uruchomić aplikację lokalnie, wykonaj te czynności:

  1. W terminalu przejdź do wersji interfejsu API w języku Python za pomocą tego polecenia:
$ cd cloud-code-sample-repository
$ cd python-flask-api
  1. W terminalu wpisz to polecenie (w chwili pisania do Cloud Shell zainstalowany jest Python 3.9.x i będziemy korzystać z wersji domyślnej. Jeśli chcesz uruchomić ją lokalnie na laptopie, możesz użyć Pythona 3.8 lub nowszego:
$ python app.py
  1. Aby lokalnie uruchomić serwer Pythona, możesz uruchomić poniższe polecenie.

26570f586acaeacf.png

  1. Spowoduje to uruchomienie serwera na porcie 8080 i możliwość przetestowania go lokalnie za pomocą funkcji podglądu w przeglądarce Cloud Shell. Kliknij przycisk Podgląd w przeglądarce, jak pokazano poniżej:

675d9b3097a6209c.png

Kliknij Podgląd na porcie 8080.

  1. Otworzy się okno przeglądarki. Wyświetli się błąd 404, a to nie problem. 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:

ef6afb0184c58870.png

  1. Aby zatrzymać serwer, przejdź do terminala i naciśnij Ctrl-C.

Wdrażanie aplikacji

Teraz wdrożymy tę aplikację API w Cloud Run. Proces wdrażania kodu w Cloud Run wymagał użycia klienta wiersza poleceń glcoud do uruchomienia polecenia.

W terminalu wpisz to polecenie gcloud:

$ gcloud run deploy --source .

Pojawi się kilka pytań (jeśli pojawi się prośba o autoryzację), niektóre z nich znajdziesz poniżej. Odpowiedzi na wszystkie pytania mogą się nie pojawić. Zależy to od konfiguracji i tego, czy w swoim projekcie Google Cloud masz już włączone określone interfejsy API.

  1. Nazwa usługi (python-flask-api): użyj tej wartości domyślnej lub wybierz coś w rodzaju my-inventory-api.
  2. Interfejs API [run.googleapis.com] nie został włączony w projekcie [numer-projektu]. Czy chcesz włączyć tę funkcję i spróbować ponownie (zajmie to kilka minut)? (y/N)? T
  3. Określ region: podaj numer i wybierz region.
  4. W projekcie [numer-projektu] nie włączono interfejsu API [artifactregister.googleapis.com]. Czy chcesz włączyć tę funkcję i spróbować ponownie (zajmie to kilka minut)? (y/N)? T
  5. Wdrożenie ze źródła wymaga repozytorium Dockera w Artifact Registry do przechowywania utworzonych kontenerów. Zostanie utworzone repozytorium o nazwie [cloud-run-source-deploy] w regionie [us-west1].

Czy chcesz kontynuować (T/n)? T

  1. Zezwolić na nieuwierzytelnione wywołania [my-inventory-api] (y/N)? T

W końcu spowoduje to uruchomienie procesu pobierania kodu źródłowego, skonteneryzowania go, wypchnięcia do Artifact Registry, a następnie wdrożenia usługi i wersji Cloud Run. Prosimy o cierpliwość (może to potrwać 3–4 minuty). Proces powinien się zakończyć wraz z wyświetlanym adresem URL usługi.

Przykładowe uruchomienie:

7516696ea5b3004b.png

Testowanie aplikacji

Po wdrożeniu aplikacji w Cloud Run możesz uzyskać dostęp do aplikacji API w ten sposób:

  1. Zapisz adres URL usługi z poprzedniego kroku. Na przykład: w mojej konfiguracji jest on wyświetlany jako https://my-inventory-api-bt2r5243dq-uw.a.run.app. Nazwijmy go &lt;SERVICE_URL&gt;.
  2. Otwórz przeglądarkę i otwórz te 3 adresy URL punktów końcowych interfejsu API:
  3. &lt;SERVICE_URL&gt;/inventory
  4. <URL_USŁUGI>/inventory/I-1
  5. <URL_USŁUGI>/inventory/I-100

Powinna ona być zgodna ze specyfikacją, którą przedstawiliśmy we wcześniejszej sekcji z przykładowymi żądaniami i odpowiedziami do interfejsu API.

Pobieranie szczegółów usługi z Cloud Run

Wdrożyliśmy naszą usługę API w Cloud Run – bezserwerowym środowisku obliczeniowym. Usługę Cloud Run możemy w każdej chwili otworzyć w konsoli Google Cloud.

W menu głównym otwórz Cloud Run. Spowoduje to wyświetlenie listy 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:

10d2c363241d789c.png

Kliknij nazwę usługi, aby wyświetlić szczegóły. Szczegóły przykładu znajdziesz poniżej:

1ec2c9e45ff1a2db.png

Zwróć uwagę na adres URL, który jest tylko adresem URL usługi, który możesz wpisać w przeglądarce i uzyskać dostęp do wdrożonego właśnie interfejsu Inventory API. Znajdziesz je w sekcji Dane i inne szczegóły.

Zacznijmy od Google Cloud Operations Suite.

4. Skonfiguruj panel

Jedną z wygodnych funkcji dostępnych w Cloud Monitoring są gotowe panele informacyjne (OOTB) obejmujące różne zasoby Google Cloud. Dzięki temu wstępna konfiguracja paneli ze standardowymi danymi jest szybka i wygodna.

Zobaczmy, jak to zrobić w usłudze API, którą właśnie wdrożyliśmy w Cloud Run.

Niestandardowy panel naszej usługi

Ponieważ wdrożyliśmy w Cloud Run naszą usługę interfejsu API, dowiedz się, jak skonfigurować panele ułatwiające wizualizację różnych wskaźników, z których część obejmuje czas oczekiwania na usługę.

Najpierw w konsoli wybierz Monitorowanie → Przegląd, jak pokazano poniżej:

c51a5dda4ab72bbf.png

Na stronie „Przegląd” znajdują się różne elementy, które można skonfigurować w usłudze Monitorowanie, na przykład panele, alerty, kontrole dostępności itp.

2758f61f1e7f1dca.png

Kliknij Panele w bocznym menu głównym. Wyświetli się ten ekran:

c9110b6f065100da.png

Kliknij BIBLIOTEK PRZYKŁAD . Spowoduje to wyświetlenie listy gotowych paneli (OOTB) dostępnych w Google Cloud w wielu zasobach. Przewiń listę i wybierz Google Cloud Run, jak pokazano poniżej.

ddac4038d4fa91ae.png

Spowoduje to wyświetlenie listy standardowych paneli dostępnych w Google Cloud Run. Interesuje nas to, ponieważ wdrożyliśmy naszą usługę w Cloud Run.

Zobaczysz jeden panel dla Cloud Run Monitoring. Kliknij link WERSJA TESTOWA, aby wyświetlić listę standardowych wykresów (danych) dostępnych w Cloud Run Monitoring. Aby zaimportować wszystkie te wykresy do panelu niestandardowego, wystarczy kliknąć IMPORTUJ PULPIT NA PRZYKŁAD. Spowoduje to wyświetlenie ekranu panelu ze wstępnie wpisaną nazwą widoczną poniżej:

531cb8434b18193a

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 wyświetlenie listy paneli, z których powinien być widoczny nowo utworzony panel.

Po kliknięciu linku Panel możesz monitorować wiele dostępnych wskaźników. Do tych danych należą m.in. Czas oczekiwania, Liczba żądań i Kontener.

Możesz także oznaczyć dowolny panel informacyjny jako ulubiony, wybierając po prostu ikonę gwiazdki w następujący sposób:

fc993d1a17415550.png

Spowoduje to dodanie panelu do ekranu Przegląd na stronie Monitorowanie i umożliwia łatwe przechodzenie do często używanych paneli.

2e8f66e2652c55c5.png

1e1dffb5239ab110.png

Fantastycznie! Dodajesz niestandardowy panel do monitorowania usług Cloud Run. Brawo!

5. Kontrole dostępności

W tej sekcji skonfigurujemy kontrolę dostępności wdrożonej przez nas 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 w celu sprawdzenia, czy zasób odpowiada.

W tym przypadku zasobem będzie usługa API, którą wdrożyliśmy w Cloud Run. Adres URL będzie konkretnym punktem końcowym, który jest udostępniany przez usługę API w celu wskazania stanu 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://&lt;SERVICE_URL&gt;/healthy i sprawdzić, czy ciąg https://&lt;SERVICE_URL&gt;/healthy jest zwracany.

Tworzenie kanału powiadomień

Przed utworzeniem kontroli dostępności należy skonfigurować kanały powiadomień. Kanał powiadomień to medium, dzięki któremu będziesz otrzymywać alerty w przypadku wystąpienia incydentu lub problemu z którymkolwiek z naszych monitorowanych zasobów. Przykładem kanału powiadomień jest E-mail. Będziesz otrzymywać e-maile w razie wystąpienia alertu itp.

Na razie skonfigurujemy kanał powiadomień e-mail, podając w nim nasz adres e-mail, tak abyśmy mogli otrzymywać powiadomienia w przypadku alertów, które zostaną wygenerowane przez nasz system i które skonfigurujemy.

Aby utworzyć kanał powiadomień, wykonaj następujące czynności:

W menu głównym konsoli Google Cloud wybierz Monitorowanie → Alerty, jak pokazano poniżej:

9f87859064c63b63.png

Spowoduje to wyświetlenie strony z alertami, zasadami i innymi informacjami. Na razie będziesz widzieć u góry link EDYTUJ KANAŁY POWIADOMIEŃ. Kliknij tę opcję.

5ab54f42e6f7b99.png

Pojawi się lista różnych kanałów powiadomień, jak na przykładzie poniżej:

cd89b1ca9e1de87c.png

Znajdź sekcję E-mail i w odpowiadającym mu wierszu kliknij DODAJ NOWY. Zostaną wyświetlone szczegóły konfiguracji poczty e-mail, jak pokazano poniżej:

d6ed98ffd0427fa3.png

Podaj swój adres e-mail oraz wyświetlaną nazwę w podany niżej sposób. Kliknij ZAPISZ.

Na tym kończy się tworzenie kanału powiadomień e-mail. Skonfigurujmy teraz kontrolę dostępności.

Tworzę kontrolę dostępności

W menu głównym konsoli Google Cloud wybierz Monitorowanie → Kontrole dostępności. U góry zobaczysz link UTWÓRZ KONTROLĘ DOSTĘPU. Kliknij tę opcję.

484541aec65e605e.png

Wyświetli się seria kroków, które musisz wykonać, aby skonfigurować kontrolę dostępności.

Pierwszym krokiem jest skonfigurowanie szczegółów miejsca docelowego, czyli informacji o wdrożonej przez nas usłudze Cloud Run. Wypełniony formularz znajdziesz poniżej:

4e2bb9fe022320f7.png

Dostępne wartości:

  • Protokół : HTTPS
  • Typ zasobu : wybierz usługę Cloud Run. Zwróć uwagę na inne zasoby, które obsługuje, i że możesz skonfigurować dla nich kontrole 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:

a6011ac2ab3e0f10.png

Jak widać, włączamy sprawdzanie dopasowania treści. a następnie skonfigurowanie odpowiedzi zwracanej przez punkt końcowy /healthy, czyli „All Izz Well”. Kliknij DALEJ, aby przejść do następnego kroku, w którym skonfigurujemy alert i wybierzemy kanał powiadomień, do którego będziemy wysyłać alerty w przypadku niepowodzenia kontroli dostępności.

d9738670efcb999f.png

W tym kroku nazwij alert. Wybrane przeze mnie ustawienie to Inventory API Uptime Check error, ale możesz wybrać swoją nazwę. Ważne jest, aby wybrać odpowiedni kanał powiadomień ze skonfigurowanej wcześniej listy.

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. Kliknij przycisk TEST, aby go uzyskać.

80375bfab97fc313.png

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 przejdź do sekcji Monitorowanie → Kontrole dostępności. Powinny być już widoczne wszystkie zielone sygnały wskazujące, że adres URL był osiągalny za pomocą różnych sond.

df17555ddbee1127.png

Jeśli któraś z sond zawiedzie przez pewien czas (co można skonfigurować), otrzymasz powiadomienie o alertach na skonfigurowany przez nas kanał e-mail.

To koniec sekcji poświęconej konfigurowaniu kontroli dostępności. Brawo!

6. Metrics Explorer

Cloud Monitoring udostępnia tysiące standardowych wskaźników 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.

W tej sekcji naszym celem jest:

  1. Dowiedz się, jak możesz analizować różne dane, a następnie przeanalizujemy konkretny wskaźnik (czas oczekiwania) dla naszej usługi interfejsu API.
  2. Przekształcanie tych danych w wykres i panel niestandardowy, którego możemy później używać do wizualizacji danych.

Dane o czasie oczekiwania dla usługi Inventory API

W menu głównym konsoli Google Cloud wybierz Monitorowanie → Metrics Explorer. Otworzy się ekran Metrics Explorer. Kliknij WYBIERZ DANE. Możesz teraz poruszać się po kilku aktywnych zasobach, w których zostały wygenerowane wskaźniki.

Ponieważ zajmujemy się usługami Cloud Run, kliknij opcję Cloud Run Revision, a następnie kategorię i konkretny wskaźnik o nazwie Czas oczekiwania na żądanie, jak pokazano poniżej:

7609d8156c8f1384.png

Kliknij Zastosuj. Spowoduje to wyświetlenie czasu oczekiwania na żądanie na wykresie. Typ widżetu możesz zmienić na wykres liniowy w ustawieniach wyświetlacza po prawej stronie, jak pokazano poniżej:

46086ac0a8eaf3d7.png

Wykres czasu oczekiwania wyświetli się w ten sposób:

ad97f749eeacaa95.png

Utwórz wykres i panel niestandardowy

Zapiszmy ten wykres. Kliknij Zapisz wykres i postępuj zgodnie z poniższymi informacjami:

35d1788d5f0cb3c4.png

Pamiętaj, że zamiast zapisać nowy panel, tworzymy nowy panel. Kliknij przycisk ZAPISZ. Spowoduje to dodanie nowo utworzonego panelu do naszej listy paneli, jak pokazano poniżej:

c9cdcd63d5823abd.png

Kliknij utworzony panel, aby wyświetlić jego szczegóły.

27354d8310d8a2d7.png

W tym artykule opisujemy badanie różnych wskaźników za pomocą narzędzia Metrics Explorer oraz sposób tworzenia paneli niestandardowych.

7. Cloud Logging

W tej sekcji przyjrzymy się usłudze Cloud Logging. Usługa Cloud Logging jest wyposażona w interfejs eksploratora logów, który ułatwia poruszanie się po logiach generowanych przez różne usługi Google oraz Twoje aplikacje.

W tej sekcji przedstawimy eksplorator logów i symulujemy kilka komunikatów logu, które następnie możemy wyszukać i przekształcić w wskaźniki, korzystając z funkcji wskaźników opartych na logach.

Eksplorator logów

Eksplorator logów możesz otworzyć przez Logowanie → Eksplorator logów z głównej konsoli Google Cloud, jak pokazano poniżej:

df05f5b33fd5695a.png

Wyświetli się interfejs logów, w którym możesz zaznaczyć lub odznaczyć różne zasoby (projekt, zasoby Google Cloud, nazwy usług itp.) oraz poziomy logów, aby filtrować komunikaty logu według potrzeb.

e7fa15bcf73f3805.png

Powyżej przedstawiliśmy listę logów wersji Cloud Run, tj. wdrożonych przez nas usług Cloud Run. Zobaczysz kilka żądań kontroli dostępności, które trafiają do skonfigurowanego przez nas punktu końcowego /healthy.

Szukaj ostrzeżeń

Symulowanie kilku nieprawidłowych żądań do usługi asortymentu, podając identyfikatory produktów, które nie należą do I-1, I-2 ani I-3. Na przykład: nieprawidłowe żądanie:

https://&lt;SERVICE_URL&gt;/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 zapytania wstaw następujące parametry zapytania:

resource.type=&quot;cloud_run_revision&quot;

textPayload =~ "Odebrano żądanie asortymentu dla nieprawidłowego identyfikatora produktu"

Powinna wyglądać mniej więcej tak:

b3ee512a0c9c5c7b.png

Kliknij Uruchom zapytanie. Zostaną wyświetlone wszystkie przesłane prośby i których dotyczy ten problem.

5fdbd7c23bf4694f.png

Wskaźniki oparte na logach

Utwórzmy niestandardowy wskaźnik logu, aby śledzić te błędy. Chcielibyśmy się dowiedzieć, czy ma miejsce znaczna liczba połączeń z niewłaściwymi identyfikatorami produktów.

Aby przekonwertować powyższe dane na wskaźnik błędów, kliknij przycisk Utwórz wskaźnik widoczny w eksploratorze logów.

fa9a5e04922aa412.png

Wyświetli się formularz do utworzenia definicji danych. Wybierz dane licznika, wpisz szczegóły w polach Nazwa wskaźnika (inventory_lookup_errors) i opis, jak pokazano poniżej, a potem kliknij Utwórz dane.

70b5719b472d4d02.png

Spowoduje to utworzenie danych dotyczących licznika. Powinien wyświetlić się taki komunikat:

ab9058028185e4d5.png

W menu głównym wybierz Logowanie → Wskaźniki oparte na logach. Powinny być widoczne zdefiniowane przez nas dane niestandardowe na liście wskaźników zdefiniowanych przez użytkownika, jak pokazano poniżej:

7D186e90559cf8e1.png

Na końcu tego wpisu zobaczysz 3 pionowe kropki. Kliknij je, by zobaczyć operacje, które możesz wykonać na danych niestandardowych. Lista powinna być podobna do tej, którą widzisz poniżej. Kliknij opcję Wyświetl w narzędziu Metrics Explorer.

7586f0789a0bdb41.png

Spowoduje to przejście do narzędzia Metrics Explorer, o którym wspomnieliśmy w poprzedniej sekcji. Wyjątkiem jest teraz narzędzie Metrics Explorer.

7ee7403d0639ce25.png

Kliknij Zapisz wykres. Użyj następujących wartości w opcjach zapisywania wykresu:

9009da45f76eb4c5.png

Spowoduje to utworzenie nowego panelu, w którym widać błędy wyszukiwania zasobów reklamowych i będzie on dostępny na liście paneli.

201ed66957cb64f9.png

Świetnie! Udało Ci się utworzyć z dzienników dane niestandardowe i przekonwertować je na wykres umieszczony w panelu niestandardowym. Pomoże nam to śledzić liczbę połączeń z nieprawidłowymi identyfikatorami produktów.

8. Zasady tworzenia alertów

W tej sekcji użyjemy utworzonych przez nas danych niestandardowych i będziemy monitorować ich wartość progową, np. jeśli liczba błędów przekroczy określony próg, prześlemy alert. Inaczej mówiąc, przygotujemy zasady tworzenia alertów.

Tworzenie zasady tworzenia alertów

Otwórzmy panel wyszukiwania zasobów reklamowych. Spowoduje to wyświetlenie utworzonego przez nas wykresu, by zawierał opisane poniżej błędy wyszukiwania zasobów reklamowych:

3591a1dd91a8b9fd.png

Spowoduje to wyświetlenie bieżących danych. Dokonaj najpierw edycji danych, jak pokazano poniżej (kliknij przycisk Edytuj):

5e76fc20d8387984.png

Wyświetlą się szczegóły danych. Przeliczamy wykres z współczynnika błędów na sumę, tj. liczbę błędów. Pole do zmiany znajduje się poniżej:

65ccd1eaca607831.png

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 zasady tworzenia alertów, które będą powiadamiać nas w przypadku, gdy liczba błędów przekroczy wartość progową. Kliknij 3 kropki w prawym górnym rogu wykresu i na wyświetlonej powyżej liście opcji kliknij Przekształć na wykres alertów.

cc9eec48b9bfbc92.png

Zobaczysz ekran podobny do tego:

6202ad1e88679a78.png

Kliknij Dalej. Zostanie wyświetlona wartość progu , którą można ustawić. Stosowany przez nas próg próbkowania wynosi 5 , ale możesz go wybrać zgodnie ze swoimi preferencjami.

734f809cc802ab78.png

Kliknij DALEJ, aby otworzyć formularz powiadomień.

f2d84fb85c2520cb.png

Wybraliśmy Kanał powiadomień jako utworzony wcześniej kanał e-mail. Możesz podać inne informacje, na przykład dokumentację (która zostanie udostępniona w ramach zgłaszanego alertu). Aby zobaczyć podsumowanie i dokończyć proces, kliknij DALEJ.

c670b29da70c4655.png

Po utworzeniu tej zasady tworzenia alertów będzie ona widoczna na liście zasad tworzenia alertów, tak jak pokazano poniżej. Listę zasad tworzenia alertów znajdziesz w sekcji Monitorowanie → Alerty. W sekcji Zasady na tej stronie znajdziesz listę skonfigurowanych do tej pory zasad.

154da627959c54f3.png

Świetnie! Skonfigurowano niestandardową zasadę tworzenia alertów, która będzie Cię powiadamiać w przypadku zwiększonej częstotliwości występowania błędów podczas wyszukiwania interfejsu Inventory API.

9. Monitorowanie usług (opcjonalnie)

W tej sekcji skonfigurujemy docelowe poziomy usług i docelowe poziomy usług zgodnie z zasadami Site Reliability Engineering (SRE). Zauważysz, że Cloud Monitoring ułatwia automatyczne wykrywanie usług wdrożonych w Cloud Run, a także automatyczne obliczanie kluczowych wskaźników SLI, takich jak Dostępność i Czas oczekiwania, a także obliczanie budżetu błędów.

Skonfigurujmy docelowy poziom czasu oczekiwania dla usługi interfejsu API.

Konfigurowanie docelowego poziomu usług w zakresie czasu oczekiwania dla usługi dotyczącej zasobów reklamowych

W menu głównym konsoli Cloud 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 poziomu usług na poziomie 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ę.

42d14515a481213.png

Spowoduje to automatyczne wykrywanie usług, które kwalifikują się do monitorowania docelowego poziomu usług. Może wykrywać usługi Cloud Run, dlatego nasza usługa Inventory API wdrożona w Cloud Run będzie widoczna na liście.

522aaba719f85c54.png

Wyświetlana nazwa może być inna i zależy od tego, co wybierzesz podczas wdrażania usługi w Cloud Run. Kliknij przycisk PRZEŚLIJ. Spowoduje to wyświetlenie poniższego ekranu:

eca08010ab6858a9.png

Możesz kliknąć UTWÓRZ docelowy poziom usług. Dzięki temu możesz wybrać wskaźniki poziomu usług, które są obliczane automatycznie.

556e49b10d22e5ac.png

Na początek wybieramy Wskaźnik czasu oczekiwania. Kliknij DALEJ. Następnie zobaczysz ekran, który pokazuje bieżącą wydajność tej usługi i typowy czas oczekiwania.

a9cc6f6778c13b52.png

Podajemy wartość progową, np. 300 ms , którą chcemy osiągnąć. Jeśli chcesz, możesz wybrać inną wartość, ale pamiętaj, że wpłynie to na zdefiniowany przez Ciebie budżet błędów. Kliknij DALEJ.

Ustawiamy teraz docelowy poziom usług (okno celu i pomiaru) w następujący sposób:

e1fc336d4191c08e.png

Oznacza to, że wybieramy okno Pomiar jako okno typu kroczącego i mierzamy je w ciągu 7 dni. Analogicznie w przypadku celu wybraliśmy 90%. 90% żądań kierowanych do usługi API powinno zostać wykonane w ciągu 300 ms i należy to mierzyć w ciągu 7 dni.

Kliknij Dalej. Wyświetli się ekran podsumowania, który możesz potwierdzić, klikając przycisk AKTUALIZUJ Docelowy poziom usług.

f2540173d9f4a4b7.png

Spowoduje to zapisanie definicji docelowego poziomu usług, a budżet błędów zostanie obliczony automatycznie.

76393df0e189104.png

Kilka rzeczy, które możesz wypróbować:

  1. Przetestuj interfejs API za pomocą wielu wywołań i sprawdź wydajność usługi oraz jej wpływ na pozostały budżet błędów.
  2. Zmodyfikuj kod źródłowy, aby wprowadzić dodatkowe losowe opóźnienie (uśpienie) w niektórych wywołaniach. Wydłuży to czas oczekiwania w przypadku pewnej liczby wywołań i powinno niekorzystnie wpłynąć na budżet błędów.

10. Gratulacje

Gratulujemy! Udało Ci się wdrożyć przykładową aplikację w Google Cloud i dowiedzieć się, jak za pomocą pakietu Google Cloud Operations sprawdzać stan aplikacji.

Omówione zagadnienia

  • Wdrażam usługę w Google Cloud Run.
  • Konfiguruję panel usługi Google Cloud Run.
  • Kontrole dostępności.
  • Konfigurowanie na ich podstawie niestandardowych wskaźników logów oraz paneli/wykresów.
  • Zapoznanie z narzędziem Metrics Explorer i konfigurowanie panelu/wykresu.
  • Konfiguruję zasady tworzenia alertów.
  • Konfiguruję SLI/SLO na potrzeby monitorowania usług w Google Cloud.

Uwaga: jeśli ćwiczenia z programowania zostały wykonane na Twoim koncie i w projekcie Google Cloud, przydzielone zasoby mogą nadal być obciążane opłatami. Po zakończeniu modułu usuń projekt i zasoby.

Co dalej?

Zapoznaj się z tym kursem Cloud Skills Boost, aby dowiedzieć się więcej o pakiecie Google Cloud Operations.

Więcej informacji