APM において、 Trace details タブは、 トランザクショントレース における個々のセグメントのタイミングを表示します。このドキュメントでは、 Trace details タブのセクションと機能について説明します。
トレース詳細ページの機能
one.newrelic.com > APM> (select an app)> Monitor> Transactions> (select a transaction trace)> Trace details.
Trace details ページでは、トランザクション内のセグメントのタイミングデータを表にして表示するほか、その他の機能も紹介しています。
トレースの詳細ページ | 説明 |
---|---|
プライマリートレースデータ、機能 | 各トランザクションのトレースUIページの上部には、トレース時間、応答時間、可能であればCPU情報など、いくつかの主要なデータが表示されます。また、時にはUIが 部分的なトレース を示すこともあります。 使用可能な機能:
|
期間欄 | 各セグメントおよびサブセグメントの時間は、ミリ秒単位で表示され、トランザクション時間全体に対する割合も表示されます。特に遅いセグメントは 色分けされています 。 |
セグメント欄 | セグメント カラムには、セグメント名とカウントが表示されます。速い通話や繰り返しの通話は、 自動的にグループ化されることがあります。 。 アプリケーションコード がセグメントやサブセグメントの名前として表示されている場合もあります。 セグメントを拡張するには、以下のいずれかを使用します。
|
ドリルダウンカラム | Drilldown column には、追加の取引データがある場合、そのデータにリンクするアイコンが表示されることがあります。 |
タイムスタンプ欄 | Timestamp 列は、セグメントまたはサブセグメントの開始時刻を、トランザクションの開始時刻と比較して表示します。例えば、 |
ドリルダウンのオプション
Drilldown カラムでは、アイコンは追加データが利用可能であることを示しています。
アイコン | 説明 |
---|---|
データベース アイコンは、そのクエリセグメントの生のデータベースクエリにリンクしています。 トランザクショントレースの設定 に応じて、このクエリは生データとして表示されるか、難読化されたデータとして表示されます。セグメントの合計時間が設定したクエリプランのしきい値を超えた場合は、コード内の呼び出しの正確な位置を示すスタックトレースとともに、クエリ分析も表示されます。 | |
虫眼鏡 スタックトレースの詳細へのリンクです。 | |
このアイコンは、クロスアプリケーショントレースの詳細が利用できないことを示しています。しかし、このアイコンを選択すると、 複数のトランザクションの呼び出しに渡って集約されたトランザクション情報 を表示することができます。 |
トレースの詳細についてログを調べる
ログとアプリケーションのデータを統合して、トラブルシューティングをより簡単かつ迅速に行うことができます。コンテキストのログでは、エラーとトレースに関連するログメッセージをアプリケーションのUIで直接表示できます。
- Transactionsページでトレースをクリックして、Trace detailsページに移動します。
- トレースの詳細ページで、See logsをクリックします。
- 各ログメッセージに関連する詳細を表示するには、メッセージを直接クリックしてください。
ログ・イン・コンテキストでは、トレースの詳細の中でログデータを直接調べることができます。
また、Kubernetesクラスタなど、インフラストラクチャデータのコンテキストでログを表示することもできます。New Relic Oneで別のUIページに切り替える必要はありません。
セグメントデュレーションデータの色分け
Trace details テーブルの Duration カラムは色分けされています。
赤。全トランザクション時間の25%以上がこのセグメントに費やされた。
黄色。全トランザクション時間の5%以上がこのセグメントに費やされた。
色分けされた持続時間は必ずしも問題を示すものではありません。そのタイミングが実際に問題であるかどうかは、あなたのアプリケーションにとって何が正常で許容範囲であるかによります。
アプリケーションコードのトレース
表の中で、セグメントが アプリケーションコード と表示されている場合は、コードのその部分がインスツルメンテーションされていないことを示しています。 カスタムインスツルメンテーション を使用して、コードのその部分についての詳細を得ることができます。 Application code として記載されているセグメントは、 Partial Traces の場合が多いです。
部分的な痕跡
パフォーマンス上の理由から、APM はトランザクショントレースの最初の 2,000 セグメント(Node.js の場合は 900 セグメント)のみをキャプチャします。トランザクショントレースがこのセグメント数を超えた場合、エージェントはトランザクショントレースを切り捨て、 Details ページの上部にメッセージを表示します。
これは部分的なトレースです。
セグメントを切り詰めるタイミングについては、APMエージェントによってルールが異なります。
APMエージェント | セグメントルールの切り捨て |
---|---|
C SDK | セグメントの優先順位に基づいて切り捨てます。
|
Go | セグメントの継続時間は、 |
Java、.NET、Ruby | これらのエージェントは、トレースを時系列に切り詰めます。詳細については、 Java 、 .NET 、 Ruby のトランザクショントレーサーのドキュメントを参照してください。 |
Node.js | Node.jsエージェントは、トランザクション・トレースの最初の900セグメントのみをキャプチャします。詳細については、 Node.js トランザクショントレーサの設定 を参照してください。 |
PHP | セグメントの長さに基づいて切り詰めます。最も遅い 2,000 のセグメントがトレース用にキャプチャされます。詳細については、PHP トランザクショントレーサーの設定 を参照してください。 |
Python | セグメントの継続時間に基づいて切り捨てられ、最も遅い2,000セグメントがトレースに取り込まれます。詳細については、 Python トランザクショントレーサの設定 を参照してください。 |
セグメントのグルーピングルール
たくさんのセグメントがあるトランザクショントレースは、解釈が難しい場合があります。New Relic では、高速なメソッドコールや繰り返されるメソッドコールを自動的に 1 つのセグメントグループにまとめることができます。
たとえば、 7 fast method calls
というタイトルのセグメントがあるとします。これは、完了が早いことから、New Relic がこれらの呼び出しが問題になる可能性は低いと判断し、グループ化したことを意味します。このグループ化を展開すると、個々のセグメントを見ることができます。
セグメント別に分類する際のルールは以下の通りです。
- 高速コール: New Relic が 7.5ms 以下の持続時間を持つ 4 つ以上の連続したセグメントを検出した場合、これらは 1 つの折りたたまれたヘッダーにまとめられます。
- 同一のコール: New Relic が 4 つ以上の連続した同一のコールを検出した場合、これは通常 N+1 問題を示しています。これらのセグメントは折りたたまれています。折りたたまれたノードを展開すると、すべてのコールではなく、最初の 3 つのコールのみが表示されます。