このチュートリアルのパート 1 では、さらに調査するためにエラー グループを選択しました。パート 2 では、エラーに関する属性、ログ、トレースを表示する新しいページを調査します。
チュートリアルのこの部分では、エラーを分析するための 2 つの推奨手段、ログとスタック トレースについて説明します。
目的
このドキュメントは、このチュートリアル シリーズの 「サービス停止への対応」 ドキュメントの範囲内の問題を基にして構築されています。このドキュメントでは、次のことを行います。
- ログを使用して、失敗した API に関連するエラー コードを特定します。
- スタック トレースを使用して、コード内のどこでエラーが発生しているかを見つけます。
ログとスタック トレースを使用してエラーの原因を特定する
エラーの概要は、エラー グループの背後にあるストーリーを示します。New Relic の構成方法に応じて、各サービスでエラーに関するさまざまな種類の情報が表示される場合があります。たとえば、分散トレースを無効にしている場合、トレースには外部サービスに関する詳細があまり表示されません。
システム内の障害点を見つける
ログの性質に応じて、分類する必要のあるログの詳細が多かれ少なかれ必要になる場合があります。事前に時間をかけて障害に最も近いサービスを絞り込み、可能性の高いエラー グループを選択したため、ログを読む時間があります。
ログによると、問題は次のとおりです。
タイムアウトエラー:
error.error.code: ETIMEDOUT
顧客 API に関連するもの:
error.endpoint: customers-api-internal
顧客 API に送信されるリクエストの種類に依存しません。
error.request: /api/customers/search/Kirlin/-/
それを結び付けるのに十分なコンテキストがあります。依存関係に障害があると結論付けます。顧客 API へのすべての呼び出しがタイムアウトになり、
api-gateway
からのアップストリーム リクエストが失敗します。
New Relic から IDE で開きます
New Relic からコードを開くには、 CodeStream をインストールする必要があります。これはオプションですが、スタック トレースから IDE を直接開くことができる強く推奨される機能です。
次は何ですか?
エラーに対応し、機能停止の直接の原因を特定することは、アプリのエラーへの対処の一部にすぎません。機能停止の原因を説明、診断、検索する方法を説明したので、エラーを関連チームに転送できます。