• English日本語한국어
  • ログイン今すぐ開始

この機械翻訳は参考用に提供されます。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、 を参照してください。

問題を作成する

エラー追跡による停止への対応

エラーは必ず発生します。可観測性ツールを使用したとしても、エラーの原因を見つけるのは思っているほど簡単ではありません。浸水した庭を考えてみましょう。ホースの近くで水が流れていることに気づきましたが、実際には浸水の原因は水道本管のどこかに亀裂が入っていることです。ホースの漏れが洪水の原因だと仮定した場合、ホースは固定されたものの、芝生は台無しになってしまうことになり、高くつく間違いです。

エラー分析により問題の原因が特定されるため、フラッドが発生する前に問題を解決できます。チームが新しいデプロイメントを行ったり、上流でサービスに障害が発生したりした場合は、ソリューションを実装する前にさらに深く掘り下げる必要があります。エラー分析には仮定が入る余地はありません。

目的

このチュートリアル シリーズでは、重大なエラーを解決する方法を示し、全体的なエラー数を減らす方法を説明します。このドキュメントでは以下について説明します。

  • エラー分析を開始するサービスの選択
  • 停止を示すエラー グループの選択

前提条件

アプリケーションのパフォーマンスを監視するには、アプリケーションの言語専用に作成されたエージェントを使用します。ロゴをクリックすると、New Relic UI のガイド付きインストーラーに移動し、ガイドに従ってエージェントのインストールと構成を行います。

Go agent
Java agent
.NET agent
Node.js agent
PHP agent
Python agent
Ruby agent

エージェントをインストールしたら、 one.newrelic.com にアクセスしてアプリを選択します。まだ多くのデータが表示されていない場合は、しばらく離れて、エージェントがアプリケーションの実行中にリアルタイム データを収集できるようにします。

アプリケーション内のエラーを検出して追跡する

アプリがインストルメント化されたので、New Relic はサービスに関するデータをキャプチャしています。これには、アプリで発生したエラーに関するデータが含まれます。

Step 1 of 4

エンドユーザーのことを考える

アラートは問題の存在を知らせます。それは芝生に水が溜まっていることです。ただし、アラートではすべてのコンテキストが提供されるわけではありません。そこでエラー受信箱が役に立ちます。

あなたが e コマース サイト上のいくつかのアプリを担当していると想像してください。2 つのコンポーネントに対して 2 つのアラートを受け取りました。1 つはチェックアウトに関するもの、もう 1 つは在庫の検索に関するものです。エンド ユーザーに対して検索機能が失敗しているというレポートしか受け取っていませんが、チェックアウト コンポーネントは正常に動作しています。チェックアウト機能の方が重要だと考えるかもしれませんが、その信念と可観測性の実践を区別することが重要です。

この慣行は、エンド ユーザーが何も報告していない場合でも適用されます。サービスが失敗していることに気づいたら、次の質問を自問してください。

  • エンドユーザーは問題を抱えていますか?
  • 彼らの経験はどのように見えるべきでしょうか?
  • 彼らは現在どのような行動を経験していますか?
Step 2 of 4

どのサービスがエラーを報告しているかを特定する

これが実際にどのようになるかを見てみましょう。All entities [すべてのエンティティ] ページを表示すると、4 つのサービスがアラートを発していることがわかります。

ステップ 1 からの質問を自問すると、次のことがわかります。

  • エンドユーザーは購入アクションに悩んでいます。

  • サイトでは在庫のある商品のみを表示する必要があります。

  • サイトにはすべての商品が表示されているため、顧客は在庫切れの商品を購入できます。

    api-gateway インベントリにとって重要な依存関係であることが特定されました。ここからエラー分析を開始します。

Step 3 of 4

何が変わったのかを特定する

システムへのエントリ ポイントができたので、アプリに影響を与えるエラーを調べることができます。api-gateway 概要ページで、 Triage [トリアージ]の下にある Errors [エラー]タブをクリックします。エラー ページでは、データがフィルターされてエラーのみが表示されます。

api-gatewayには少なくとも 6 つのエラー グループが報告されています。エラー グループは、アプリ内で数十から数千の範囲で発生します。

最初は粒度が足りないように見えますが、時系列は時間の経過とともに何が変化したかを示すのに十分な情報を提供します。これを詳しく説明します。

  • 出現数だけを考えると、出現数が 4,000 であるため、最初の本能は ActivemModel:::ValidationError から始める必要があるかもしれません。ただし、時系列で見ると、山と谷は比較的一貫しています。これは予期されたエラーである可能性がありますが、他の 5 つを見てみましょう。
  • Net::OpenTimeOut エラー グループにも同様のパターンがあり、実際には 6 つのレポート グループのうち 4 つを占めています。各エラー グループにわたって、インシデントの前から続く一貫した山と谷が見られます。同じ名前と同様のパターンがあることから、これも予期されたエラーであると推測できます。
  • 最後のオプションは JsonapiClient:::Notfoundです。ActivemModel:::ValidationErrorと同様に、これは独特の形状を持ち、一貫してレポートを行います。発生頻度はそれほど多くありませんが、時系列は十分に異常であるため、もう少し深く掘り下げる価値があるかもしれません。
Step 4 of 4

時系列を調整する

確実にするには、時間パラメーターを調整して、過去 12 時間のパターンを表示します。

調整により、 ActivemModel:::ValidationErrorは不変の山と谷のパターンがあることがわかりますが、 JsonapiClient:::Notfound は過去 1 時間で劇的に増加しました。これは良い出発点です。

何かがいつ起こったかを知ることは、原因に近づくための重要な部分です。問題空間を完全に理解したら、原因を掘り下げることができます。

次のステップ

エラー グループを選択すると、エラー概要ページにシステムの障害に関する属性データが表示されます。

Copyright © 2023 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.