1. Introduction

Eventarc permet de connecter facilement les services Google Cloud à des événements provenant de diverses sources. Il vous permet de créer des architectures basées sur des événements dans lesquelles les microservices sont faiblement couplés et distribués. Il gère également l'ingestion, la diffusion, la sécurité, l'autorisation et le traitement des erreurs pour vous, ce qui améliore l'agilité des développeurs et la résilience des applications.
Datadog est une plate-forme de surveillance et de sécurité pour les applications cloud. Il rassemble des traces, des métriques et des journaux de bout en bout pour rendre vos applications, votre infrastructure et vos services tiers observables.
Dans ce premier atelier de programmation, vous allez apprendre à router une simple alerte de surveillance Datadog vers Google Cloud avec Eventarc.
Points abordés
- Découvrez comment trouver le fournisseur Datadog.
- Configurer un canal pour le fournisseur Datadog
- Découvrez comment créer un workflow pour consigner des événements.
- Découvrez comment créer un déclencheur Eventarc avec le canal.
- Découvrez comment créer un moniteur Datadog.
- Découvrez comment tester le moniteur Datadog, le déclencheur Eventarc et le workflow.
2. Préparation
Configuration de l'environnement au rythme de chacun
- Connectez-vous à la console Google Cloud, puis créez un projet ou réutilisez un projet existant. (Si vous ne possédez pas encore de compte Gmail ou Google Workspace, vous devez en créer un.)



- Le nom du projet est le nom à afficher pour les participants au projet. Il s'agit d'une chaîne de caractères non utilisée par les API Google. Vous pouvez le modifier à tout moment.
- L'ID du projet doit être unique sur l'ensemble des projets Google Cloud et doit être immuable (vous ne pouvez pas le modifier une fois que vous l'avez défini). La console Cloud génère automatiquement une chaîne unique (en général, vous n'y accordez d'importance particulière). Dans la plupart des ateliers de programmation, vous devrez indiquer l'ID du projet (généralement identifié par
PROJECT_ID). Si l'ID généré ne vous convient pas, vous pouvez en générer un autre de manière aléatoire. Vous pouvez également en spécifier un et voir s'il est disponible. Après cette étape, l'ID n'est plus modifiable et restera donc le même pour toute la durée du projet. - Pour information, il existe une troisième valeur (le numéro de projet) que certaines API utilisent. Pour en savoir plus sur ces trois valeurs, consultez la documentation.
- Vous devez ensuite activer la facturation dans la console Cloud pour utiliser les ressources/API Cloud. L'exécution de cet atelier de programmation est très peu coûteuse, voire sans frais. Pour désactiver les ressources et éviter ainsi que des frais ne vous soient facturés après ce tutoriel, vous pouvez supprimer le projet ou les ressources que vous avez créées. Les nouveaux utilisateurs de Google Cloud peuvent participer au programme d'essai sans frais pour bénéficier d'un crédit de 300$.
Démarrer Cloud Shell
Bien que Google Cloud puisse être utilisé à distance depuis votre ordinateur portable, nous allons nous servir de Google Cloud Shell pour cet atelier de programmation, un environnement de ligne de commande exécuté dans le cloud.
Dans la console Google Cloud, cliquez sur l'icône Cloud Shell dans la barre d'outils supérieure :

Le provisionnement et la connexion à l'environnement prennent quelques instants seulement. Une fois l'opération terminée, le résultat devrait ressembler à ceci :

Cette machine virtuelle contient tous les outils de développement nécessaires. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud, ce qui améliore nettement les performances du réseau et l'authentification. Vous pouvez effectuer toutes les tâches de cet atelier de programmation dans un navigateur. Vous n'avez rien à installer.
Configurer gcloud
Dans Cloud Shell, définissez votre ID de projet et enregistrez-le en tant que variable PROJECT_ID.
Définissez également une variable REGION sur us-central1. Il s'agit de la région dans laquelle vous créerez des ressources ultérieurement.
PROJECT_ID=[YOUR-PROJECT-ID] REGION=us-central1 gcloud config set core/project $PROJECT_ID
Activer les API
Activez tous les services nécessaires :
gcloud services enable \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.googleapis.com
3. Découvrir le fournisseur Datadog
Un fournisseur Eventarc est un service ou une entité pouvant directement envoyer à Google Cloud des événements qui sont ensuite acheminés vers votre projet. Les fournisseurs tiers, tels que Datadog, sont des fournisseurs non Google Cloud qui sont intégrés à Google Cloud via Eventarc.
Dans Cloud Shell, exécutez la commande suivante pour afficher la liste des fournisseurs Google Cloud et tiers :
gcloud eventarc providers list
Vous trouverez ci-dessous la liste des fournisseurs Google Cloud et tiers, ainsi que les zones dans lesquelles ils sont disponibles :
NAME: storage.googleapis.com LOCATION: asia NAME: cloudaudit.googleapis.com LOCATION: asia NAME: pubsub.googleapis.com LOCATION: asia ...
Vous pouvez affiner la liste pour n'afficher que les fournisseurs tiers à l'aide de cette commande :
gcloud eventarc providers list --filter='eventTypes.type!~^google*'
Datadog devrait s'afficher dans la liste :
NAME: datadog LOCATION: us-central1
Vous pouvez également décrire le fournisseur Datadog pour voir les événements qu'il prend en charge :
gcloud eventarc providers describe datadog --location $REGION displayName: Datadog eventTypes: - type: datadog.v1.alert name: projects/project-id/locations/us-central1/providers/datadog
4. Configurer une chaîne
Vous devez configurer un canal pour intégrer votre projet à un fournisseur. Cela implique de créer un canal, de récupérer ses détails et de les envoyer au fournisseur. Une fois que le fournisseur a initialisé la connexion au canal, il peut commencer à envoyer des événements à votre projet.
Créer une chaîne
Vous pouvez créer un canal pour le fournisseur Datadog à l'aide de gcloud :
CHANNEL_NAME=datadog-channel gcloud eventarc channels create $CHANNEL_NAME \ --provider datadog \ --location $REGION
Vous pouvez également le créer à partir de la section "Canaux" de la page Eventarc dans la console Google Cloud :

Récupérer les informations sur la chaîne
Une fois la chaîne créée, récupérez ses détails à partir de gcloud :
gcloud eventarc channels describe $CHANNEL_NAME --location $REGION
La sortie devrait ressembler à ce qui suit :
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'
De même, vous pouvez voir le canal dans la console Google Cloud :

L'état du canal indique son statut. Il peut s'agir de l'un des suivants :
PENDING: le canal a bien été créé et un jeton d'activation est disponible pour créer une connexion avec le fournisseur. Pour modifier l'état de la chaîne dePENDINGàACTIVE, le jeton doit être fourni au fournisseur et utilisé pour associer la chaîne dans les 24 heures suivant sa création.ACTIVE: la chaîne a bien été associée au fournisseur. Un canalACTIVEest prêt à recevoir et à acheminer les événements du fournisseur.INACTIVE: la chaîne ne peut pas recevoir d'événements ni être réactivée. Le fournisseur est déconnecté de ce canal ou le jeton d'activation du canal a expiré et le fournisseur n'est pas connecté. Pour rétablir une connexion avec un fournisseur, vous devez créer une chaîne pour celui-ci.
Un jeton d'activation est un jeton à usage unique et limité dans le temps. Il permet de créer une connexion entre un fournisseur et le projet d'un abonné. Seul un fournisseur spécifique, sélectionné lors de la création du canal, peut utiliser le jeton. Le jeton est valide pendant 24 heures après la création de la chaîne. Au bout de 24 heures, la chaîne passe à l'état INACTIVE.
Envoyer les informations sur la chaîne au fournisseur
Vous devez envoyer les informations suivantes sur le canal au fournisseur Datadog :
- Nom de la chaîne (par exemple,
projects/project-id/locations/us-central1/channels/datadog-channel) - Jeton d'activation (par exemple,
so5g4Kdasda7y2MSasdaGn8njB2)
Connectez-vous à Datadog, accédez à la page des intégrations et assurez-vous que l'intégration Google Eventarc est installée :

Dans la section de configuration de Google Eventarc, saisissez le nom complet du canal et le jeton d'activation :

Le canal devrait maintenant s'afficher dans la liste des canaux. Après quelques secondes, il devrait également devenir actif dans la console Google Cloud :

Vous êtes maintenant prêt à utiliser la chaîne.
5. Créer un workflow
Vous avez besoin d'une destination dans Google Cloud pour recevoir les événements du fournisseur. Eventarc est compatible avec plusieurs destinations d'événements, comme Cloud Run, Workflows et les services Kubernetes. Dans ce cas, déployez un workflow pour enregistrer simplement les événements reçus.
Créez un fichier workflow-datadog1.yaml avec le contenu suivant :
main:
params: [event]
steps:
- logStep:
call: sys.log
args:
data: ${event}
Notez que le workflow reçoit un événement en tant que paramètre. Cet événement proviendra de la surveillance Datadog via Eventarc. Une fois l'événement reçu, le workflow le consigne simplement.
Déployez le workflow :
WORKFLOW_NAME=workflow-datadog1 gcloud workflows deploy $WORKFLOW_NAME \ --source workflow-datadog1.yaml \ --location $REGION
Le workflow est déployé, mais pas encore en cours d'exécution. Il sera exécuté par un déclencheur Eventarc lorsqu'une alerte Datadog sera reçue.
6. Créer un déclencheur Eventarc
Vous êtes maintenant prêt à connecter les événements du fournisseur Datadog à des workflows avec un déclencheur Eventarc.
Configurer un compte de service
Vous avez besoin d'un compte de service avec le rôle eventarc.eventReceiver lorsque vous créez un déclencheur. Vous pouvez créer un compte de service dédié ou utiliser le compte de service de calcul par défaut.
Pour plus de simplicité, utilisez le compte de service Compute par défaut et attribuez le rôle 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
Créer un déclencheur
Créez un déclencheur avec le canal Datadog, le type d'événement et une destination de workflow :
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
Vous pouvez lister les déclencheurs pour vérifier que celui que vous venez de créer est actif :
gcloud eventarc triggers list --location $REGION NAME: datadog-trigger1 TYPE: datadog.v1.alert DESTINATION: Workflows: workflow-datadog1 ACTIVE: Yes
7. Créer un moniteur Datadog
Vous allez maintenant créer un moniteur Datadog et l'associer à Eventarc.
Il s'agira d'un moniteur de type Hello World avec des valeurs par défaut. Vous le déclencherez manuellement pour générer les alertes de surveillance, qui à leur tour généreront un événement Eventarc dans Google Cloud.
Pour créer un moniteur dans Datadog, connectez-vous à Datadog. Pointez sur Monitors dans le menu principal, puis cliquez sur New Monitor dans le sous-menu. Il existe de nombreux types d'écrans. Choisissez le type de moniteur Metric.
Sur la page New Monitor, conservez les valeurs par défaut pour les étapes 1 et 2.
- À l'étape 3, définissez
Alert thresholdsur 1. - À l'étape 4, définissez
Test monitor for Eventarccomme nom du moniteur etNotify your teamsur@eventarc_<your-project-id>_<your-region>_<your-channel-name>.
Laissez la page du moniteur ouverte pour l'étape suivante, au cours de laquelle vous allez tester le moniteur.
8. Tester le moniteur et le déclencheur
Pour tester le moniteur Datadog et le déclencheur Eventarc, vous allez déclencher manuellement le moniteur.
En bas de la page de création du moniteur, cliquez sur le bouton Test Notifications :

Ensuite, cliquez sur le bouton Run Test :

Cela devrait simuler la transition d'état dans le moniteur et déclencher un événement Eventarc.
Vérifiez le workflow workflow-datadog1. Vous devriez voir qu'une nouvelle exécution a été effectuée :

Vérifiez les détails de l'exécution. Vous devriez voir le type d'événement Datadog datadog.v1.alert généré à partir de l'alerte de surveillance dans l'entrée du workflow et également dans les journaux :

9. Félicitations
Félicitations, vous avez terminé cet atelier de programmation. Vous pouvez passer au deuxième atelier de programmation pour découvrir comment répondre aux alertes de surveillance Datadog avec les workflows.
Points abordés
- Découvrez comment trouver le fournisseur Datadog.
- Configurer un canal pour le fournisseur Datadog
- Découvrez comment créer un workflow pour consigner des événements.
- Découvrez comment créer un déclencheur Eventarc avec le canal.
- Découvrez comment créer un moniteur Datadog.
- Découvrez comment tester le moniteur Datadog, le déclencheur Eventarc et le workflow.