Error Reporting にご使用のアプリケーションのエラーが表示されない場合は、次の手順でトラブルシューティングを行います。
始める前に
- Error Reporting がログエントリを分析できることを確認します。 - Error Reporting は Cloud Logging 上に構築されたグローバル サービスであり、次のすべての条件が満たされる場合にログエントリを分析できます。 - Assured Workloads が無効になっている。詳細については、Assured Workloads の概要をご覧ください。
- ログエントリを保存するすべてのログバケットで、顧客管理の暗号鍵(CMEK)が無効になっている。Error Reporting は、CMEK が有効になっているログバケットにログエントリを保存できません。ログバケットの CMEK 構成を確認する方法については、鍵の有効化を確認するをご覧ください。
- ログバケットが次のいずれかの条件を満たしている。
    - ログバケットがログエントリの元のプロジェクトに保存されている。
- ログエントリがプロジェクトに転送され、そのプロジェクトがそれらのログエントリを、所有するログバケットに保存した。
 
 - 構成したシンクのリストを表示するには、次のコマンドを実行します。 - gcloud logging sinks list- このコマンドでは、次のような出力が返されます。 - NAME DESTINATION FILTER _Default logging.googleapis.com/projects/my-team-project/locations/global/buckets/_Default NOT LOG_ID("cloudaudit.googleapis.com/activity") AND NOT LOG_ID("externalaudit.googleapis.com/activity") AND NOT LOG_ID("cloudaudit.googleapis.com/system_event") AND NOT LOG_ID("externalaudit.googleapis.com/system_event") AND NOT LOG_ID("cloudaudit.googleapis.com/access_transparency") AND NOT LOG_ID("externalaudit.googleapis.com/access_transparency") _Required logging.googleapis.com/projects/my-team-project/locations/global/buckets/_Required LOG_ID("cloudaudit.googleapis.com/activity") OR LOG_ID("externalaudit.googleapis.com/activity") OR LOG_ID("cloudaudit.googleapis.com/system_event") OR LOG_ID("externalaudit.googleapis.com/system_event") OR LOG_ID("cloudaudit.googleapis.com/access_transparency") OR LOG_ID("externalaudit.googleapis.com/access_transparency") logs-from-samples logging.googleapis.com/projects/my-team-project/locations/global/buckets/sample-bucket (empty filter) regional_logs logging.googleapis.com/projects/my-team-project/locations/europe-west1/buckets/bucket_for_regional_logs (empty filter) test-logs logging.googleapis.com/projects/team-b-project/locations/global/buckets/test-bucket (empty filter)- この例では、ログエントリのソース Google Cloud プロジェクトは - my-team-projectです。結果として次のようになります。- ログバケットはログエントリをルーティングする同じプロジェクトによって保存されるため、Error Reporting は _Default、_Required、logs-from-samplesの各シンクによってルーティングされるログエントリを分析できます。
- my-team-projectのシンクはログエントリを別のプロジェクトのログバケットに転送するため、Error Reporting は- test-logsという名前のログバケットに保存されているログエントリを分析できません。
 
- Google Cloud CLI がインストールされていることを確認します。 
ログの使用時
このセクションでは、エラーデータが Cloud Logging バケットに書き込まれ、Error Reporting を使用してこれらのログバケットを自動的に分析する場合のトラブルシューティング サポートについて説明します。
サンプル ログエントリを生成する
プロジェクト設定を確認するには、次の gcloud コマンドを使用して、Error Reporting によって取得されるログエントリをプログラムで生成します。
gcloud logging write --payload-type=json test-errors-log \
  '{"serviceContext":
    {"service": "manual-testing"},
    "message": "Test Error\n at /test.js:42:42",
    "context": {"httpRequest":
      {"url": "/test","method": "GET","responseStatusCode": 500}}}'
次に Error Reporting を開き、新しく作成されたエラーが表示されていることを確認します。
ログエントリのフォーマットを確認する
[Cloud Logging] ページを開き、ご使用のアプリケーションから送信された例外データを含むログエントリを見付けます。
ログエントリで正しいフォーマットが使用されていることを確認します。
Error Reporting API の使用時
- 
  
   
   
     
   
  
 
  
  
    
      Enable the required API. Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
- テストエラーを送信する - 手動でエラーをサービスに送信してみます。 - 次の - gcloudコマンドを使用して、Error Reporting にテストエラーを報告できます。- gcloud beta error-reporting events report --service Manual --service-version test1 \ --message "java.lang.TestError: msg at com.example.TestClass.test(TestClass.java:51) at com.example.AnotherClass(AnotherClass.java:25)"- cURL コマンドを使用して REST API 呼び出しをテストできます。次のコマンドを送信する前に、 - PROJECT_IDと- API_KEYを有効な値に置き換えます。- curl -X POST -H "Content-Type: application/json" \ -d '{"message":"java.lang.TestError: msg\n\tat com.example.TestClass.test(TestClass.java:51)\n\tat com.example.AnotherClass(AnotherClass.java:25)","serviceContext":{"service":"manual-testing"}}' \ https://clouderrorreporting.googleapis.com/v1beta1/projects/PROJECT_ID/events:report?key=API_KEY
- 送信されたペイロードを確認する - 使用するアプリケーションから例外データが正しいフォーマットで API に送信され、そのデータに必要な属性が含まれていることを確認します。 
スタック トレースがログに記録されるが、Error Reporting で認識されない
jsonPayload の message フィールドを使用してエラーをロギングし、Error Reporting がエラーをキャプチャすることを想定しています。ただし、エラーデータはキャプチャされません。
この問題を解決するには、次のことを試してください。
- jsonPayloadに- stack_traceフィールドまたは- exceptionフィールドが含まれていないことを確認します。これらのフィールドが存在する場合、- messageフィールドは評価されません。
- スタック トレースの構造がサポートされているプログラミング言語形式のいずれかであることを確認します。サポートされていない形式が使用されている場合、スタック トレースは Error Reporting によってキャプチャされません。 
詳細については、ログの形式設定エラーをご覧ください。