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, przesyłaniem, zabezpieczaniem, autoryzacją i obsługą błędów związanych ze zdarzeniami, co zwiększa elastyczność programistów i odporność aplikacji.
Datadog to platforma do monitorowania i zabezpieczania aplikacji w chmurze. Łączy ona kompleksowe ślady, wskaźniki i logi, dzięki czemu możesz obserwować swoje aplikacje, infrastrukturę i usługi innych firm.
W tym pierwszym module dowiesz się, jak za pomocą Eventarc przekierować prosty alert monitorowania Datadog do Google Cloud.
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 z kanałem.
- 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 użyj istniejącego. Jeśli nie masz jeszcze konta Gmail ani Google Workspace, musisz je utworzyć.



- Nazwa projektu to wyświetlana nazwa uczestników tego projektu. Jest to ciąg znaków, który nie jest używany przez interfejsy API Google. Możesz ją zaktualizować w dowolnym momencie.
- Identyfikator projektu musi być unikalny we wszystkich projektach Google Cloud i jest niezmienny (nie można go zmienić po ustawieniu). Konsola Cloud automatycznie generuje unikalny ciąg znaków. Zwykle nie musisz się nim przejmować. W większości ćwiczeń z programowania musisz odwoływać się do identyfikatora projektu (zwykle jest on oznaczony jako
PROJECT_ID). Jeśli wygenerowany identyfikator Ci się nie podoba, możesz wygenerować inny losowy identyfikator. Możesz też spróbować własnej nazwy i sprawdzić, czy jest dostępna. Po tym kroku nie można go zmienić i będzie obowiązywać przez cały czas trwania projektu. - Warto wiedzieć, że istnieje też trzecia wartość, czyli numer projektu, z której korzystają niektóre interfejsy API. Więcej informacji o tych 3 wartościach znajdziesz w dokumentacji.
- Następnie musisz włączyć płatności w konsoli Cloud, aby korzystać z zasobów i interfejsów API Google Cloud. Ukończenie tego laboratorium nie powinno wiązać się z dużymi kosztami, a nawet z żadnymi. Aby wyłączyć zasoby i uniknąć naliczania opłat po zakończeniu tego samouczka, możesz usunąć utworzone zasoby lub cały projekt. Nowi użytkownicy Google Cloud mogą skorzystać z bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.
Uruchamianie Cloud Shell
Z Google Cloud można korzystać zdalnie na laptopie, ale w tym module praktycznym będziesz używać Google Cloud Shell, czyli środowiska wiersza poleceń działającego w chmurze.
W konsoli Google Cloud 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 zakończeniu powinno wyświetlić się coś takiego:

Ta maszyna wirtualna zawiera wszystkie potrzebne narzędzia dla programistów. Zawiera również stały katalog domowy o pojemności 5 GB i działa w Google Cloud, co znacznie zwiększa wydajność sieci i usprawnia proces uwierzytelniania. Wszystkie zadania w tym laboratorium możesz wykonać 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. W tym regionie utworzysz później zasoby.
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. Odkrywanie dostawcy Datadog
Dostawca Eventarc to usługa lub encja, która może wysyłać zdarzenia bezpośrednio do Google Cloud, skąd są kierowane do Twojego projektu. Dostawcy zewnętrzni, np. Datadog, to dostawcy spoza Google Cloud, którzy są zintegrowani z Google Cloud przez Eventarc.
Aby wyświetlić listę dostawców Google Cloud i firm zewnętrznych, uruchom w Cloud Shell to polecenie:
gcloud eventarc providers list
Zawiera listę dostawców Google Cloud i innych firm oraz lokalizacje, w których są dostępne:
NAME: storage.googleapis.com LOCATION: asia NAME: cloudaudit.googleapis.com LOCATION: asia NAME: pubsub.googleapis.com LOCATION: asia ...
Aby zawęzić listę do dostawców zewnętrznych, użyj tego polecenia:
gcloud eventarc providers list --filter='eventTypes.type!~^google*'
Na liście powinna pojawić się usługa Datadog:
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. Konfigurowanie kanału
Aby zintegrować projekt z dostawcą, musisz skonfigurować kanał. Obejmuje to utworzenie kanału, pobranie jego szczegółów i przesłanie 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 szczegółów kanału
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'
Podobnie możesz wyświetlić kanał w konsoli Google Cloud:

Stan kanału wskazuje jego status. Może mieć jedną z tych wartości:
PENDING– kanał został utworzony i dostępny jest token aktywacji, który umożliwia utworzenie połączenia z dostawcą. Aby zmienić stan kanału zPENDINGnaACTIVE, musisz przekazać token dostawcy i użyć go do połączenia kanału w ciągu 24 godzin od jego utworzenia.ACTIVE– kanał został połączony z dostawcą.ACTIVEKanał jest gotowy do odbierania i kierowania zdarzeń od dostawcy.INACTIVE– kanał nie może otrzymywać zdarzeń ani zostać ponownie aktywowany. Dostawca jest odłączony od tego kanału lub token aktywacji kanału wygasł i dostawca nie jest połączony. Aby ponownie nawiązać połączenie z dostawcą, musisz utworzyć dla niego nowy kanał.
Token aktywacji jest jednorazowy, ograniczony czasowo i służy do tworzenia połączenia między dostawcą a projektem subskrybenta. Token może być używany tylko przez określonego dostawcę wybranego podczas tworzenia kanału. Token jest ważny przez 24 godziny od utworzenia kanału. Po 24 godzinach kanał staje się INACTIVE.
Wysyłanie szczegółowych informacji o kanale do dostawcy
Musisz przesłać dostawcy Datadog te informacje o kanale:
- 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 sprawdź, czy integracja z Google Eventarc jest zainstalowana:

W sekcji konfiguracji Google Eventarc wpisz pełną nazwę kanału i token aktywacyjny:

Kanał powinien być teraz widoczny na liście kanałów. Po kilku sekundach powinien też stać się aktywny w konsoli Google Cloud:

Możesz już 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 usługi Cloud Run, Workflows i Kubernetes. W takim przypadku wdróż przepływ pracy, który będzie po prostu rejestrować otrzymane zdarzenia.
Utwórz plik workflow-datadog1.yaml o tej zawartości:
main:
params: [event]
steps:
- logStep:
call: sys.log
args:
data: ${event}
Zwróć uwagę, że przepływ pracy otrzymuje zdarzenie jako parametr. To zdarzenie będzie pochodzić z monitorowania Datadog za pomocą Eventarc. Po otrzymaniu zdarzenia przepływ pracy po prostu je rejestruje.
Wdróż przepływ pracy:
WORKFLOW_NAME=workflow-datadog1 gcloud workflows deploy $WORKFLOW_NAME \ --source workflow-datadog1.yaml \ --location $REGION
Przepływ pracy jest wdrożony, ale jeszcze nie działa. Zostanie ona wykonana przez aktywator Eventarc po otrzymaniu alertu Datadog.
6. Tworzenie aktywatora Eventarc
Możesz teraz połączyć zdarzenia od dostawcy Datadog z Workflows za pomocą aktywatora Eventarc.
Konfigurowanie konta usługi
Podczas tworzenia aktywatora musisz mieć konto usługi z rolą eventarc.eventReceiver. Możesz utworzyć dedykowane konto usługi lub użyć domyślnego konta usługi Compute.
Aby uprościć proces, 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 aktywator 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.
Będzie to monitor typu Hello World z wartościami domyślnymi. Będziesz go ręcznie aktywować, aby generować alerty monitorowania, które z kolei będą generować zdarzenie Eventarc w Google Cloud.
Aby utworzyć monitor w Datadog, zaloguj się w Datadog. W menu głównym najedź kursorem na Monitors i w menu podrzędnym kliknij New Monitor. Istnieje wiele rodzajów monitorów. Wybierz Metrictyp monitora.
Na stronie New Monitor pozostaw domyślne ustawienia kroków 1 i 2.
- W kroku 3 ustaw
Alert thresholdna 1. - W kroku 4 ustaw
Test monitor for Eventarcjako nazwę monitora i ustawNotify your teamna@eventarc_<your-project-id>_<your-region>_<your-channel-name>.
Pozostaw stronę monitora otwartą, aby w następnym kroku przetestować monitor.
8. Testowanie monitora i wyzwalacza
Aby przetestować monitor Datadog i aktywator Eventarc, musisz ręcznie aktywować monitor.
U dołu strony tworzenia monitora kliknij przycisk Test Notifications:

Następnie kliknij przycisk Run Test:

Powinno to symulować przejście stanu w monitorze i wywołać zdarzenie Eventarc.
Sprawdź przepływ pracy workflow-datadog1. Powinno się pojawić nowe wykonanie:

Sprawdź szczegóły wykonania. W danych wejściowych przepływu pracy i w logach powinien pojawić się typ zdarzenia Datadog datadog.v1.alert wygenerowany na podstawie alertu monitorowania:

9. Gratulacje
Gratulacje! Codelab został ukończony. Możesz przejść do drugiego laboratorium, aby dowiedzieć się, jak odpowiadać na alerty monitorowania Datadog za pomocą przepływów pracy.
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 z kanałem.
- Jak utworzyć monitor Datadog.
- Jak przetestować monitor Datadog, aktywator Eventarc i przepływ pracy.