1. Wprowadzenie
Eventarc ułatwia łączenie usług Google Cloud ze zdarzeniami z różnych źródeł. Umożliwia tworzenie architektur opartych na zdarzeniach, w których mikroserwisy są luźno sprzężone i rozproszone. Zajmuje się też pozyskiwaniem, dostarczaniem, bezpieczeństwem, autoryzacją i obsługą błędów, co zwiększa elastyczność programistów oraz odporność aplikacji.
Datadog to platforma do monitorowania i zabezpieczania aplikacji internetowych. Łączy kompleksowe logi czasu, wskaźniki i logi, aby umożliwiać obserwację aplikacji, infrastruktury i usług innych firm.
Z tego pierwszego ćwiczenia w Codelabs dowiesz się, jak kierować do Google Cloud prosty alert monitorowania Datadog za pomocą Eventarc.
Czego się nauczysz
- Jak znaleźć dostawcę Datadog.
- Jak skonfigurować kanał dla dostawcy Datadog.
- Jak utworzyć przepływ pracy do rejestrowania zdarzeń.
- Jak utworzyć aktywator Eventarc na kanale.
- Jak utworzyć monitor Datadog.
- Jak przetestować monitor Datadog, aktywator Eventarc i przepływ pracy.
2. Konfiguracja i wymagania
Samodzielne konfigurowanie środowiska
- Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub wykorzystaj już istniejący. Jeśli nie masz jeszcze konta Gmail ani Google Workspace, musisz je utworzyć.
- 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 nazywa się on
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. - Dostępna jest trzecia wartość, numer projektu, z którego korzystają niektóre interfejsy API. Więcej informacji o wszystkich 3 wartościach znajdziesz w dokumentacji.
- 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.
Uruchamianie Cloud Shell
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 Cloud.
W konsoli Google Cloud kliknij ikonę Cloud Shell na górnym pasku narzędzi:
Uzyskanie dostępu do środowiska i połączenie się z nim powinno zająć tylko kilka chwil. Po zakończeniu powinno pojawić się coś takiego:
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 ramach tego ćwiczenia z programowania można wykonywać w przeglądarce. Nie musisz niczego instalować.
Konfigurowanie gcloud
W Cloud Shell ustaw identyfikator projektu i zapisz go jako zmienną PROJECT_ID
.
Ustaw też zmienną REGION
na us-central1
. To region, w którym utworzysz zasoby później.
PROJECT_ID=[YOUR-PROJECT-ID] REGION=us-central1 gcloud config set core/project $PROJECT_ID
Włącz interfejsy API
Włącz wszystkie niezbędne usługi:
gcloud services enable \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.googleapis.com
3. Poznaj dostawcę Datadog
Dostawca Eventarc to usługa lub encja, która może emitować zdarzenia bezpośrednio do Google Cloud, które są potem kierowane do Twojego projektu. Dostawcy zewnętrzni, tacy jak Datadog, są dostawcami spoza Google Cloud zintegrowanymi z Google Cloud przez Eventarc.
W Cloud Shell uruchom to polecenie, aby wyświetlić listę dostawców Google Cloud i dostawców zewnętrznych:
gcloud eventarc providers list
Znajdziesz tam listę dostawców Google Cloud i dostawców zewnętrznych oraz lokalizacje, w których są oni dostępni:
NAME: storage.googleapis.com LOCATION: asia NAME: cloudaudit.googleapis.com LOCATION: asia NAME: pubsub.googleapis.com LOCATION: asia ...
Możesz zawęzić listę do dostawców zewnętrznych za pomocą tego polecenia:
gcloud eventarc providers list --filter='eventTypes.type!~^google*'
Datadog powinna pojawić się na liście:
NAME: datadog LOCATION: us-central1
Możesz też opisać dostawcę Datadog, aby zobaczyć obsługiwane przez niego zdarzenia:
gcloud eventarc providers describe datadog --location $REGION displayName: Datadog eventTypes: - type: datadog.v1.alert name: projects/project-id/locations/us-central1/providers/datadog
4. Skonfiguruj kanał
Musisz skonfigurować kanał, aby zintegrować swój projekt z dostawcą. Wiąże się to z utworzeniem kanału, pobraniem informacji o nim i wysłaniem ich do dostawcy. Gdy dostawca zainicjuje połączenie z kanałem, może zacząć wysyłać zdarzenia do Twojego projektu.
Tworzenie kanału
Kanał dla dostawcy Datadog możesz utworzyć za pomocą gcloud
:
CHANNEL_NAME=datadog-channel gcloud eventarc channels create $CHANNEL_NAME \ --provider datadog \ --location $REGION
Możesz też utworzyć go w sekcji Kanały na stronie Eventarc w konsoli Google Cloud:
Pobieranie informacji o kanale
Po utworzeniu kanału pobierz jego szczegóły z gcloud
:
gcloud eventarc channels describe $CHANNEL_NAME --location $REGION
Dane wyjściowe powinny być podobne do tych:
activationToken: so5g4Kdasda7y2MSasdaGn8njB2 createTime: '2022-03-09T09:53:42.428978603Z' name: projects/project-id/locations/us-central1/channels/datadog-channel provider: projects/project-id/locations/us-central1/providers/datadog pubsubTopic: projects/project-id/topics/eventarc-channel-us-central1-datadog-channel-077 state: PENDING uid: 183d3323-8cas-4e95-8d72-7d8c8b27cf9e updateTime: '2022-03-09T09:53:48.290217299Z'
Kanał możesz też zobaczyć w konsoli Google Cloud:
Stan kanału wskazuje jego stan. Może to być:
PENDING
– kanał został utworzony i dostępny jest token aktywacji umożliwiający utworzenie połączenia z dostawcą. Aby zmienić stan kanału zPENDING
naACTIVE
, należy przekazać token dostawcy, który posłuży do połączenia kanału w ciągu 24 godzin od utworzenia kanału.ACTIVE
– kanał został połączony z dostawcą. KanałACTIVE
jest gotowy do odbierania i kierowania zdarzeń od dostawcy.INACTIVE
– kanał nie może otrzymywać wydarzeń i nie może zostać ponownie aktywowany. Dostawca jest odłączony od tego kanału lub token aktywacji kanału wygasł, a dostawca nie jest połączony. Aby ponownie nawiązać połączenie z dostawcą, musisz utworzyć dla niego nowy kanał.
Token aktywacji to jednorazowy token ograniczony czasowo, używany do tworzenia połączenia między dostawcą a projektem subskrybenta. Z tokena może korzystać tylko dostawca wybrany podczas tworzenia kanału. Token jest ważny przez 24 godziny od utworzenia kanału. Po 24 godzinach kanał zmienia status na INACTIVE
.
Wyślij informacje o kanale do dostawcy
Musisz wysłać te informacje o kanale do dostawcy Datadog:
- Nazwa kanału (np.
projects/project-id/locations/us-central1/channels/datadog-channel
) - Token aktywacji (np.
so5g4Kdasda7y2MSasdaGn8njB2
)
Zaloguj się w Datadog, otwórz stronę integracji i upewnij się, że zainstalowana jest integracja z Google Eventarc:
W sekcji konfiguracji Google Eventarc wpisz pełną nazwę kanału i token aktywacji:
Kanał powinien pojawić się na liście kanałów i po kilku sekundach powinien być aktywny w konsoli Google Cloud:
Teraz możesz korzystać z kanału.
5. Tworzenie przepływu pracy
Aby otrzymywać zdarzenia od dostawcy, musisz mieć miejsce docelowe w Google Cloud. Eventarc obsługuje wiele miejsc docelowych zdarzeń, takich jak Cloud Run, Workflows i usługi Kubernetes. W takim przypadku wdróż przepływ pracy, aby po prostu rejestrować odebrane zdarzenia.
Utwórz plik workflow-datadog1.yaml
z tą zawartością:
main: params: [event] steps: - logStep: call: sys.log args: data: ${event}
Pamiętaj, że przepływ pracy odbiera zdarzenie jako parametr. To zdarzenie będzie pochodzić z monitorowania Datadog przez Eventarc. Przepływ pracy po prostu rejestruje odebrane zdarzenie.
Wdróż przepływ pracy:
WORKFLOW_NAME=workflow-datadog1 gcloud workflows deploy $WORKFLOW_NAME \ --source workflow-datadog1.yaml \ --location $REGION
Przepływ pracy został wdrożony, ale jeszcze nie jest uruchomiony. Zostanie on wykonany przez aktywator Eventarc po otrzymaniu alertu Datadog.
6. Tworzenie aktywatora Eventarc
Teraz możesz łączyć zdarzenia od dostawcy Datadog z Workflows za pomocą aktywatora Eventarc.
Skonfiguruj konto usługi
Podczas tworzenia aktywatora musisz mieć konto usługi z przypisaną rolą eventarc.eventReceiver
. Możesz utworzyć dedykowane konto usługi lub użyć domyślnego konta usługi Compute.
Dla uproszczenia użyj domyślnego konta usługi Compute i przypisz rolę eventarc.eventReceiver
:
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)') gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role roles/eventarc.eventReceiver
Tworzenie aktywatora
Utwórz regułę z kanałem Datadog, typem zdarzenia i miejscem docelowym przepływu pracy:
gcloud eventarc triggers create datadog-trigger1 \ --location $REGION \ --destination-workflow $WORKFLOW_NAME \ --destination-workflow-location $REGION \ --channel $CHANNEL_NAME \ --event-filters type=datadog.v1.alert \ --service-account $PROJECT_NUMBER-compute@developer.gserviceaccount.com
Możesz wyświetlić listę aktywatorów, aby sprawdzić, czy nowo utworzony aktywator jest aktywny:
gcloud eventarc triggers list --location $REGION NAME: datadog-trigger1 TYPE: datadog.v1.alert DESTINATION: Workflows: workflow-datadog1 ACTIVE: Yes
7. Tworzenie monitora Datadog
Teraz utworzysz monitor Datadog i połączysz go z Eventarc.
To monitor typu Hello World z wartościami domyślnymi. Będziesz go aktywować ręcznie, aby wygenerować alerty monitorowania, co z kolei wygeneruje zdarzenie Eventarc w Google Cloud.
Aby utworzyć monitor w Datadog, zaloguj się w Datadog. Najedź wskaźnikiem myszy na Monitors
w menu głównym i kliknij New Monitor
w menu podrzędnym. Istnieje wiele typów monitorów. Wybierz typ monitora: Metric
.
Na stronie New Monitor
pozostaw wartości domyślne kroków 1 i 2.
- W kroku 3 ustaw
Alert threshold
na 1 - W kroku 4 ustaw
Test monitor for Eventarc
jako nazwę monitora, aNotify your team
na@eventarc_<your-project-id>_<your-region>_<your-channel-name>
Nie zamykaj strony monitorowania, aby przejść do następnego kroku, w którym chcesz przetestować monitor.
8. Monitor testów i aktywator
Aby przetestować monitor Datadog i aktywator Eventarc, musisz aktywować monitor ręcznie.
Na dole strony tworzenia monitora kliknij przycisk Test Notifications
:
Następnie kliknij przycisk Run Test
:
Powinno to symulować przejście stanu w monitorze i aktywować zdarzenie Eventarc.
Sprawdź przepływ pracy w workflow-datadog1
. Powinno się pojawić nowe wykonanie:
Sprawdź szczegóły wykonania. W danych wejściowych przepływu pracy oraz w logach powinien być widoczny typ zdarzenia Datadog datadog.v1.alert
wygenerowany na podstawie alertu monitorowania:
9. Gratulacje
Gratulacje. Udało Ci się ukończyć ćwiczenia z programowania. Możesz przejść do drugiego ćwiczenia z programowania, aby dowiedzieć się, jak reagować na alerty monitorowania Datadog za pomocą Workflows.
Omówione zagadnienia
- Jak znaleźć dostawcę Datadog.
- Jak skonfigurować kanał dla dostawcy Datadog.
- Jak utworzyć przepływ pracy do rejestrowania zdarzeń.
- Jak utworzyć aktywator Eventarc na kanale.
- Jak utworzyć monitor Datadog.
- Jak przetestować monitor Datadog, aktywator Eventarc i przepływ pracy.