Alertas: verificações de tempo de atividade para tópicos do Pub/Sub

Alertas:
verificações de tempo de atividade para tópicos do Pub/Sub

Sobre este codelab

subjectÚltimo jul. 7, 2023 atualizado
account_circleEscrito por Aron Eidelman

1. Introdução

Última atualização:21 de junho de 2023

Como programar alertas para verificações de tempo de atividade para disponibilidade

Os alertas sobre verificações de tempo de atividade permitem identificar e resolver rapidamente problemas que podem afetar seus serviços. Ao receber alertas sobre falhas temporárias, você pode tomar medidas para minimizar o impacto para seus usuários e clientes.

As verificações de tempo de atividade ocorrem em intervalos. O menor deles é 60 segundos. Também pode ser útil monitorar códigos de erro como eventos dinâmicos, por meio de alertas com base em registros, como um indicador adicional de indisponibilidade se você precisar de granularidade além de 60 segundos. Se um intervalo de 60 segundos ou mais for aceitável, as verificações de tempo de atividade serão uma maneira fácil de avaliar seu serviço com pouca configuração extra.

Se um serviço não estiver disponível, uma verificação de tempo de atividade detectará o problema mesmo que não haja tráfego. O tráfego, por outro lado, pode ser afetado por fatores como manutenção, upgrades e até mesmo fatores externos ao sistema, como mau tempo ou eventos esportivos que distraem o uso.

Para mais informações sobre quando usar as verificações de tempo de atividade, consulte Garantir o tempo de atividade dos seus recursos do Google Cloud.

Tópicos do Pub/Sub como um canal de notificação de alerta

Um tópico do Pub/Sub pode ser usado como um canal de notificação do Google Cloud Monitoring para enviar alertas a uma assinatura do Pub/Sub. Dessa forma, é possível integrar os alertas do Cloud Monitoring a outros sistemas, incluindo serviços de notificação de terceiros.

Para usar um tópico do Pub/Sub como um canal de notificação, primeiro você precisa criar um tópico e uma assinatura do Pub/Sub. Em seguida, você precisa criar um canal de notificação do Cloud Monitoring que use o tópico do Pub/Sub como destino.

Quando um alerta é acionado, o Cloud Monitoring envia uma mensagem para o tópico do Pub/Sub. O assinante da assinatura do Pub/Sub pode processar a mensagem e tomar as medidas adequadas.

O que você vai criar

Neste codelab, você vai implantar um app e criar um tópico do Pub/Sub e um alerta de verificação de tempo de atividade para o app que usa o tópico do Pub/Sub como um canal de notificação.

O que você vai aprender

  • Como criar um tópico do Pub/Sub
  • Como criar uma verificação e um alerta de tempo de atividade

O foco deste codelab é criar um alerta para uma verificação de tempo de atividade. Conceitos não relevantes e códigos do aplicativo são citados rapidamente e fornecidos para que você simplesmente os copie e cole.

O que é necessário

  • Uma conta do Google Cloud com permissões para:
  • Implantar aplicativos do Cloud Run
  • Criar tópicos Pub/Sub
  • Criar verificações de tempo de atividade
  • Criar alertas

2. Etapas da configuração

Selecionar ou criar um projeto do Google Cloud

Para selecionar um projeto, use o menu suspenso:

b35bf95b8bf3d5d8.png

Para criar um novo projeto no Google Cloud, siga estas etapas:

  1. Acesse o Console do Google Cloud Platform.
  2. Clique no botão Criar projeto.
  3. Insira um nome para seu projeto.
  4. Selecione uma conta de faturamento para seu projeto.
  5. Clique no botão Criar.

Seu projeto será criado, e você será direcionado para o painel dele. A partir daí, você pode começar a usar os serviços do Google Cloud.

Veja alguns detalhes adicionais sobre cada etapa:

  • Nome:o nome do projeto precisa ser exclusivo na organização.
  • Conta de faturamento:você pode usar uma conta de faturamento atual ou criar uma nova.
  • Criar:depois de inserir todas as informações necessárias, clique no botão Criar para criar o projeto.

Para mais informações, consulte a documentação do Google Cloud sobre a criação de projetos.

3. Implantar o aplicativo de API

Sobre o que é o aplicativo ou API de exemplo?

Nosso aplicativo é um aplicativo simples da API Inventory que expõe um endpoint da API REST com algumas operações para listar os itens de inventário e receber a contagem específica de inventário de itens.

Depois de implantar a API e presumindo que ela está hospedada em https://<somehost>, podemos acessar os endpoints da API da seguinte maneira:

https://<somehost>/inventory

Isso listará todos os itens de produto com os níveis de estoque disponíveis.

https://<somehost>/inventory/{productid}

Isso vai fornecer um registro único com o productid e o nível de estoque disponível para esse produto.

Os dados de resposta retornados estão no formato JSON.

Observação: esse aplicativo de API é apenas para fins de demonstração e não representa uma implementação de API segura e robusta. Ele oferece um aplicativo rápido para você conhecer o objetivo principal do laboratório, ou seja, as Operações do Google Cloud.

Dados de amostra e solicitação/resposta de API

O aplicativo não é alimentado por um banco de dados no back-end para manter as coisas simples. Ele contém três exemplos de IDs de produtos e seus níveis de inventário disponíveis.

ID do produto

Nível de inventário disponível

I-1

10

I-2

20

I-3

30

Os exemplos de solicitação e resposta da API são mostrados abaixo:

Solicitação de API

Resposta da API

https://&lt;somehost&gt;/inventory

[ { &quot;I-1&quot;: 10, &quot;I-2&quot;: 20, &quot;I-3&quot;: 30 }]

https://&lt;somehost&gt;/inventory/I-1

{ &quot;productid&quot;: &quot;I-1&quot;, &quot;qty&quot;: 10}

https://&lt;somehost&gt;/inventory/I-2

{ &quot;productid&quot;: &quot;I-2&quot;, &quot;qty&quot;: 20}

https://&lt;somehost&gt;/inventory/I-200

{ &quot;productid&quot;: I-200, &quot;qty&quot;: -1}

Clone o repositório

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 GCP, clique no ícone do Cloud Shell na barra de ferramentas localizada no canto superior direito:

bce75f34b2c53987.png

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:

f6ef2b5f13479f3a.png

Essa máquina virtual tem 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. Todo o trabalho neste laboratório pode ser feito com apenas um navegador.

Configurar a gcloud

No Cloud Shell, defina o ID do projeto e salve-o como a variável PROJECT_ID.

PROJECT_ID=[YOUR-PROJECT-ID]

gcloud config set project $PROJECT_ID

Agora execute este comando:

$ git clone https://github.com/rominirani/cloud-code-sample-repository.git

Isso vai criar uma pasta chamada cloud-code-sample-repository.

(Opcional) Executar o aplicativo no Cloud Shell

Para executar o aplicativo localmente, siga estas etapas:

  1. No terminal, use o seguinte comando para acessar a versão em Python da API:

$ cd cloud-code-sample-repository

$ cd python-flask-api

  1. No terminal, insira o comando a seguir. No momento em que este artigo foi escrito, o Cloud Shell vem com o Python 3.9.x instalado, e usaremos a versão padrão. Se você planeja executá-lo localmente no seu laptop, use o Python 3.8+:

$ python app.py

  1. Execute o comando a seguir para iniciar o servidor Python localmente.

1f798fbddfdc2c8e.png 46edf454cc70c5a6.png

Clique em Visualizar na porta 8080. 5. Uma janela do navegador será aberta. Um erro 404 será exibido. Tudo bem. Modifique "URL" para incluir apenas "/inventory" após o nome do host.

Por exemplo: na minha máquina, será assim:

https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory

Isso exibirá a lista de itens de inventário como explicado anteriormente:

709d57ee2f0137e4.png

  1. Você pode parar o servidor agora acessando o terminal e pressionando Ctrl-C

Implantar o aplicativo

Agora vamos implantar esse aplicativo de API no Cloud Run. O processo envolvia a utilização do cliente de linha de comando gcloud para executar o comando e implantar o código no Cloud Run.

No terminal, execute o seguinte comando gcloud:

$ gcloud run deploy --source .

Isso fará várias perguntas, e alguns dos pontos são mencionados abaixo:

  1. Nome do serviço (python-flask-api): use esse padrão ou escolha algo como my-inventory-api
  2. API [run.googleapis.com] não ativada no projeto [613162942481]. Deseja ativar e tentar novamente (isso levará alguns minutos)? (y/N)? S
  3. Especifique uma região: escolha 31 (us-west-1)
  4. A API [artifactregistry.googleapis.com] não foi ativada no projeto [613162942481]. Deseja ativar e tentar novamente (isso levará alguns minutos)? (y/N)? S
  5. A implantação da origem requer um repositório Docker do Artifact Registry para armazenar contêineres criados. Um repositório chamado [cloud-run-source-deploy] na região [us-west1] será criado.
  6. Do you want to continue (Y/n)? S
  7. Permitir invocações não autenticadas para [my-inventory-api] (y/N)? S

Isso vai iniciar o processo de conteinerização, envio do código-fonte para o Artifact Registry e implantação do serviço + revisão do Cloud Run. Você deve ser paciente durante esse processo (pode levar de 3 a 4 minutos) e o URL do serviço será mostrado a você para ver o processo sendo concluído.

Veja abaixo um exemplo de execução:

87ba8dbf88e8cfa4.png

Testar o aplicativo

Agora que implantamos o aplicativo no Cloud Run, você pode acessar o aplicativo da API da seguinte maneira:

  1. Anote o URL do serviço da etapa anterior. Por exemplo, na minha configuração, ele aparece como https://my-inventory-api-bt2r5243dq-uw.a.run.app. Vamos chamá-lo de <SERVICE_URL>.
  2. Abra um navegador e acesse estes três URLs dos endpoints da API:
  3. <SERVICE_URL>/inventory
  4. <SERVICE_URL>/inventory/I-1
  5. <SERVICE_URL>/inventory/I-100

Ela deve estar de acordo com as especificações que fornecemos em uma seção anterior com um exemplo de solicitação e resposta de API.

Receber detalhes do serviço do Cloud Run

Implantamos nosso serviço de API no Cloud Run, um ambiente de computação sem servidor. É possível acessar o serviço do Cloud Run pelo console do Google Cloud a qualquer momento.

No menu principal, navegue até Cloud Run. Isso vai mostrar a lista de serviços em execução no Cloud Run. O serviço que você acabou de implantar será exibido. Dependendo do nome selecionado, você verá algo parecido com isto:

2633965c4bc957cc.png

Clique no nome do serviço para exibir os detalhes. Os detalhes do exemplo são mostrados abaixo:

33042ae64322ce07.png

Observe o URL, que nada mais é do que o URL de serviço que você pode inserir no navegador e acessar a API Inventory que acabamos de implantar. Confira "Métricas" e outros detalhes.

Vamos começar com o pacote de operações do Google Cloud.

4. Crie um tópico do Pub/Sub para receber a notificação de alerta

Para criar um tópico do Pub/Sub, siga estas etapas no Console do Google Cloud:

  1. Pesquise Pub/Sub na caixa de pesquisa e acesse o Pub/Sub. 935028bd8f6328ef.png
  2. Clique na guia Tópicos se ainda não estiver nela. 7fd8bf91386a88fd.png
  3. Clique no botão Criar tópico. cd9d197f9023c41b.png
  4. Digite um nome para o tópico.

173f313b4a3c4934.png

  1. Clique no botão Criar. ca9a02477da21a44.png
  2. Copie o Nome do tópico usando o botão de ícone de cópia. Você vai precisar dele na próxima seção.

20848252ee83df93.png

5. Criar uma verificação de tempo de atividade

Para criar uma verificação de tempo de atividade para um aplicativo do Google Cloud Run:

  1. Acesse o Console do Google Cloud Platform.
  2. Clique na guia Monitoramento.
  3. Clique na guia Verificações de tempo de atividade.
  4. Próximo ao topo da página, clique no botão Criar verificação de tempo de atividade.

96561799ca500777.png

  1. Use os valores a seguir:
  2. Protocolo : HTTPS
  3. Tipo de recurso : URL
  4. Nome do host : insira a parte do URL do serviço do Cloud Run sem o https. Confira um exemplo na tela abaixo. Se você não souber qual é o URL do serviço, acesse o Cloud Run no console principal do Google Cloud e navegue até os detalhes do serviço do Cloud Run, conforme explicado anteriormente.
  5. Caminho : healthy
  6. Frequência de verificação: 1 minuto

342865c6d921ff41.png

  1. Clique em Continuar.
  2. Ative a opção A correspondência de conteúdo está ativada.
  3. Digite "All Izz Well" em Conteúdo da resposta; essa string já está no aplicativo quando ele envia respostas completas.
  4. Keep

6c9ad336b5479478.png

  1. Mantenha o Código de resposta HTTP aceitável definido como Classes de código de resposta e 2xx como a única classe de código de resposta. Dessa forma, somente os códigos de resposta com 2xx serão avaliados para a string, e qualquer outra coisa será considerada automaticamente como uma verificação com falha. 5a75d8a9e8a11dd4.png
  2. Clique em Continuar.
  3. Selecione o tópico do Cloud Pub/Sub como o canal de notificação e clique em OK

d00db9f6ac56d07c.png

  1. Clique em Continuar.
  2. Adicione um título reconhecível d639135da780cce3.png
  3. Clique no botão Testar.

968753a66ed43a75.png

  1. Revise e clique no botão Criar quando estiver tudo pronto 72e5e2081a36d902.png

Sua verificação de tempo de atividade será criada e começará a monitorar o aplicativo do Cloud Run. É possível visualizar o status da verificação na guia Verificações de tempo de atividade.

3fd026b0c07ef4ec.png

6. Parabéns

Parabéns! Você configurou a verificação de tempo de atividade para enviar alertas ao Pub/Sub.