Error Reporting quickstart

Error Reporting provides a single place to monitor error conditions from all apps and services in a Google Cloud project and from Amazon Elastic Compute Cloud (EC2) applications.

Learn how to do the following:

  1. Simulate an error from a service in a Cloud project.

  2. Use Error Reporting to view the error and change the error status so other people on your team know that the issue is being addressed.

  3. Set up notifications so you'll know when new types of errors occur.


For step-by-step guidance on this task directly in Cloud Console, click Guide me:

Guide me


The following sections take you through the same steps as clicking Guide me.

Before you begin

  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.

    Go to project selector

  3. Make sure that billing is enabled for your Cloud project. Learn how to confirm that billing is enabled for your project.

  4. In the Google Cloud Console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Cloud project. Learn how to confirm that billing is enabled for your project.

  6. Open a Cloud Shell for your project. While it starts, the message Connecting is displayed.

    Open Cloud Shell.

Simulate an error in a Cloud project

  1. To generate 11 sample errors, run the following script in 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
    

    When the script finishes generating all of the errors, it prints the following line:

    All sample errors reported.

View the errors in Error Reporting

  1. Go to Error Reporting:

    Go to Error Reporting

    The Error Reporting dashboard displays a summary of each error found and the number of occurrences of each error. By default, Error Reporting automatically reloads the error list every 5 seconds. To force an immediate reload, click Auto reload.

    The Occurrences column shows the number of messages for each error type along with a time graph:

    The user interface showing batched occurrences of
   the example errors.

  2. Click the error name to view the error details page, which contains all of the available information about an error, including links to the source code:

    The user interface showing the
     error details page.

Configure notifications

You can configure Error Reporting to notify you when a new type of error arrives. Notifications aren't sent when there are new occurrences of existing errors:

  1. Go to Error Reporting:

    Go to Error Reporting

  2. To enable email notifications, click More and select Turn on new error notifications for project from the drop-down list.

  3. To generate new types of errors, click Activate Cloud ShellActivate Shell Button and run the following 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
    

    When the script finishes generating all of the errors, it prints the following line:

    All sample errors reported.

  4. Check your email for a message from "Stackdriver Notifications".

Generate error messages from an App Engine app

While the sample messages you generated from the scripts fully simulate error conditions in Error Reporting, if you want to generate errors from a real service running in your Cloud project, follow the steps in this section.

Getting started

To download and deploy an application to App Engine, do the following:

  1. Download and configure the application from the GitHub project python-docs-samples:

    1. Clone the project to your Cloud Shell:

      git clone https://github.com/GoogleCloudPlatform/python-docs-samples
      

      Git returns a message similar to this:

      git clone https://github.com/GoogleCloudPlatform/python-docs-samples
      Cloning into 'python-docs-samples'...
      
    2. Create an isolated Python environment and activate it:

      cd python-docs-samples/appengine/standard_python3/hello_world
      virtualenv env -p python3
      source env/bin/activate
      
    3. Install dependencies:

      pip install -r requirements.txt
      
  2. Verify that the application installation and configuration are successful:

    1. Run the application:

      python main.py
      
    2. To view the application on a local web page, click the link displayed in Cloud Shell. The web page displays Hello World!.

    3. To stop your running application, in Cloud Shell enter Ctrl-C.

  3. Upload your application to App Engine:

    gcloud app deploy
    

    If prompted for a deployment region, select one near you. Enter Y when asked if you want to continue. After a few moments, the upload is complete.

  4. View your application in a browser by running the following command in Cloud Shell:

    gcloud app browse
    

    If the Cloud SDK can't find your browser, the previous command displays an error message and a link. Click the displayed link. The message Hello, World! is displayed in the browser.

Generate an error

To create an error that Error Reporting catches and displays, do the following:

  1. Edit main.py and change

    return 'Hello World!
    

    to

    return 'Hello World!' + 1000
    

    When executed, this change causes a Python TypeError exception because it is illegal to concatenate a string and an integer.

  2. Upload the modified application to App Engine:

    gcloud app deploy
    
  3. Return to the browser tab containing the running application, and reload the page. Because of your change, instead of the page displaying Hello, World!, it displays an error message:

    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.
    

    If you don't see this message, wait a minute and reload it again. It might take a few moments before the new version is activated.

View the error in Error Reporting

View the error as described in View the errors in Error Reporting.

Clean up

To avoid incurring charges to your Google Cloud account for the resources used in this page, follow these steps.

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

What's next