1. Introdução

O Eventarc facilita a conexão de serviços do Google Cloud com eventos de várias fontes. Ele permite criar arquiteturas orientadas a eventos em que os microsserviços são distribuídos e têm acoplamento flexível. Ele também cuida da ingestão, entrega, segurança, autorização e tratamento de erros de eventos, o que melhora a agilidade do desenvolvedor e a resiliência do aplicativo.
O Datadog é uma plataforma de monitoramento e segurança para aplicativos na nuvem. Ele reúne traces, métricas e registros de ponta a ponta para tornar seus aplicativos, infraestrutura e serviços de terceiros observáveis.
Neste primeiro codelab, você vai aprender a encaminhar um alerta de monitoramento simples do Datadog para o Google Cloud com o Eventarc.
O que você vai aprender
- Como descobrir o provedor Datadog.
- Como configurar um canal para o provedor Datadog.
- Como criar um fluxo de trabalho para registrar eventos.
- Como criar um gatilho do Eventarc com o canal.
- Como criar um monitor do Datadog.
- Como testar o monitor do Datadog, o gatilho do Eventarc e o fluxo de trabalho.
2. Configuração e requisitos
Configuração de ambiente autoguiada
- Faça login no Console do Google Cloud e crie um novo projeto ou reutilize um existente. Crie uma conta do Gmail ou do Google Workspace, se ainda não tiver uma.



- O Nome do projeto é o nome de exibição para os participantes do projeto. É uma string de caracteres não usada pelas APIs do Google É possível atualizar o local a qualquer momento.
- O ID do projeto precisa ser exclusivo em todos os projetos do Google Cloud e não pode ser alterado após a definição. O console do Cloud gera automaticamente uma string exclusiva. Em geral, não importa o que seja. Na maioria dos codelabs, é necessário fazer referência ao ID do projeto, normalmente identificado como
PROJECT_ID. Se você não gostar do ID gerado, crie outro aleatório. Se preferir, teste o seu e confira se ele está disponível. Ele não pode ser mudado após essa etapa e permanece durante o projeto. - Para sua informação, há um terceiro valor, um Número do projeto, que algumas APIs usam. Saiba mais sobre esses três valores na documentação.
- Em seguida, ative o faturamento no console do Cloud para usar os recursos/APIs do Cloud. A execução deste codelab não será muito cara, se tiver algum custo. Para encerrar os recursos e evitar cobranças além deste tutorial, exclua os recursos criados ou o projeto inteiro. Novos usuários do Google Cloud estão qualificados para o programa de US$ 300 de avaliação sem custos.
Inicie o Cloud Shell
Embora o Google Cloud e o Spanner possam ser operados remotamente do seu laptop, neste codelab usaremos o Google Cloud Shell, um ambiente de linha de comando executado no Cloud.
No Console do Google Cloud, clique no ícone do Cloud Shell na barra de ferramentas superior à direita:

O provisionamento e a conexão com o ambiente levarão apenas alguns instantes para serem concluídos: Quando o processamento for concluído, você verá algo como:

Essa máquina virtual contém todas as ferramentas de desenvolvimento necessárias. Ela oferece um diretório principal persistente de 5 GB, além de ser executada no Google Cloud. Isso aprimora o desempenho e a autenticação da rede. Neste codelab, todo o trabalho pode ser feito com um navegador. Você não precisa instalar nada.
Configurar a gcloud
No Cloud Shell, defina o ID do projeto e salve-o como a variável PROJECT_ID.
Além disso, defina uma variável REGION como us-central1. Essa é a região em que você vai criar recursos mais tarde.
PROJECT_ID=[YOUR-PROJECT-ID] REGION=us-central1 gcloud config set core/project $PROJECT_ID
Ativar APIs
Ative todos os serviços necessários:
gcloud services enable \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.googleapis.com
3. Descobrir o provedor Datadog
Um provedor do Eventarc é um serviço ou uma entidade que pode emitir eventos diretamente para o Google Cloud, que são roteados para seu projeto. Provedores terceirizados, como o Datadog, não são do Google Cloud, mas estão integrados a ele pelo Eventarc.
No Cloud Shell, execute o comando a seguir para conferir a lista de provedores do Google Cloud e de terceiros:
gcloud eventarc providers list
Esta lista inclui o Google Cloud e provedores terceirizados, além dos locais em que eles estão disponíveis:
NAME: storage.googleapis.com LOCATION: asia NAME: cloudaudit.googleapis.com LOCATION: asia NAME: pubsub.googleapis.com LOCATION: asia ...
Você pode restringir a lista a provedores terceirizados com este comando:
gcloud eventarc providers list --filter='eventTypes.type!~^google*'
O Datadog vai aparecer na lista:
NAME: datadog LOCATION: us-central1
Também é possível descrever o provedor do Datadog para conferir os eventos que ele aceita:
gcloud eventarc providers describe datadog --location $REGION displayName: Datadog eventTypes: - type: datadog.v1.alert name: projects/project-id/locations/us-central1/providers/datadog
4. Configurar um canal
É necessário configurar um canal para integrar seu projeto a um provedor. Isso envolve criar um canal, recuperar os detalhes dele e enviar essas informações ao provedor. Depois que o provedor inicializar a conexão com o canal, ele poderá começar a enviar eventos ao seu projeto.
Criar um canal
É possível criar um canal para o provedor Datadog usando gcloud:
CHANNEL_NAME=datadog-channel gcloud eventarc channels create $CHANNEL_NAME \ --provider datadog \ --location $REGION
Também é possível criar na seção "Canais" da página do Eventarc no Console do Google Cloud:

Recuperar detalhes do canal
Depois que o canal for criado, recupere os detalhes dele em gcloud:
gcloud eventarc channels describe $CHANNEL_NAME --location $REGION
A saída será semelhante a esta:
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'
Da mesma forma, é possível ver o canal no console do Google Cloud:

O estado do canal indica o status dele. Pode ser um destes:
PENDING: o canal foi criado e há um token de ativação disponível para criar uma conexão com o provedor. Para mudar o estado do canal dePENDINGparaACTIVE, o token precisa ser fornecido ao provedor e usado para conectar o canal em até 24 horas após a criação dele.ACTIVE: o canal foi conectado ao provedor. Um canalACTIVEestá pronto para receber e rotear eventos do provedor.INACTIVE: o canal não pode receber eventos nem ser reativado. O provedor está desconectado deste canal ou o token de ativação do canal expirou e o provedor não está conectado. Para restabelecer uma conexão com um provedor, crie um novo canal para ele.
Um token de ativação é de uso único e com restrição de tempo. Ele é usado para criar uma conexão entre um provedor e o projeto de um assinante. Somente um provedor específico, selecionado durante o processo de criação do canal, pode usar o token. O token é válido por 24 horas após a criação do canal. Após 24 horas, o canal fica INACTIVE.
Enviar detalhes do canal ao provedor
Você precisa enviar os seguintes detalhes do canal ao provedor do Datadog:
- Nome do canal (por exemplo,
projects/project-id/locations/us-central1/channels/datadog-channel) - Token de ativação (por exemplo,
so5g4Kdasda7y2MSasdaGn8njB2)
Faça login no Datadog, acesse a página de integrações e verifique se a integração do Google Eventarc está instalada:

Na seção de configuração do Google Eventarc, insira o nome completo do canal e o token de ativação:

Agora o canal vai aparecer na lista de canais e, depois de alguns segundos, ele também vai ficar ativo no console do Google Cloud:

Agora você já pode usar o canal!
5. Criar um fluxo de trabalho
Você precisa de um destino no Google Cloud para receber eventos do provedor. O Eventarc é compatível com vários destinos de eventos, como Cloud Run, Workflows e serviços do Kubernetes. Nesse caso, implante um fluxo de trabalho para registrar os eventos recebidos.
Crie um arquivo workflow-datadog1.yaml com o seguinte conteúdo:
main:
params: [event]
steps:
- logStep:
call: sys.log
args:
data: ${event}
O fluxo de trabalho está recebendo um evento como parâmetro. Esse evento virá do monitoramento do Datadog pelo Eventarc. Depois que o evento é recebido, o fluxo de trabalho simplesmente registra o evento recebido.
Implante o fluxo de trabalho:
WORKFLOW_NAME=workflow-datadog1 gcloud workflows deploy $WORKFLOW_NAME \ --source workflow-datadog1.yaml \ --location $REGION
O fluxo de trabalho foi implantado, mas ainda não está em execução. Ele será executado por um gatilho do Eventarc quando um alerta do Datadog for recebido.
6. Criar um gatilho do Eventarc
Agora você já pode conectar eventos do provedor Datadog aos fluxos de trabalho com um gatilho do Eventarc.
Configurar conta de serviço
Você precisa de uma conta de serviço com a função eventarc.eventReceiver ao criar um gatilho. É possível criar uma conta de serviço dedicada ou usar a conta de serviço de computação padrão.
Para simplificar, use a conta de serviço de computação padrão e conceda o papel 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
Criar um gatilho
Crie um gatilho com o canal do Datadog, o tipo de evento e um destino de fluxo de trabalho:
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
Liste os gatilhos para ver se o gatilho recém-criado está ativo:
gcloud eventarc triggers list --location $REGION NAME: datadog-trigger1 TYPE: datadog.v1.alert DESTINATION: Workflows: workflow-datadog1 ACTIVE: Yes
7. Criar um monitor do Datadog
Agora você vai criar um monitor do Datadog e conectá-lo ao Eventarc.
Ele será um monitor do tipo "Hello World" com valores padrão. Você vai acionar manualmente para gerar os alertas de monitoramento, que por sua vez vão gerar um evento do Eventarc no Google Cloud.
Para criar um monitor no Datadog, faça login no Datadog. Passe o cursor sobre Monitors no menu principal e clique em New Monitor no submenu. Há muitos tipos de monitores. Escolha o tipo de monitor Metric.
Na página New Monitor, deixe os valores padrão para as etapas 1 e 2.
- Na etapa 3, defina
Alert thresholdcomo 1. - Na etapa 4, defina
Test monitor for Eventarccomo o nome do monitor eNotify your teamcomo@eventarc_<your-project-id>_<your-region>_<your-channel-name>.
Mantenha a página do monitor aberta para a próxima etapa, em que você vai testar o monitor.
8. Testar o monitor e o gatilho
Para testar o monitor do Datadog e o gatilho do Eventarc, acione o monitor manualmente.
Na parte de baixo da página de criação do monitor, clique no botão Test Notifications:

Em seguida, clique no botão Run Test:

Isso simula a transição de estado no monitor e aciona um evento do Eventarc.
Verifique o fluxo de trabalho workflow-datadog1. Você vai notar que há uma nova execução:

Confira os detalhes da execução. Você vai ver o tipo de evento do Datadog datadog.v1.alert gerado pelo alerta de monitoramento na entrada do fluxo de trabalho e também nos registros:

9. Parabéns
Parabéns, você concluiu o codelab. Continue para o segundo codelab e saiba como responder aos alertas de monitoramento do Datadog com fluxos de trabalho.
O que aprendemos
- Como descobrir o provedor Datadog.
- Como configurar um canal para o provedor Datadog.
- Como criar um fluxo de trabalho para registrar eventos.
- Como criar um gatilho do Eventarc com o canal.
- Como criar um monitor do Datadog.
- Como testar o monitor do Datadog, o gatilho do Eventarc e o fluxo de trabalho.