1. Introduzione

Eventarc semplifica la connessione dei servizi Google Cloud con eventi provenienti da varie origini. Consente di creare architetture basate su eventi in cui i microservizi sono a basso accoppiamento e distribuiti. Si occupa anche dell'importazione, della distribuzione, della sicurezza, dell'autorizzazione e della gestione degli errori degli eventi, il che migliora l'agilità degli sviluppatori e la resilienza delle applicazioni.
Datadog è una piattaforma di monitoraggio e sicurezza per le applicazioni cloud. Riunisce tracce, metriche e log end-to-end per rendere osservabili le tue applicazioni, la tua infrastruttura e i tuoi servizi di terze parti.
In questo primo codelab, imparerai a indirizzare un semplice avviso di monitoraggio Datadog a Google Cloud con Eventarc.
Obiettivi didattici
- Come scoprire il provider Datadog.
- Come configurare un canale per il provider Datadog.
- Come creare un flusso di lavoro per registrare gli eventi.
- Come creare un trigger Eventarc con il canale.
- Come creare un monitor Datadog.
- Come testare il monitor Datadog, il trigger Eventarc e il flusso di lavoro.
2. Configurazione e requisiti
Configurazione dell'ambiente autonomo
- Accedi alla console Google Cloud e crea un nuovo progetto o riutilizzane uno esistente. Se non hai ancora un account Gmail o Google Workspace, devi crearne uno.



- Il nome del progetto è il nome visualizzato per i partecipanti a questo progetto. È una stringa di caratteri non utilizzata dalle API di Google. Puoi aggiornarlo in qualsiasi momento.
- L'ID progetto deve essere univoco in tutti i progetti Google Cloud ed è immutabile (non può essere modificato dopo essere stato impostato). La console Cloud genera automaticamente una stringa univoca, di solito non ti interessa di cosa si tratta. Nella maggior parte dei codelab, devi fare riferimento all'ID progetto (in genere è identificato come
PROJECT_ID). Se non ti piace l'ID generato, puoi generarne un altro casuale. In alternativa, puoi provare a crearne uno e vedere se è disponibile. Non può essere modificato dopo questo passaggio e rimarrà per tutta la durata del progetto. - Per tua informazione, esiste un terzo valore, un numero di progetto, utilizzato da alcune API. Scopri di più su tutti e tre questi valori nella documentazione.
- Successivamente, devi abilitare la fatturazione in Cloud Console per utilizzare le risorse/API Cloud. L'esecuzione di questo codelab non dovrebbe costare molto, se non nulla. Per arrestare le risorse in modo da non incorrere in costi di fatturazione al termine di questo tutorial, puoi eliminare le risorse che hai creato o l'intero progetto. I nuovi utenti di Google Cloud possono beneficiare del programma prova senza costi di 300$.
Avvia Cloud Shell
Sebbene Google Cloud possa essere gestito da remoto dal tuo laptop, in questo codelab utilizzerai Google Cloud Shell, un ambiente a riga di comando in esecuzione nel cloud.
Nella console Google Cloud, fai clic sull'icona di Cloud Shell nella barra degli strumenti in alto a destra:

Bastano pochi istanti per eseguire il provisioning e connettersi all'ambiente. Al termine, dovresti vedere un risultato simile a questo:

Questa macchina virtuale è caricata con tutti gli strumenti per sviluppatori di cui avrai bisogno. Offre una home directory permanente da 5 GB e viene eseguita su Google Cloud, migliorando notevolmente le prestazioni e l'autenticazione della rete. Tutto il lavoro in questo codelab può essere svolto all'interno di un browser. Non devi installare nulla.
Configura gcloud
In Cloud Shell, imposta l'ID progetto e salvalo come variabile PROJECT_ID.
Imposta anche una variabile REGION su us-central1. Questa è la regione in cui creerai le risorse in un secondo momento.
PROJECT_ID=[YOUR-PROJECT-ID] REGION=us-central1 gcloud config set core/project $PROJECT_ID
Abilita API
Attiva tutti i servizi necessari:
gcloud services enable \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.googleapis.com
3. Scopri il fornitore Datadog
Un provider Eventarc è un servizio o un'entità che può emettere eventi direttamente su Google Cloud, che vengono quindi indirizzati al tuo progetto. I provider di terze parti, come Datadog, sono provider non Google Cloud integrati con Google Cloud tramite Eventarc.
In Cloud Shell, esegui questo comando per visualizzare l'elenco dei provider Google Cloud e di terze parti:
gcloud eventarc providers list
In questo elenco sono riportati i provider Google Cloud e di terze parti e le località in cui sono disponibili:
NAME: storage.googleapis.com LOCATION: asia NAME: cloudaudit.googleapis.com LOCATION: asia NAME: pubsub.googleapis.com LOCATION: asia ...
Puoi restringere l'elenco ai fornitori di terze parti con questo comando:
gcloud eventarc providers list --filter='eventTypes.type!~^google*'
Dovresti vedere Datadog nell'elenco:
NAME: datadog LOCATION: us-central1
Puoi anche descrivere il provider Datadog per visualizzare gli eventi che supporta:
gcloud eventarc providers describe datadog --location $REGION displayName: Datadog eventTypes: - type: datadog.v1.alert name: projects/project-id/locations/us-central1/providers/datadog
4. Configurare un canale
Per integrare il progetto con un provider, devi configurare un canale. Ciò comporta la creazione di un canale, il recupero dei dettagli del canale e l'invio di questi dettagli al fornitore. Una volta inizializzata la connessione al canale, il provider può iniziare a inviare eventi al tuo progetto.
Creare un canale
Puoi creare un canale per il provider Datadog utilizzando gcloud:
CHANNEL_NAME=datadog-channel gcloud eventarc channels create $CHANNEL_NAME \ --provider datadog \ --location $REGION
Puoi anche crearlo dalla sezione Canali della pagina Eventarc nella console Google Cloud:

Recuperare i dettagli del canale
Una volta creato il canale, recupera i dettagli del canale da gcloud:
gcloud eventarc channels describe $CHANNEL_NAME --location $REGION
L'output dovrebbe essere simile al seguente:
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'
Allo stesso modo, puoi visualizzare il canale dalla console Google Cloud:

Lo stato del canale indica lo stato del canale. Può essere uno dei seguenti:
PENDING: il canale è stato creato correttamente ed è disponibile un token di attivazione per creare una connessione con il provider. Per modificare lo stato del canale daPENDINGaACTIVE, il token deve essere fornito al provider e utilizzato per collegare il canale entro 24 ore dalla sua creazione.ACTIVE: il canale è stato collegato correttamente al provider. Un canaleACTIVEè pronto a ricevere e instradare gli eventi dal provider.INACTIVE: il canale non può ricevere eventi né essere riattivato. Il provider è disconnesso da questo canale o il token di attivazione del canale è scaduto e il provider non è connesso. Per ristabilire una connessione con un provider, devi creare un nuovo canale per il provider.
Un token di attivazione è un token monouso a tempo limitato, utilizzato per creare una connessione tra un provider e il progetto di un abbonato. Solo un provider specifico, selezionato durante la procedura di creazione del canale, può utilizzare il token. Il token è valido per 24 ore dopo la creazione del canale. Dopo 24 ore, il canale diventa INACTIVE.
Inviare i dettagli del canale al fornitore
Devi inviare i seguenti dettagli del canale al provider Datadog:
- Nome del canale (ad es.
projects/project-id/locations/us-central1/channels/datadog-channel) - Token di attivazione (ad es.
so5g4Kdasda7y2MSasdaGn8njB2)
Accedi a Datadog, vai alla pagina delle integrazioni e assicurati che l'integrazione di Google Eventarc sia installata:

Nella sezione di configurazione di Google Eventarc, inserisci il nome completo del canale e il token di attivazione:

Ora dovresti vedere il canale nell'elenco dei canali e, dopo alcuni secondi, dovrebbe diventare attivo anche nella console Google Cloud:

Ora puoi utilizzare il canale.
5. Crea un flusso di lavoro
Per ricevere eventi dal provider, devi avere una destinazione in Google Cloud. Eventarc supporta diverse destinazioni di eventi, come Cloud Run, Workflows e servizi Kubernetes. In questo caso, implementa un workflow per registrare semplicemente gli eventi ricevuti.
Crea un file workflow-datadog1.yaml con il seguente contenuto:
main:
params: [event]
steps:
- logStep:
call: sys.log
args:
data: ${event}
Tieni presente che il flusso di lavoro riceve un evento come parametro. Questo evento proverrà dal monitoraggio Datadog tramite Eventarc. Una volta ricevuto l'evento, il flusso di lavoro registra semplicemente l'evento ricevuto.
Esegui il deployment del workflow:
WORKFLOW_NAME=workflow-datadog1 gcloud workflows deploy $WORKFLOW_NAME \ --source workflow-datadog1.yaml \ --location $REGION
Il workflow è stato implementato, ma non è ancora in esecuzione. Verrà eseguita da un trigger Eventarc quando viene ricevuto un avviso Datadog.
6. Crea un trigger Eventarc
Ora puoi connettere gli eventi del provider Datadog a Workflows con un trigger Eventarc.
Configura il service account
Quando crei un trigger, devi avere un service account con il ruolo eventarc.eventReceiver. Puoi creare un service account dedicato o utilizzare il service account Compute predefinito.
Per semplicità, utilizza il service account Compute predefinito e concedi il ruolo 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
Crea un trigger
Crea un trigger con il canale Datadog, il tipo di evento e anche una destinazione del flusso di lavoro:
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
Puoi elencare i trigger per verificare che quello appena creato sia attivo:
gcloud eventarc triggers list --location $REGION NAME: datadog-trigger1 TYPE: datadog.v1.alert DESTINATION: Workflows: workflow-datadog1 ACTIVE: Yes
7. Crea un monitoraggio Datadog
Ora creerai un monitor Datadog e lo connetterai a Eventarc.
Sarà un monitor di tipo Hello World con valori predefiniti. Lo attiverai manualmente per generare gli avvisi di monitoraggio, che a loro volta genereranno un evento Eventarc in Google Cloud.
Per creare un monitor in Datadog, accedi a Datadog. Passa il mouse sopra Monitors nel menu principale e fai clic su New Monitor nel sottomenu. Esistono molti tipi di monitor. Scegli il Metrictipo di monitor.
Nella pagina New Monitor, lascia i valori predefiniti per i passaggi 1 e 2.
- Nel passaggio 3, imposta
Alert thresholdsu 1 - Nel passaggio 4, imposta
Test monitor for Eventarccome nome del monitor eNotify your teamsu@eventarc_<your-project-id>_<your-region>_<your-channel-name>.
Lascia aperta la pagina di monitoraggio per il passaggio successivo, in cui testerai il monitor.
8. Testare il monitor e il trigger
Per testare il monitor Datadog e il trigger Eventarc, attiverai manualmente il monitor.
Nella parte inferiore della pagina di creazione del monitor, fai clic sul pulsante Test Notifications:

Quindi, fai clic sul pulsante Run Test:

In questo modo viene simulata la transizione di stato nel monitor e viene attivato un evento Eventarc.
Controlla il flusso di lavoro workflow-datadog1. Dovresti visualizzare una nuova esecuzione:

Controlla i dettagli dell'esecuzione. Dovresti visualizzare il tipo di evento Datadog datadog.v1.alert generato dall'avviso di monitoraggio nell'input del flusso di lavoro e anche nei log:

9. Complimenti
Congratulazioni, hai completato il codelab. Puoi passare al secondo codelab per scoprire come rispondere agli avvisi di monitoraggio di Datadog con Workflows.
Argomenti trattati
- Come scoprire il provider Datadog.
- Come configurare un canale per il provider Datadog.
- Come creare un flusso di lavoro per registrare gli eventi.
- Come creare un trigger Eventarc con il canale.
- Come creare un monitor Datadog.
- Come testare il monitor Datadog, il trigger Eventarc e il flusso di lavoro.