Verificar erros em um app com falha usando o Error Reporting
O Error Reporting oferece um local único para monitorar as condições de erro de todos os apps e serviços em um Google Cloud projeto e de aplicativos da Amazon Elastic Compute Cloud (EC2).
Neste guia, você aprenderá o seguinte:
Simular um erro de um serviço em um Google Cloud projeto.
Usar o Error Reporting para visualizar o erro e alterar o status dele para que outras pessoas da sua equipe saibam que o problema está sendo resolvido.
Configurar as notificações para saber quando novos tipos de erro forem encontrados.
Para seguir as instruções detalhadas desta tarefa diretamente no Google Cloud console, clique em Orientação:
Antes de começar
- Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Abra um Cloud Shell para o seu Google Cloud projeto. Enquanto ele inicializa, a mensagem Conectando é exibida.
- Configure seu endereço de e-mail como um canal de notificação compatível.
Simular um erro
Para gerar 11 erros de amostra, execute o seguinte script no Cloud Shell:
COUNTER=0 while [ $COUNTER -lt 11 ]; do gcloud beta error-reporting events report --service tutorial --service-version v$((COUNTER/10+1)) \ --message "java.lang.RuntimeException: Error rendering template $COUNTER at com.example.TestClass.test(TestClass.java:51) at com.example.AnotherClass(AnotherClass.java:25) at javax.servlet.http.HttpServlet.service (HttpServlet.java:617) at javax.servlet.http.HttpServlet.service (HttpServlet.java:717)" if [ $COUNTER -eq 10 ]; then echo "All sample errors reported." fi let COUNTER=COUNTER+1 doneQuando o script terminar de gerar todos os erros, ele mostrará a seguinte mensagem:
All sample errors reported.
Veja os erros no Error Reporting
-
No Google Cloud console, acesse a página Error Reporting:
Também é possível encontrar essa página usando a barra de pesquisa.
O painel do Error Reporting exibe um resumo em lista de cada erro encontrado e o número de ocorrências de cada erro. Quando a opção Atualizar automaticamente está ativada, o Error Reporting atualiza automaticamente a lista de erros a cada 10 segundos.
A captura de tela a seguir mostra um exemplo de página de relatório de erros:
Clique no nome do erro para visualizar a página de detalhes dele, que contém todas as informações disponíveis sobre um erro. Se o Gemini estiver ativado no projeto, você poderá usá-lo para receber sugestões de solução de problemas.
Configurar notificações
É possível configurar o Error Reporting para notificá-lo quando um novo tipo de erro chegar. As notificações não são enviadas quando há novas ocorrências de erros atuais:
-
No Google Cloud console, acesse a página Error Reporting:
Também é possível encontrar essa página usando a barra de pesquisa.
Para ativar as notificações por e-mail, clique em Configurar notificações.
No menu Canais de notificação , selecione seu endereço de e-mail e clique em Salvar.
Para gerar novos tipos de erros, clique em terminal Ativar o Cloud Shell e execute o seguinte script:
COUNTER=0 while [ $COUNTER -lt 3 ]; do gcloud beta error-reporting events report --service tutorial --service-version v1 \ --message "java.lang.ArrayIndexOutOfBoundsException: $COUNTER at com.example.AppController.createUser(AppController.java:42) at com.example.User(User.java:31) at javax.servlet.http.HttpServlet.service (HttpServlet.java:617) at javax.servlet.http.HttpServlet.service (HttpServlet.java:717)" if [ $COUNTER -eq 10 ]; then echo "All sample errors reported." fi let COUNTER=COUNTER+1 doneQuando o script terminar de gerar todos os erros, ele mostrará a seguinte mensagem:
All sample errors reported.Verifique se há uma mensagem do "Notificações do Stackdriver" no seu e-mail.
Gere mensagens de erro de um aplicativo do App Engine
Embora as mensagens de amostra geradas pelos scripts simulem completamente as condições de erro no Error Reporting, se você quiser gerar erros de um serviço real em execução no seu Google Cloud projeto, siga as etapas nesta seção.
Implantar um app
Para fazer o download e implantar um aplicativo no App Engine, faça o seguinte:
Faça o download e configure o aplicativo do projeto python-docs-samples do GitHub:
Clone o projeto no Cloud Shell:
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
O Git retorna uma mensagem semelhante a esta:
git clone https://github.com/GoogleCloudPlatform/python-docs-samples Cloning into 'python-docs-samples'...
Crie um ambiente Python isolado e ative-o:
cd python-docs-samples/appengine/standard_python3/hello_world virtualenv env -p python3 source env/bin/activate
Instale as dependências:
pip install -r requirements.txt
Verifique se a instalação e a configuração do aplicativo foram bem-sucedidas:
Execute o aplicativo:
python main.py
Para visualizar o aplicativo em uma página da Web local, clique no link exibido no Cloud Shell. A página da Web exibe
Hello World!.Para interromper o aplicativo em execução, digite
Ctrl-Cno Cloud Shell.
Faça upload do aplicativo no App Engine.
gcloud app deploy
Se for solicitada uma região de implantação, selecione uma perto de você. Digite
Yquando perguntado se você quer continuar. Depois de alguns momentos, o upload estará concluído.Visualize o aplicativo em um navegador executando o seguinte comando no Cloud Shell:
gcloud app browse
Se a Google Cloud CLI não encontrar o navegador, o comando anterior exibirá uma mensagem de erro e um link. Clique no link exibido. A mensagem
Hello, World!é exibida no navegador.
Criar um erro
Para criar um erro que o Error Reporting detecta e exibe, faça o seguinte:
Edite
main.pye alterereturn 'Hello World!
a
return 'Hello World!' + 1000
Quando executada, essa alteração causa uma exceção
TypeErrordo Python porque é ilegal concatenar uma string e um número inteiro.Faça upload do aplicativo modificado no App Engine:
gcloud app deploy
Volte para a guia do navegador que contém o aplicativo em execução e atualize a página. Devido à alteração, em vez da página exibir
Hello, World!, ela exibe uma mensagem de erro:Internal Server Error The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
Se você não vir essa mensagem, espere um minuto e recarregue-a. Pode levar alguns instantes para a nova versão ser ativada.
Visualizar o erro no Error Reporting
Para ver o erro, siga as instruções da seção anterior Visualize os erros no Error Reporting.
Limpar
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga as etapas abaixo.
- No Google Cloud console, acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
- Na caixa de diálogo, digite o ID do projeto e clique em Desligar para excluir o projeto.