このページでは、Cloud Run エラーの一般的なトラブルシューティング方法について説明します。Personalized Service Health は、基盤となる Google Cloud インフラストラクチャに起因するすべての Cloud Run インシデントを公開し、プロジェクトに影響する Google Cloud サービスの中断を特定します。また、Personalized Service Health イベントにアラートを設定することも検討してください。すべてのサービスに影響するインシデントについては、Google Cloud Service Health ダッシュボードをご覧ください。 Google Cloud
Cloud Run リソースに関連する問題を解決するには、Cloud Run トラブルシューティング ガイドの次のセクションをご覧ください。
Cloud Run のトラブルシューティング戦略
以降のセクションでは、一般的なトラブルシューティング方法を適用してエラーを解決する方法について説明します。トラブルシューティング ガイドの手順を行ってもエラーが解決しない場合は、サポートにお問い合わせください。
Cloud Logging を使用して正常なログを出力する
デバッグに適したログがある場合、Cloud Run リソースのトラブルシューティングが容易になります。ログは、コンテナログとリクエストログを関連付けるように書き込む必要があります。
関連付けられたログを使用すると、詳細な分析が必要なリクエストを特定し、リクエスト トレースを検出して、問題の根本原因を分析できます。ログの書き込みの詳細については、コンテナログを書き込むをご覧ください。
ログ エクスプローラを使用してインスタンスを調査する
Cloud Run の各リクエストログには、リクエストを処理するインスタンスを識別する instanceId
フィールドが含まれています。指定した同時実行値によっては、1 つのインスタンスで複数のリクエストを同時に処理できます。
複数のインスタンスが同時にログを出力している場合は、インスタンスをフィルタして、インスタンスのクラッシュにつながる連続したリクエストを特定する必要があります。
インスタンスをフィルタリングすると、コールド スタートやレイテンシの増加に関連する特定のパフォーマンスの問題をデバッグできます。これらの問題は、後続の同時リクエストで値が再利用される場合、グローバル スコープで宣言された変数にバインドされることもあります。たとえば、インスタンスに単一の接続プール グローバル オブジェクトを作成し、複数のリクエスト内で使用する場合があります。
ログエクスプローラで特定のインスタンスのみを表示する手順は次のとおりです。
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
ページの上部で既存の Google Cloud プロジェクトを選択するか、新しいプロジェクトを作成します。
サービスの場合はリソースの Cloud Run リビジョン、ジョブの場合は Cloud Run ジョブを選択します。
ログエントリを展開して、特定のインスタンスでフィルタします。
インスタンス ID の値をクリックし、[一致エントリを表示] を選択します。
予期しないリクエスト レイテンシを解決する
レイテンシに関する問題が発生した場合は、次の手順を行います。
レイテンシが Cloud Run リソースに対するすべてのリクエストに影響しているのか、ごく一部のリクエストにのみ影響しているのかを確認します。Cloud Run は Cloud Monitoring と自動的に統合され、設定や構成の必要はありません。
個々のリクエスト レイテンシの指標を表示する手順は次のとおりです。
Google Cloud コンソールで [Cloud Run] ページに移動します。
リストからサービスまたはジョブを選択します。
[指標] タブをクリックして、[リクエスト レイテンシ] ダッシュボードを表示します。
Cloud Monitoring でレイテンシ指標を表示するには、[指標] リストから、[Cloud Run のリビジョン] > [Request_latencies] > [Request latency] を選択します。
使用可能なすべての Cloud Run 指標のリストと詳細については、Cloud Monitoring の Google Cloud 指標をご覧ください。
レイテンシが高いリクエストを特定して、レイテンシの原因を把握します。Cloud Trace または Cloud Logging を使用して、特定のリクエストに要した時間を把握できます。
Cloud Logging を使用してレイテンシの高いリクエストを特定するには、
traceSampled=true
フィルタを適用して、Cloud Logging のログを Cloud Trace のトレースと関連付けます。詳細については、Cloud Logging と統合するをご覧ください。他のサービスへのリクエストなどの依存関係が原因でレイテンシの問題が発生することがあります。このようなリクエストを特定するには、リクエストをターゲットとする明示的なロギングが必要です。このようなログを出力しないと、Cloud Run サービスに起因するレイテンシの問題として表示される可能性があります。
また、選択した期間のコンテキストでレイテンシの急増を評価することも検討してください。急増の重要性は相対的です。小さな期間の急増は、大きな期間では無視できる場合があり、その逆も同様です。したがって、時間枠はレイテンシ データの解釈に大きな影響を与えます。
受信リクエストのレイテンシを短縮し、コールド スタートを回避するには、最小インスタンス数を増やしてみてください。また、ソースコードの変更も検討し、バックエンド サービスへの接続数を制限するようにスケーリング設定を調整する必要があります。
詳細については、パフォーマンスの最適化をご覧ください。