Error Reporting にご使用のアプリケーションのエラーが表示されない場合は、次の手順でトラブルシューティングを行います。
始める前に
ログバケットで顧客管理の暗号鍵(CMEK)が無効になっていることを確認します。
CMEK で保護されているログは Error Reporting で使用できず、エラーグループも特定できません。次のログに Error Reporting は使用できません。
- CMEK 対応のログバケットに保存されたログ。
- 少なくとも 1 つのログバケットが CMEK 対応である、複数のログバケットに保存されているログ。
- 組織レベルのポリシーで CMEK を有効にする必要があるときに、組織内のログバケットに保存されるログ。
ログバケットの CMEK 構成を確認する方法については、鍵の有効化を確認するをご覧ください。
Error Reporting がログを分析できることを確認します。
Error Reporting は、送信元と宛先の Google Cloud プロジェクトが同じである
global
リージョンで Cloud Logging バケットに保存されているログエントリのみ分析できます。Error Reporting でログを分析できるかどうかを確認するには、ソースとデスティネーションの Google Cloud プロジェクトが同じである
global
リージョンのバケットにログを保存していることを確認してください。構成したシンクのリストを表示するには、次のコマンドを実行します。
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 は、同じプロジェクト内の
global
リージョン内のバケットにログをルーティングするため、_Default
、_Required
、logs-from-samples
の各シンクによってルーティングされるログを分析できます。 - Error Reporting は、
europe-west1
リージョン内のリージョン バケットにログをルーティングするため、regional_logs
シンクによってルーティングされるログを分析できません。 - Error Reporting は、ソース プロジェクトとは異なるプロジェクト(
team-b-project
)にログをルーティングするため、test-logs
シンクによってルーティングされるログを分析できません。
- Error Reporting は、同じプロジェクト内の
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 の使用時
API を有効にする
Google Cloud コンソールで [ API とサービス] を選択し、[API とサービスの有効化] をクリックし、Error Reporting APIを有効にするか、次のボタンをクリックします。
テストエラーを送信する
手動でエラーをサービスに送信してみます。
次の 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 に送信され、そのデータに必要な属性が含まれていることを確認します。