1. Introdução
Última atualização:21 de junho de 2023
Como programar alertas para verificações de tempo de atividade de disponibilidade
Com os alertas sobre verificações de tempo de atividade, é possível identificar e resolver rapidamente problemas que podem afetar seus serviços. Ao receber alertas sobre interrupções, você pode tomar medidas para minimizar o impacto nos usuários e clientes.
As verificações de tempo de atividade ocorrem em intervalos, sendo o menor deles de 60 segundos. Também pode ser útil monitorar códigos de erro como eventos dinâmicos usando 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 medir seu serviço com pouca configuração adicional.
Se um serviço não estiver disponível, uma verificação de tempo de atividade vai detectar o problema mesmo que não haja tráfego. Já o tráfego 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 verificações de tempo de atividade, consulte Garantir o tempo de atividade dos 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. Isso permite integrar seus 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 crie um tópico e uma assinatura do Pub/Sub. Em seguida, crie 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, 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 de tempo de atividade e um alerta
Este codelab se concentra na criação de um alerta para uma verificação de tempo de atividade. Conceitos não relevantes e código 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 atual, use o menu suspenso:

Para criar um projeto no Google Cloud, siga estas etapas:
- Acesse o Console do Google Cloud Platform.
- Clique no botão Criar projeto.
- Insira um nome para seu projeto.
- Selecione uma conta de faturamento para o projeto.
- Clique no botão Criar.
Seu projeto será criado, e você vai acessar o painel dele. A partir daí, você pode começar a usar os serviços do Google Cloud.
Confira mais detalhes sobre cada etapa:
- Nome:o nome do projeto precisa ser exclusivo na sua 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 seu projeto.
Para mais informações, consulte a documentação do Google Cloud sobre como criar projetos.
3. Implantar o aplicativo de API
Qual é o assunto do aplicativo ou da API de exemplo?
Nosso aplicativo é um aplicativo simples da API Inventory que expõe um endpoint de API REST com algumas operações para listar os itens do inventário e receber a contagem de inventário de um item específico.
Depois de implantar a API e supondo que ela esteja hospedada em https://<somehost>, podemos acessar os endpoints da API da seguinte maneira:
https://<somehost>/inventory
Isso vai listar todos os itens de produto com os níveis de inventário disponíveis.
https://<somehost>/inventory/{productid}
Isso vai fornecer um único registro com o productid e o nível de inventário disponível para esse produto.
Os dados de resposta retornados estão no formato JSON.
Observação: este aplicativo de API é apenas para fins de demonstração e não representa uma implementação de API segura e robusta. O objetivo é ter um aplicativo rápido disponível para explorar o propósito principal do laboratório, ou seja, as operações do Google Cloud.
Dados de amostra e solicitação/resposta da API
O aplicativo não é alimentado por um banco de dados no back-end para simplificar. Ele contém três exemplos de IDs de produtos e os níveis de estoque disponíveis.
ID do produto | Nível de inventário disponível |
I-1 | 10 |
I-2 | 20 |
I-3 | 30 |
Confira abaixo um exemplo de solicitação e resposta da API:
Solicitação de API | Resposta da API |
https://<somehost>/inventory | [ { "I-1": 10, "I-2": 20, "I-3": 30 }] |
https://<somehost>/inventory/I-1 | { "productid": "I-1", "qty": 10} |
https://<somehost>/inventory/I-2 | { "productid": "I-2", "qty": 20} |
https://<somehost>/inventory/I-200 | { "productid": I-200, "qty": -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:

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. Todo o trabalho neste laboratório pode ser feito apenas com 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 o seguinte comando:
$ git clone https://github.com/rominirani/cloud-code-sample-repository.git
Isso vai criar uma pasta chamada "cloud-code-sample-repository" nessa pasta.
(Opcional) Executar o aplicativo no Cloud Shell
Para executar o aplicativo localmente, siga estas etapas:
- No terminal, navegue até a versão em Python da API com o seguinte comando:
$ cd cloud-code-sample-repository
$ cd python-flask-api
- No terminal, forneça o seguinte comando (no momento da redação, o Cloud Shell vem com o Python 3.9.x instalado e vamos usar a versão padrão. Se você planeja executar o código localmente no seu notebook, use o Python 3.8 ou mais recente:
$ python app.py
- É possível executar o comando a seguir para iniciar o servidor Python localmente.

Clique em "Visualizar na porta 8080". 5. Uma janela do navegador será aberta. Você vai receber um erro 404, mas não tem problema. Modifique o URL para que ele tenha apenas /inventory após o nome do host.
Por exemplo, na minha máquina, ele aparece assim:
https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory
Isso vai mostrar a lista de itens de inventário, conforme explicado anteriormente:

- Para interromper o servidor, acesse o terminal e pressione Ctrl-C.
Implantar o aplicativo
Agora vamos implantar esse aplicativo de API no Cloud Run. O processo envolveu o uso do cliente de linha de comando gcloud para executar o comando de implantação do código no Cloud Run.
No terminal, execute o seguinte comando gcloud:
$ gcloud run deploy --source .
Isso vai fazer várias perguntas, e alguns dos pontos estão mencionados abaixo:
- Nome do serviço (python-flask-api): use o padrão ou escolha algo como my-inventory-api
- API [run.googleapis.com] not enabled on project [613162942481]. Would you like to enable and retry (this will take a few minutes)? (y/N)? S
- Especifique uma região: escolha 31 (us-west-1)
- API [artifactregistry.googleapis.com] not enabled on project [613162942481]. Would you like to enable and retry (this will take a few minutes)? (y/N)? S
- A implantação da origem exige um repositório do Docker do Artifact Registry para armazenar contêineres criados. Um repositório chamado [cloud-run-source-deploy] na região [us-west1] será criado.
- Do you want to continue (Y/n)? S
- Allow unauthenticated invocations to [my-inventory-api] (y/N)? S
Eventualmente, isso vai iniciar o processo para pegar seu código-fonte, colocar em contêineres, enviar para o Artifact Registry e implantar o serviço e a revisão do Cloud Run. Tenha paciência durante esse processo, que pode levar de 3 a 4 minutos. Ele será concluído com o URL do serviço mostrado.
Confira um exemplo de execução abaixo:

Testar o aplicativo
Agora que implantamos o aplicativo no Cloud Run, é possível acessar o aplicativo de API da seguinte maneira:
- 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 chamar isso de<SERVICE_URL>. - Abra um navegador e acesse os três URLs a seguir para os endpoints da API:
<SERVICE_URL>/inventory<SERVICE_URL>/inventory/I-1<SERVICE_URL>/inventory/I-100
Ela precisa estar de acordo com as especificações que fornecemos em uma seção anterior com exemplos de solicitação e resposta da 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é o Cloud Run. Isso vai mostrar a lista de serviços em execução no Cloud Run. O serviço que você acabou de implantar vai aparecer. Dependendo do nome selecionado, você vai ver algo assim:

Clique no nome do serviço para ver os detalhes. Confira abaixo os detalhes da amostra:

Observe o URL, que é apenas o URL do serviço que você pode inserir no navegador e acessar a API Inventory que acabamos de implantar. Confira as métricas e outros detalhes.
Vamos começar com o pacote de operações do Google Cloud.
4. Criar 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:
- Pesquise Pub/Sub na caixa de pesquisa e acesse o serviço.

- Clique na guia Tópicos se ela ainda não estiver aberta.

- Clique no botão Criar tópico.

- Insira um nome para o tema.

- Clique no botão Criar.

- Copie o Nome do tópico usando o botão do ícone de cópia. Você vai precisar dele na próxima seção.

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:
- Acesse o Console do Google Cloud Platform.
- Clique na guia Monitoramento.
- Clique na guia Uptime Checks.
- Perto da parte de cima da página, clique no botão Criar verificação de tempo de atividade.

- Use os valores a seguir:
- Protocolo : HTTPS
- Tipo de recurso : URL
- 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 do Google Cloud principal e navegue até os detalhes do serviço do Cloud Run, conforme explicado anteriormente, para acessar o URL do serviço.
- Caminho : healthy
- Frequência de verificação: 1 minuto

- Clique em Continuar.
- Ative a opção A correspondência de conteúdo está ativada.
- Insira "All Izz Well" em Conteúdo da resposta. Essa string já está no aplicativo quando ele envia respostas completas.
- Keep

- Mantenha 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, apenas os códigos de resposta com 2xx serão avaliados para a string, e qualquer outra coisa será automaticamente considerada uma verificação com falha.

- Clique em Continuar.
- Selecione o tópico do Cloud Pub/Sub como o canal de notificação e clique em OK.

- Clique em Continuar.
- Adicione um título reconhecível

- Clique no botão Testar.

- Revise e clique no botão Criar quando estiver tudo pronto

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

6. Parabéns
Parabéns, você configurou com sucesso sua verificação de tempo de atividade para enviar alertas ao Pub/Sub.