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:

  1. Simule um erro de um serviço num projeto do Google Cloud .

  2. 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.

  3. 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:

Visita guiada


Antes de começar

  1. 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.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Abra um Cloud Shell para o seu Google Cloud projeto. Enquanto é iniciada, é apresentada a mensagem A estabelecer ligação.

    Abra o Cloud Shell.

  7. Simule um erro

    1. 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.

    Veja os erros no relatório de erros

    1. Na Google Cloud consola, aceda à página Error Reporting:

      Aceda a 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:

      A interface do utilizador que mostra a lista de erros.

    2. 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.

    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:

    1. Na Google Cloud consola, aceda à página Error Reporting:

      Aceda a Error Reporting

      Também pode encontrar esta página através da barra de pesquisa.

    2. Para ativar as notificações por email, clique em Mais e selecione Ativar notificações de novos erros para o projeto na lista pendente.

    3. Para gerar novos tipos de erros, clique em Ativar Cloud ShellAtivar botão 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.

    4. Verifique se recebeu um email de "Notificações do Stackdriver".

    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:

    1. Transfira e configure a aplicação a partir do projeto do GitHub python-docs-samples:

      1. 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'...
        
      2. 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
        
      3. Instalar dependências:

        pip install -r requirements.txt
        
    2. Verifique se a instalação e a configuração da aplicação foram bem-sucedidas:

      1. Execute a aplicação:

        python main.py
        
      2. Para ver a aplicação numa página Web local, clique no link apresentado no Cloud Shell. A página Web apresenta Hello World!.

      3. Para parar a aplicação em execução, introduza Ctrl-C no Cloud Shell.

    3. 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.

    4. 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.

    Gere um erro

    Para criar um erro que os Relatórios de erros detetam e apresentam, faça o seguinte:

    1. Edite main.py e altere

      return '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.

    2. Carregue a aplicação modificada para o App Engine:

      gcloud app deploy
      
    3. 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.

    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.

    1. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. In the dialog, type the project ID, and then click Shut down to delete the project.

    O que se segue?