1. Introducción

Eventarc facilita la conexión de los servicios de Google Cloud con eventos de diversas fuentes. Te permite compilar arquitecturas basadas en eventos en las que los microservicios están distribuidos y con acoplamiento bajo. También se encarga de la transferencia, la entrega, la seguridad, la autorización y el manejo de errores de eventos por ti, lo que mejora la agilidad de los desarrolladores y la resiliencia de las aplicaciones.
Datadog es una plataforma de supervisión y seguridad para aplicaciones en la nube. Reúne registros, métricas y seguimientos de extremo a extremo para que tus aplicaciones, infraestructura y servicios de terceros sean observables.
En este primer codelab, aprenderás a enrutar una alerta de supervisión simple de Datadog a Google Cloud con Eventarc.
Qué aprenderás
- Cómo descubrir el proveedor de Datadog
- Cómo configurar un canal para el proveedor de Datadog
- Cómo crear un flujo de trabajo para registrar eventos
- Cómo crear un activador de Eventarc con el canal
- Cómo crear un monitor de Datadog
- Cómo probar el monitor de Datadog, el activador de Eventarc y el flujo de trabajo
2. Configuración y requisitos
Configuración del entorno de autoaprendizaje
- Accede a Google Cloud Console y crea un proyecto nuevo o reutiliza uno existente. Si aún no tienes una cuenta de Gmail o de Google Workspace, debes crear una.



- El Nombre del proyecto es el nombre visible de los participantes de este proyecto. Es una cadena de caracteres que no se utiliza en las APIs de Google. Puedes actualizarla en cualquier momento.
- El ID del proyecto debe ser único en todos los proyectos de Google Cloud y es inmutable (no se puede cambiar después de configurarlo). La consola de Cloud genera automáticamente una cadena única. Por lo general, no importa cuál sea. En la mayoría de los codelabs, deberás hacer referencia al ID del proyecto (suele identificarse como
PROJECT_ID). Si no te gusta el ID que se generó, podrías generar otro aleatorio. También puedes probar uno propio y ver si está disponible. No se puede cambiar después de este paso y se usará el mismo durante todo el proyecto. - Recuerda que hay un tercer valor, un número de proyecto, que usan algunas APIs. Obtén más información sobre estos tres valores en la documentación.
- A continuación, deberás habilitar la facturación en la consola de Cloud para usar las APIs o los recursos de Cloud. Ejecutar este codelab no debería costar mucho, tal vez nada. Para cerrar recursos y evitar que se generen cobros más allá de este instructivo, puedes borrar los recursos que creaste o borrar todo el proyecto. Los usuarios nuevos de Google Cloud son aptos para participar en el programa Prueba gratuita de USD 300.
Inicia Cloud Shell
Si bien Google Cloud y Spanner se pueden operar de manera remota desde tu laptop, en este codelab usarás Google Cloud Shell, un entorno de línea de comandos que se ejecuta en la nube.
En Google Cloud Console, haz clic en el ícono de Cloud Shell en la barra de herramientas en la parte superior derecha:

El aprovisionamiento y la conexión al entorno deberían tomar solo unos minutos. Cuando termine el proceso, debería ver algo como lo siguiente:

Esta máquina virtual está cargada con todas las herramientas de desarrollo que necesitarás. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud, lo que permite mejorar considerablemente el rendimiento de la red y la autenticación. Todo tu trabajo en este codelab se puede hacer en un navegador. No es necesario que instales nada.
Configura gcloud
En Cloud Shell, establece tu ID del proyecto y guárdalo como la variable PROJECT_ID.
Además, establece una variable REGION en us-central1. Esta es la región en la que crearás recursos más adelante.
PROJECT_ID=[YOUR-PROJECT-ID] REGION=us-central1 gcloud config set core/project $PROJECT_ID
Habilita las APIs
Habilita todos los servicios necesarios con el siguiente comando:
gcloud services enable \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.googleapis.com
3. Descubre el proveedor de Datadog
Un proveedor de Eventarc es un servicio o una entidad que puede emitir eventos directamente a Google Cloud, los que luego se enrutan a tu proyecto. Los proveedores externos, como Datadog, son proveedores que no son de Google Cloud y que están integrados en Google Cloud a través de Eventarc.
En Cloud Shell, ejecuta el siguiente comando para ver la lista de proveedores de Google Cloud y de terceros:
gcloud eventarc providers list
En la siguiente lista, se indican los proveedores de Google Cloud y externos, y las ubicaciones en las que están disponibles:
NAME: storage.googleapis.com LOCATION: asia NAME: cloudaudit.googleapis.com LOCATION: asia NAME: pubsub.googleapis.com LOCATION: asia ...
Puedes reducir la lista a proveedores externos con este comando:
gcloud eventarc providers list --filter='eventTypes.type!~^google*'
Deberías ver Datadog en la lista:
NAME: datadog LOCATION: us-central1
También puedes describir el proveedor de Datadog para ver los eventos que admite:
gcloud eventarc providers describe datadog --location $REGION displayName: Datadog eventTypes: - type: datadog.v1.alert name: projects/project-id/locations/us-central1/providers/datadog
4. Configura un canal
Debes configurar un canal para integrar tu proyecto con un proveedor. Esto implica crear un canal, recuperar sus detalles y enviárselos al proveedor. Una vez que el proveedor inicializó la conexión al canal, puede comenzar a enviar eventos a tu proyecto.
Crea un canal
Puedes crear un canal para el proveedor de Datadog con gcloud:
CHANNEL_NAME=datadog-channel gcloud eventarc channels create $CHANNEL_NAME \ --provider datadog \ --location $REGION
También puedes crearlo desde la sección Canales de la página de Eventarc en la consola de Google Cloud:

Cómo recuperar los detalles del canal
Una vez que se cree el canal, recupera sus detalles de gcloud:
gcloud eventarc channels describe $CHANNEL_NAME --location $REGION
El resultado debería ser similar al siguiente ejemplo:
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'
Del mismo modo, puedes ver el canal desde la consola de Google Cloud:

El estado del canal indica su estado. Puede ser uno de los siguientes:
PENDING: El canal se creó correctamente y hay un token de activación disponible para crear una conexión con el proveedor. Para cambiar el estado del canal dePENDINGaACTIVE, se debe proporcionar el token al proveedor y usarlo para conectar el canal en un plazo de 24 horas después de la creación del canal.ACTIVE: El canal se conectó correctamente con el proveedor. Un canalACTIVEestá listo para recibir y enrutar eventos del proveedor.INACTIVE—El canal no puede recibir eventos ni reactivarse. El proveedor está desconectado de este canal o el token de activación del canal venció y el proveedor no está conectado. Para restablecer la conexión con un proveedor, debes crear un canal nuevo para él.
Un token de activación es un token de un solo uso y con restricción de tiempo que se usa para crear una conexión entre un proveedor y el proyecto de un suscriptor. Solo un proveedor específico, seleccionado durante el proceso de creación del canal, puede usar el token. El token es válido durante 24 horas después de la creación del canal. Después de 24 horas, el canal se vuelve INACTIVE.
Envía los detalles del canal al proveedor
Debes enviar los siguientes detalles del canal al proveedor de Datadog:
- Nombre del canal (p. ej.,
projects/project-id/locations/us-central1/channels/datadog-channel - Token de activación (p. ej.,
so5g4Kdasda7y2MSasdaGn8njB2
Accede a Datadog, ve a la página de integraciones y asegúrate de que la integración de Google Eventarc esté instalada:

En la sección de configuración de Google Eventarc, ingresa el nombre completo del canal y el token de activación:

Ahora deberías ver el canal en la lista de canales y, después de unos segundos, también deberías ver que el canal se activa en Google Cloud Console:

Ahora ya puedes usar el canal.
5. Crea un flujo de trabajo
Necesitas un destino en Google Cloud para recibir eventos del proveedor. Eventarc admite varios destinos de eventos, como Cloud Run, Workflows y servicios de Kubernetes. En este caso, implementa un flujo de trabajo para registrar simplemente los eventos recibidos.
Crea un archivo workflow-datadog1.yaml con el siguiente contenido:
main:
params: [event]
steps:
- logStep:
call: sys.log
args:
data: ${event}
Ten en cuenta que el flujo de trabajo recibe un evento como parámetro. Este evento provendrá de la supervisión de Datadog a través de Eventarc. Una vez que se recibe el evento, el flujo de trabajo simplemente registra el evento recibido.
Implementa el flujo de trabajo:
WORKFLOW_NAME=workflow-datadog1 gcloud workflows deploy $WORKFLOW_NAME \ --source workflow-datadog1.yaml \ --location $REGION
El flujo de trabajo se implementó, pero aún no se ejecuta. Un activador de Eventarc la ejecutará cuando se reciba una alerta de Datadog.
6. Crea un activador de Eventarc
Ahora puedes conectar eventos del proveedor de Datadog a Workflows con un activador de Eventarc.
Configurar cuenta de servicio
Necesitas una cuenta de servicio con el rol eventarc.eventReceiver cuando creas un activador. Puedes crear una cuenta de servicio dedicada o usar la cuenta de servicio de procesamiento predeterminada.
Para simplificar, usa la cuenta de servicio de Compute predeterminada y otorga el 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
Crea un activador
Crea un activador con el canal de Datadog, el tipo de evento y también un destino de flujo de trabajo:
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
Puedes enumerar los activadores para ver que el activador recién creado esté activo:
gcloud eventarc triggers list --location $REGION NAME: datadog-trigger1 TYPE: datadog.v1.alert DESTINATION: Workflows: workflow-datadog1 ACTIVE: Yes
7. Crea un monitor de Datadog
Ahora crearás un monitor de Datadog y lo conectarás a Eventarc.
Será un monitor de tipo Hello World con valores predeterminados. Lo activarás de forma manual para generar las alertas de supervisión que, a su vez, generarán un evento de Eventarc en Google Cloud.
Para crear un monitor en Datadog, accede a Datadog. Coloca el cursor sobre Monitors en el menú principal y haz clic en New Monitor en el submenú. Existen muchos tipos de monitores. Elige el tipo de monitor Metric.
En la página New Monitor, deja los valores predeterminados para los pasos 1 y 2.
- En el paso 3, establece
Alert thresholden 1. - En el paso 4, establece
Test monitor for Eventarccomo el nombre del monitor yNotify your teamcomo@eventarc_<your-project-id>_<your-region>_<your-channel-name>.
Mantén abierta la página de supervisión para el siguiente paso, en el que probarás el monitor.
8. Prueba el monitor y el activador
Para probar el monitor de Datadog y el activador de Eventarc, activarás el monitor de forma manual.
En la parte inferior de la página de creación del monitor, haz clic en el botón Test Notifications:

Luego, haz clic en el botón Run Test:

Esto debería simular la transición de estado en el monitor y activar un evento de Eventarc.
Verifica el flujo de trabajo workflow-datadog1. Deberías ver que hay una nueva ejecución:

Verifica los detalles de la ejecución. Deberías ver el tipo de evento de Datadog datadog.v1.alert generado a partir de la alerta de supervisión en la entrada del flujo de trabajo y también en los registros:

9. Felicitaciones
¡Felicitaciones! Completaste el codelab. Puedes continuar con el segundo codelab para aprender a responder a las alertas de supervisión de Datadog con Workflows.
Temas abordados
- Cómo descubrir el proveedor de Datadog
- Cómo configurar un canal para el proveedor de Datadog
- Cómo crear un flujo de trabajo para registrar eventos
- Cómo crear un activador de Eventarc con el canal
- Cómo crear un monitor de Datadog
- Cómo probar el monitor de Datadog, el activador de Eventarc y el flujo de trabajo