Verifique se existem erros numa app com falhas através do relatório de erros
Os relatórios de erros oferecem um único local para monitorizar as condições de erro de todas as apps e serviços num Google Cloud projeto e de aplicações do Amazon Elastic Compute Cloud (EC2).
Neste guia, vamos aprender a fazer o seguinte:
Simule um erro de um serviço num projeto do Google Cloud .
Use os relatórios de erros para ver o erro e alterar o estado do erro, para que outras pessoas na sua equipa saibam que o problema está a ser resolvido.
Configure notificações para saber quando ocorrem novos tipos de erros.
Para seguir orientações passo a passo para esta tarefa diretamente na Google Cloud consola, clique em Orientar-me:
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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 é iniciada, é apresentada a mensagem
A estabelecer ligação.
Para gerar 11 erros de exemplo, 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 done
Quando o script termina de gerar todos os erros, imprime a seguinte linha:
All sample errors reported.
-
Na Google Cloud consola, aceda à página Error Reporting:
Também pode encontrar esta página através da barra de pesquisa.
O painel de controlo de relatórios de erros apresenta uma lista de resumo de cada erro encontrado e o número de ocorrências de cada erro. Quando a opção Recarregar automaticamente está ativada, os relatórios de erros recarregam automaticamente a lista de erros a cada 10 segundos.
A captura de ecrã seguinte mostra um exemplo de uma página de relatórios de erros:
Clique no nome do erro para ver a página de detalhes do erro, que contém todas as informações disponíveis sobre um erro. Se o Gemini estiver ativado no projeto, pode usá-lo para receber sugestões de resolução de problemas.
-
Na Google Cloud consola, aceda à página Error Reporting:
Também pode encontrar esta página através da barra de pesquisa.
Para ativar as notificações por email, clique em Mais more_vert e selecione Ativar notificações de novos erros para o projeto na lista pendente.
Para gerar novos tipos de erros, clique em Ativar 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 done
Quando o script termina de gerar todos os erros, imprime a seguinte linha:
All sample errors reported.
Verifique se recebeu um email de "Notificações do Stackdriver".
Transfira e configure a aplicação a partir do projeto do GitHub python-docs-samples:
Clone o projeto para o Cloud Shell:
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
O Git devolve uma mensagem semelhante à seguinte:
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
Instalar dependências:
pip install -r requirements.txt
Verifique se a instalação e a configuração da aplicação foram bem-sucedidas:
Execute a aplicação:
python main.py
Para ver a aplicação numa página Web local, clique no link apresentado no Cloud Shell. A página Web apresenta
Hello World!
.Para parar a aplicação em execução, introduza
Ctrl-C
no Cloud Shell.
Carregue a sua aplicação para o App Engine:
gcloud app deploy
Se lhe for pedida uma região de implementação, selecione uma perto de si. Introduza
Y
quando lhe perguntarem se quer continuar. Após alguns momentos, o carregamento está concluído.Veja a sua aplicação num navegador executando o seguinte comando no Cloud Shell:
gcloud app browse
Se a CLI gcloud não conseguir encontrar o seu navegador, o comando anterior apresenta uma mensagem de erro e um link. Clique no link apresentado. A mensagem
Hello, World!
é apresentada no navegador.Edite
main.py
e alterereturn 'Hello World!
a
return 'Hello World!' + 1000
Quando executada, esta alteração provoca uma exceção
TypeError
do Python porque é ilegal concatenar uma string e um número inteiro.Carregue a aplicação modificada para o App Engine:
gcloud app deploy
Regresse ao separador do navegador que contém a aplicação em execução e atualize a página. Devido à sua alteração, em vez de apresentar a página
Hello, World!
, é apresentada 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 não vir esta mensagem, aguarde um minuto e atualize a página novamente. Pode demorar alguns momentos até que a nova versão seja ativada.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Simule um erro
Veja os erros no relatório de erros
Configure as notificações
Pode configurar os Relatórios de erros para receber uma notificação quando chegar um novo tipo de erro. Não são enviadas notificações quando existem novas ocorrências de erros existentes:
Gere mensagens de erro a partir de uma app do App Engine
Embora as mensagens de exemplo geradas a partir dos scripts simulem totalmente as condições de erro nos relatórios de erros, se quiser gerar erros a partir de um serviço real em execução no seu projeto Google Cloud , siga os passos nesta secção.
Implementar uma aplicação
Para transferir e implementar uma app no App Engine, faça o seguinte:
Gere um erro
Para criar um erro que os Relatórios de erros detetam e apresentam, faça o seguinte:
Veja o erro no Relatório de erros
Para ver o erro, siga as instruções na secção anterior Veja os erros nos Relatórios de erros.
Limpar
Para evitar incorrer em cobranças na sua Google Cloud conta pelos recursos usados nesta página, siga estes passos.