1. Introduction
Eventarc facilite la connexion des services Google Cloud à des événements provenant de différentes sources. Il vous permet de créer des architectures basées sur des événements dans lesquelles des microservices sont faiblement couplés et distribués. Il se charge également de l'ingestion, de la diffusion, de la sécurité, de l'autorisation et de la gestion des erreurs des événements 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 les traces, les métriques et les 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 à acheminer une simple alerte de surveillance Datadog vers Google Cloud à l'aide d'Eventarc.
Points abordés
- Comment découvrir le fournisseur Datadog.
- Configurer un canal pour le fournisseur Datadog
- Créer un workflow pour consigner des événements
- Créer un déclencheur Eventarc avec le canal
- Comment créer un système de surveillance Datadog.
- Tester la surveillance 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. généralement, vous ne vous souciez
pas de ce que c’est. Dans la plupart des ateliers de programmation, vous devrez référencer l'ID du projet (il est généralement identifié comme
PROJECT_ID
). Si l'ID généré ne vous convient pas, vous pouvez en générer un autre au hasard. Vous pouvez également essayer la vôtre pour voir si elle est disponible. Il ne peut pas être modifié après cette étape et restera actif pendant toute la durée du projet. - Pour votre information, il existe une troisième valeur, le numéro de projet, utilisé par certaines API. 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 arrêter les ressources afin d'éviter que des frais ne vous soient facturés au-delà de ce tutoriel, vous pouvez supprimer les ressources que vous avez créées ou l'ensemble du projet. Les nouveaux utilisateurs de Google Cloud peuvent participer au programme d'essai gratuit 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 l'ID de votre 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écouvrez le fournisseur Datadog
Un fournisseur Eventarc est un service ou une entité qui peut émettre des événements directement dans Google Cloud, qui sont ensuite acheminés vers votre projet. Les fournisseurs tiers, tels que Datadog, sont des fournisseurs autres que Google Cloud qui s'intègrent à 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
Il répertorie les fournisseurs Google Cloud et tiers, ainsi que les emplacements où ils sont disponibles:
NAME: storage.googleapis.com LOCATION: asia NAME: cloudaudit.googleapis.com LOCATION: asia NAME: pubsub.googleapis.com LOCATION: asia ...
Vous pouvez limiter la liste aux fournisseurs tiers à l'aide de la commande suivante:
gcloud eventarc providers list --filter='eventTypes.type!~^google*'
Datadog devrait figurer dans la liste:
NAME: datadog LOCATION: us-central1
Vous pouvez également décrire le fournisseur Datadog pour afficher les événements qu'il accepte:
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 les détails du canal 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 depuis la section "Canaux" de la page "Eventarc" dans la console Google Cloud:
Récupérer les informations de la chaîne
Une fois la chaîne créée, récupérez ses informations à 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 de la chaîne indique son état. Il peut s'agir de l'un des suivants :
PENDING
: le canal a bien été créé et un jeton d'activation est disponible pour établir une connexion avec le fournisseur. Pour que l'état du canal passe dePENDING
àACTIVE
, le jeton doit être transmis au fournisseur et utilisé pour associer la chaîne dans les 24 heures suivant sa création.ACTIVE
: le canal a bien été associé au fournisseur. Un canalACTIVE
est 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 la connexion avec un fournisseur, vous devez créer un autre canal 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 devient INACTIVE
.
Envoyer les informations de la chaîne au fournisseur
Vous devez envoyer les informations de canal suivantes 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 de 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. Au bout de 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 des événements du fournisseur. Eventarc est compatible avec un certain nombre de destinations d'événements, telles que Cloud Run, Workflows et les services Kubernetes. Dans ce cas, déployez un workflow pour consigner 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 l'enregistre.
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 il n'est pas encore en cours d'exécution. Elle sera exécutée 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 à Workflows à l'aide d'un déclencheur Eventarc.
Configurer le compte de service
Vous devez disposer d'un compte de service doté du rôle eventarc.eventReceiver
pour créer un déclencheur. Vous pouvez créer un compte de service dédié ou utiliser le compte de service Compute par défaut.
Pour plus de simplicité, utilisez le compte de service Compute par défaut et attribuez-lui 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 répertorier les déclencheurs pour vérifier que le déclencheur 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 une surveillance Datadog
Vous allez maintenant créer une surveillance Datadog et la connecter à Eventarc.
Il s'agira d'une surveillance de type Hello World avec des valeurs par défaut. Vous allez la déclencher manuellement pour générer les alertes de surveillance, qui généreront ensuite un événement Eventarc dans Google Cloud.
Pour créer une surveillance 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 de surveillance. Sélectionnez le type de surveillance Metric
.
Sur la page New Monitor
, conservez les valeurs par défaut pour les étapes 1 et 2.
- À l'étape 3, définissez
Alert threshold
sur 1. - À l'étape 4, définissez
Test monitor for Eventarc
comme nom de surveillance etNotify your team
sur@eventarc_<your-project-id>_<your-region>_<your-channel-name>
.
Laissez la page du moniteur ouverte pour l'étape suivante, pendant laquelle vous allez tester le moniteur.
8. Tester la surveillance et le déclencheur
Pour tester la surveillance Datadog et le déclencheur Eventarc, vous allez déclencher la surveillance manuellement.
En bas de la page de création de surveillance, cliquez sur le bouton Test Notifications
:
Ensuite, cliquez sur le bouton Run Test
:
Cela devrait simuler la transition d'état dans la surveillance et déclencher un événement Eventarc.
Vérifiez le workflow workflow-datadog1
. Une nouvelle exécution doit s'afficher:
Vérifiez les détails de l'exécution. Le type d'événement Datadog datadog.v1.alert
généré à partir de l'alerte de surveillance doit s'afficher dans l'entrée du workflow et 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 apprendre à répondre aux alertes de surveillance Datadog à l'aide de Workflows.
Points abordés
- Comment découvrir le fournisseur Datadog.
- Configurer un canal pour le fournisseur Datadog
- Créer un workflow pour consigner des événements
- Créer un déclencheur Eventarc avec le canal
- Comment créer un système de surveillance Datadog.
- Tester la surveillance Datadog, le déclencheur Eventarc et le workflow