1. Introdução
O Eventarc facilita a conexão dos serviços do Google Cloud com eventos de diversas fontes. Ele permite criar arquiteturas orientadas a eventos em que os microsserviços são acoplados com flexibilidade e distribuídos. Ele também cuida da ingestão, da entrega, da segurança, da autorização e do tratamento de erros de eventos para você, o que melhora a agilidade do desenvolvedor e a resiliência de aplicativos.
O Datadog é uma plataforma de monitoramento e segurança para aplicativos de nuvem. Ele reúne traces, métricas e registros completos para tornar seus aplicativos, infraestrutura e serviços de terceiros observáveis.
Neste primeiro codelab, você vai aprender a rotear um alerta simples de monitoramento do Datadog para o Google Cloud com o Eventarc.
O que você vai aprender
- Como descobrir o provedor do 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 Você pode atualizar 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. normalmente você não se importa com o que seja. Na maioria dos codelabs, é necessário fazer referência ao ID do projeto, que normalmente é identificado como
PROJECT_ID
. Se você não gostar do ID gerado, poderá gerar outro ID aleatório. Como alternativa, você pode tentar o seu próprio e ver se ele está disponível. Ela não pode ser alterada após essa etapa e permanecerá durante a duração do projeto. - Para sua informação, há um terceiro valor, um Número de 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 não gerar faturamento além deste tutorial, exclua os recursos criados ou exclua 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 depois.
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. Descubra o provedor do Datadog
Um provedor do Eventarc é um serviço ou uma entidade que pode emitir eventos diretamente para o Google Cloud e depois são roteados para o projeto. Provedores terceirizados, como o Datadog, são provedores que não são do Google Cloud e são integrados ao Google Cloud pelo Eventarc.
No Cloud Shell, execute o seguinte comando para ver a lista de provedores do Google Cloud e de terceiros:
gcloud eventarc providers list
Ela lista os provedores do Google Cloud e de terceiros, além dos locais em que estão disponíveis:
NAME: storage.googleapis.com LOCATION: asia NAME: cloudaudit.googleapis.com LOCATION: asia NAME: pubsub.googleapis.com LOCATION: asia ...
É possível restringir a lista a provedores de terceiros com este comando:
gcloud eventarc providers list --filter='eventTypes.type!~^google*'
Você verá o Datadog na lista:
NAME: datadog LOCATION: us-central1
Também é possível descrever o provedor do Datadog para conferir os eventos compatíveis:
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
Você precisa configurar um canal para integrar seu projeto a um provedor. Isso envolve a criação de um canal, a recuperação dos detalhes dele e o envio dessas informações ao provedor. Depois que o provedor inicializa a conexão com o canal, ele pode começar a enviar eventos para o projeto.
Criar um canal
É possível criar um canal para o provedor do Datadog usando gcloud
:
CHANNEL_NAME=datadog-channel gcloud eventarc channels create $CHANNEL_NAME \ --provider datadog \ --location $REGION
Também é possível criá-lo 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 estabelecer uma conexão com o provedor. Para mudar o estado do canal dePENDING
paraACTIVE
, 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 canalACTIVE
está pronto para receber e rotear eventos do provedor.INACTIVE
: o canal não pode receber eventos nem ser reativado. O provedor foi 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, você deve criar um novo canal para ele.
Um token de ativação é um token de uso único e com restrição de tempo usado para criar uma conexão entre um provedor e o projeto do 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 se torna INACTIVE
.
Enviar os detalhes do canal para o provedor
Você precisa enviar os seguintes detalhes do canal para o provedor do Datadog:
- Nome do canal (por exemplo,
projects/project-id/locations/us-central1/channels/datadog-channel
) - O 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:
O canal vai aparecer na lista de canais e, depois de alguns segundos, vai aparecer como ativo no console do Google Cloud:
Agora, você está pronto para 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 apenas 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 está implantado, mas ainda não está em execução. Ele é executado por um gatilho do Eventarc quando um alerta do Datadog é recebido.
6. Criar um gatilho do Eventarc
Agora você já pode conectar eventos do provedor do Datadog ao Workflows com um gatilho Eventarc.
Configurar conta de serviço
Você precisa de uma conta de serviço com o papel eventarc.eventReceiver
ao criar um gatilho. É possível criar uma conta de serviço dedicada ou usar a conta de serviço padrão do Compute.
Para simplificar, use a conta de serviço padrão do Compute 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 Datadog, o tipo de evento e também 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
É possível listar os acionadores para ver se o acionador 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 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 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 monitor. Escolha o tipo de monitor Metric
.
Na página New Monitor
, mantenha os valores padrão das etapas 1 e 2.
- Na etapa 3, defina
Alert threshold
como 1. - Na etapa 4, defina
Test monitor for Eventarc
como o nome do monitor eNotify your team
como@eventarc_<your-project-id>_<your-region>_<your-channel-name>
.
Mantenha a página do monitor aberta para a próxima etapa, em que você o testará.
8. Testar o monitor e o acionamento
Para testar o monitor do Datadog e o gatilho do Eventarc, acione o monitor manualmente.
Na parte inferior da página de criação do monitor, clique no botão Test Notifications
:
Em seguida, clique no botão Run Test
:
Isso deve simular a transição de estado no monitor e acionar um evento Eventarc.
Verifique o fluxo de trabalho workflow-datadog1
. Você verá que há uma nova execução:
Verifique os detalhes da execução. O tipo de evento datadog.v1.alert
do Datadog gerado pelo alerta de monitoramento vai aparecer na entrada do fluxo de trabalho e também nos registros:
9. Parabéns
Parabéns, você concluiu o codelab. Prossiga para o segundo codelab para aprender a responder a alertas de monitoramento do Datadog com o Workflows.
O que aprendemos
- Como descobrir o provedor do 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.