目的
このチュートリアルを終了すると、次のことができるようになります。
- トランザクションとトレースを理解する
- 問題のある取引を特定する
- アプリで問題のあるセグメントを確認して最適化する
トランザクションの目的と理由
Web アプリでの顧客のアクティビティにより、アプリが Web 要求を受信したときに開始し、応答が返されたときに終了する、コードを通るルートが作成されます。これらのルートはトランザクション、または関数呼び出しとメソッド呼び出しで構成される作業単位です。
顧客が購入時に支払いを送信するなど、重要なビジネス ポイントについて考えてみてください。顧客が支払いの処理に失敗した、または大幅に遅れて処理されたと報告した場合、その失敗の原因について推測する必要があります。API が失敗の原因でしたか、それともその日の早い段階でデプロイされた最近のバグ修正でしたか?
トランザクションを観察してパフォーマンスを向上させる
当社のトランザクション UI は、問題の原因を診断するのに役立ち、特定のトランザクションのパフォーマンスを向上させることができます。次の手順では、遅いトランザクションを特定し、アプリのパフォーマンスを改善する方法について説明します。
トランザクション UI に移動します 。one.newrelic.com > (アプリを選択) > Monitor > Transactionsに移動します。
遅いトランザクションを見つけます:
- ページの上部で最も時間のかかるトランザクションを並べ替えます。
- Top 20 transactions[トップ 20 トランザクション] チャートを見てみましょう。このリストは、アプリケーションの負荷を軽減する最良の機会を表しています。これらの頻繁に呼び出されるトランザクションの時間を削減すると、大量の要求であるため、アプリケーションのフットプリントが削減されます。このチャートの上位数件のトランザクションに注目してください。
- ページの上部で、平均応答が最も遅い順にトランザクションを並べ替えます。
- Top 20 transactions[トップ 20 トランザクション] チャートをもう一度見てください。このグラフは、特定のリクエストの合計ボリュームからのリクエストごとの平均時間を示しています。このチャートの上位数件のトランザクションに注目してください。
これらのグラフは、最も時間のかかるトランザクションを示しています。
これらのグラフは、最も遅いトランザクションを示しています。
パフォーマンスを向上させる
コードで遅延を引き起こす可能性のあるトランザクションを特定しましたが、問題について知ることは、顧客のための解決策を見つけることと同じではありません。上記のトランザクションを使用すると、コード内でこの特定のルートが最も多くの時間を費やしている場所の内訳を見つけることができます。
取引ごとに、トップ 20 チャートの名前をクリックして、次の操作を行います。
- セグメント内訳チャートを確認してください。これは、リクエストが最も多くの時間を費やしている場所を示しています。平均して、ルートがコードの一部で停止する場合は、そのセグメントの最適化に集中してください。
- トランザクション追跡テーブルを確認し、最も遅い追跡を収集します。最も遅いトレースは外れ値ですが、どのメソッド、データベース、または HTTP 呼び出しがアプリのパフォーマンスに最大の影響を与えるかを示す良い指標です。
これで、パフォーマンスが低下している遅いメソッド、リクエスト、またはコードの他の部分のリストが表示されます。ここからが楽しい部分です。実際にコーディングします。コードの修正をテストしてから、次のセクションに進んで作業を確認してください。
作品をチェック
問題の範囲を絞り込み、潜在的な解決策を見つけました。修正を開発にプッシュしてから、一般的な負荷テストを実行して、アプリが本番環境でどのように実行されるかを把握します。
応答時間を監視するときは、アプリのトランザクションを注意深く監視してください。
- あなたの取引は正常ですか?これで完了です。
- 彼らは改善しましたか?学んだことを使用して、なぜ彼らが通常よりも改善したのかを理解してください.
- まだ応答時間が遅いですか? データベースに問題があるか、 外部サービスの 実行が遅い可能性があります。