Error Reporting のクイックスタート

Error Reporting では、Google Cloud プロジェクト内のすべてのアプリとサービスおよび Amazon Elastic Compute Cloud(EC2)アプリケーションからのエラー条件を一元的にモニタリングできます。

手順は次のとおりです。

  1. Cloud プロジェクトのサービスからエラーをシミュレートします。

  2. Error Reporting を使用してエラーを表示し、エラーのステータスを変更して、その問題に対処していることをチームの他のメンバーが把握するようにします。

  3. 通知を設定することで、新しいタイプのエラーが発生するタイミングを把握するようにします。


このタスクを Cloud Console で直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。

ガイドを表示


以降のセクションでは、[ガイドを表示] をクリックした場合と同じ手順について説明します。

始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  4. プロジェクトの Cloud Shell を開きます。開始時に、[接続しています] というメッセージが表示されます。

    Cloud Shell を開きます

Cloud プロジェクトのエラーをシミュレートする

  1. 11 個のサンプルエラーを生成するには、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
    

    スクリプトによりすべてのエラーの生成が終了すると、次の行が出力されます。

    All sample errors reported.

Error Reporting でのエラー表示

  1. Error Reporting に移動します。

    Error Reporting に移動

    Error Reporting ダッシュボードには、検出された各エラーの概要と各エラーの発生数が表示されます。 Error Reporting のデフォルトでは、自動的に 5 秒ごとにエラーリストが再読み込みされます。すぐに再読み込みを適用するには、[自動再読み込み] をクリックします。

    [発生回数] 列に、エラータイプごとのメッセージ数と時間グラフが表示されます。

    まとめて処理されたテストエラーの発生回数が示されているユーザー インターフェース。

  2. エラー名をクリックするとエラーの詳細ページが表示されます。このページには、ソースコードへのリンクなど、エラーに関するすべての利用可能な情報が表示されます。

    エラーの詳細ページが表示されているユーザー インターフェース。

通知の構成

新しい種類のエラーが発生したときに通知を送信するように Error Reporting を構成できます。この場合、既存のエラーと同じエラーが新たに発生しても通知は送信されません。

  1. Error Reporting に移動します。

    Error Reporting に移動

  2. メール通知を有効にするには、その他 をクリックし、プルダウン リストから [プロジェクトで新しいエラーが検出されたときの通知をオンにする] を選択します。

  3. 新しい種類のエラーを生成するには、Cloud Shell をアクティブにする Shell をアクティブにするボタン をクリックして、次のスクリプトを実行します。

      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
    

    スクリプトによりすべてのエラーの生成が終了すると、次の行が出力されます。

    All sample errors reported.

  4. 「Stackdriver 通知」からのメール メッセージを確認します。

App Engine アプリからエラー メッセージを生成する

スクリプトから生成したサンプル メッセージは Error Reporting でエラー条件を完全にシミュレートしますが、Cloud プロジェクトで実行されている実際のサービスからエラーを生成する場合は、このセクションの手順を行います。

ご利用方法

アプリケーションをダウンロードして App Engine にデプロイする手順は次のとおりです。

  1. GitHub プロジェクト python-docs-samples からアプリケーションをダウンロードして構成します。

    1. Cloud Shell にプロジェクトのクローンを作成します。

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

      Git から次のようなメッセージが返されます。

      git clone https://github.com/GoogleCloudPlatform/python-docs-samples
      Cloning into 'python-docs-samples'...
      
    2. 隔離された Python 環境を作成して有効にします。

      cd python-docs-samples/appengine/standard_python3/hello_world
      virtualenv env -p python3
      source env/bin/activate
      
    3. 依存関係をインストールします。

      pip install -r requirements.txt
      
  2. アプリケーションのインストールと構成が成功したことを確認します。

    1. アプリケーションを実行します。

      python main.py
      
    2. ローカル ウェブページでアプリケーションを表示するには、Cloud Shell に表示されているリンクをクリックします。ウェブページに「Hello World!」と表示されます。

    3. 実行中のアプリケーションを停止するには、Cloud Shell で「Ctrl-C」と入力します。

  3. アプリケーションを App Engine にアップロードします。

    gcloud app deploy
    

    デプロイのリージョンを選択するよう求めるプロンプトが表示されたら、近くのリージョンを選択します。続行を確認するメッセージが表示されたら、「Y」と入力します。 しばらくすると、アップロードが完了します。

  4. Cloud Shell で次のコマンドを実行して、ブラウザでアプリケーションを表示します。

    gcloud app browse
    

    Cloud SDK でブラウザを検出できない場合は、上記のコマンドを実行すると、エラー メッセージとリンクが表示されます。表示されたリンクをクリックしてください。ブラウザに「Hello, World!」というメッセージが表示されます。

エラーを生成する

Error Reporting が取得して表示するエラーを作成する手順は次のとおりです。

  1. main.py を編集し、次のように変更します。

    return 'Hello World!
    

    次のように変更します。

    return 'Hello World!' + 1000
    

    このように変更して実行すると、文字列と整数を連結することは不正な処理であるため、Python TypeError 例外が発生します。

  2. 変更したアプリケーションを App Engine にアップロードします。

    gcloud app deploy
    
  3. 実行中のアプリケーションが含まれるブラウザタブに戻り、ページを再読み込みします。上記の変更により、ページには「Hello, World!」とは表示されず、エラー メッセージが表示されます。

    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.
    

    このメッセージが表示されない場合は、しばらく待ってからもう一度再読み込みしてください。新しいバージョンが有効になるまでに、しばらく時間がかかる場合があります。

Error Reporting でのエラー表示

Error Reporting でのエラー表示の説明に沿ってエラーを表示します。

クリーンアップ

このクイックスタートで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。

  1. Cloud Console で [リソースの管理] ページに移動します。

    [リソースの管理] に移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

次のステップ