1. Introducción
Eventarc facilita la conexión de los servicios de Google Cloud con eventos de una variedad de fuentes. Te permite crear arquitecturas controladas por eventos en las que los microservicios están vinculados y distribuidos de manera flexible. También se encarga de la transferencia de eventos, la entrega, la seguridad, la autorización y el manejo de errores por ti, lo que mejora la agilidad del desarrollador y la resiliencia de las aplicaciones.
Datadog es una plataforma de supervisión y seguridad para aplicaciones en la nube. Reúne seguimientos, métricas y registros 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 simple de supervisión 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 te importa qué es. En la mayoría de los codelabs, deberás hacer referencia al ID del proyecto (por lo general, se identifica como
PROJECT_ID
). Si no te gusta el ID generado, puedes generar otro aleatorio. También puedes probar el tuyo propio y ver si está disponible. No se puede cambiar después de este paso y se mantendrá mientras dure el proyecto. - Para tu información, 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 te facture 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, configura el 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 al proveedor de Datadog
Un proveedor de Eventarc es un servicio o una entidad que puede emitir eventos directamente a Google Cloud, que luego se enrutan a tu proyecto. Los proveedores externos, como Datadog, son proveedores que no pertenecen a 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 ella, se enumeran los proveedores de Google Cloud y de terceros, además de 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 ...
Para limitar la lista a proveedores externos, usa el siguiente 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
Necesitas configurar un canal para integrar tu proyecto con un proveedor. Esto implica crear un canal, recuperar sus detalles y enviarlos al proveedor. Una vez que el proveedor inicialice la conexión con el canal, puede comenzar a enviar eventos a tu proyecto.
Cómo crear 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 en 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 los detalles del canal desde 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'
De manera similar, puedes ver el canal en 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 dePENDING
aACTIVE
, se debe proporcionar el token al proveedor y usarlo para conectar el canal en un plazo de 24 horas a partir de su creación.ACTIVE
: El canal se conectó correctamente con el proveedor. Un canalACTIVE
está 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 una conexión con un proveedor, debes crear un canal nuevo para ese proveedor.
Un token de activación es un token de un solo uso, con restricción de tiempo, que se utiliza 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 convierte en 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 el canal activo en la consola de Google Cloud:
Ya estás listo para 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 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 lo registra.
Implementa el flujo de trabajo:
WORKFLOW_NAME=workflow-datadog1 gcloud workflows deploy $WORKFLOW_NAME \ --source workflow-datadog1.yaml \ --location $REGION
Se implementó el flujo de trabajo, pero aún no se está ejecutando. Lo ejecutará un activador de Eventarc cuando se reciba una alerta de Datadog.
6. Crea un activador de Eventarc
Ya está todo listo para conectar eventos del proveedor de Datadog a Workflows con un activador de Eventarc.
Configura la 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 hacerlo más simple, usa la cuenta de servicio de procesamiento 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 supervisor 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. La activarás de forma manual para generar 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 threshold
en 1. - En el paso 4, establece
Test monitor for Eventarc
como el nombre del monitor yNotify your team
en@eventarc_<your-project-id>_<your-region>_<your-channel-name>
.
Mantén la página del monitor abierta para el siguiente paso en el que probarás el monitor.
8. Prueba el supervisor y el activador
Para probar el monitor de Datadog y el activador de Eventarc, debes activar el monitor de forma manual.
En la parte inferior de la página de creación de monitores, 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 la supervisión y activar un evento de Eventarc.
Verifica el flujo de trabajo de workflow-datadog1
. Deberías ver que hay una ejecución nueva:
Verifica los detalles de la ejecución. Deberías ver el tipo de evento datadog.v1.alert
de Datadog 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