APM において、 Trace details タブは、 トランザクショントレース における個々のセグメントのタイミングを表示します。このドキュメントでは、 Trace details タブのセクションと機能について説明します。
トレース詳細ページの機能
one.newrelic.com > APM & services > (アプリを選択) > Monitor > Transactions > (トランザクション追跡を選択) > Trace details に移動します。
Trace details ページでは、トランザクション内のセグメントのタイミングデータを表にして表示するほか、その他の機能も紹介しています。
トレースの詳細ページ | 説明 |
---|---|
プライマリートレースデータ、機能 | 各トランザクションのトレースUIページの上部には、トレース時間、応答時間、可能であればCPU情報など、いくつかの主要なデータが表示されます。また、時にはUIが 部分的なトレース を示すこともあります。 使用可能な機能:
|
期間欄 | 各セグメントおよびサブセグメントの時間は、ミリ秒単位で表示され、トランザクション時間全体に対する割合も表示されます。特に遅いセグメントは 色分けされています 。 |
セグメント欄 | セグメント カラムには、セグメント名とカウントが表示されます。速い通話や繰り返しの通話は、 自動的にグループ化されることがあります。 。 アプリケーションコード がセグメントやサブセグメントの名前として表示されている場合もあります。 セグメントを拡張するには、以下のいずれかを使用します。
|
ドリルダウンカラム | Drilldown column には、追加の取引データがある場合、そのデータにリンクするアイコンが表示されることがあります。 |
タイムスタンプ欄 | [タイムスタンプ]列には、トランザクションの開始を基準にした、セグメントまたはサブセグメントの開始時刻が表示されます。たとえば、値 |
ドリルダウンのオプション
Drilldown カラムでは、アイコンは追加データが利用可能であることを示しています。
アイコン | 説明 |
---|---|
データベースクエリ | データベース アイコンは、そのクエリセグメントの生のデータベースクエリにリンクしています。 トランザクショントレースの設定 に応じて、このクエリは生データとして表示されるか、難読化されたデータとして表示されます。セグメントの合計時間が設定したクエリプランのしきい値を超えた場合は、コード内の呼び出しの正確な位置を示すスタックトレースとともに、クエリ分析も表示されます。 |
スタックトレース | 虫眼鏡 スタックトレースの詳細へのリンクです。 |
トランザクションの詳細を集約する | このアイコンは、クロスアプリケーショントレースの詳細が利用できないことを示しています。しかし、このアイコンを選択すると、 複数のトランザクションの呼び出しに渡って集約されたトランザクション情報 を表示することができます。 |
トレースの詳細についてログを調べます
ログとアプリケーションのデータをまとめて、トラブルシューティングをより簡単かつ迅速に行うことができます。コンテキスト内のログを使用すると、エラーとトレースに関連するログメッセージをアプリのUIで直接確認できます。
- [トランザクション]ページで、トレースをクリックして[ トレースの詳細]ページに移動します。
- トレースの詳細ページで、[ログを表示]をクリックします。
- 個々のログメッセージに関連する詳細を表示するには、メッセージを直接クリックします。
また、Kubernetesクラスターなどのインフラストラクチャデータのコンテキストでログを表示することもできます。別のUIページに切り替える必要はありません。
セグメントデュレーションデータの色分け
Trace details テーブルの Duration カラムは色分けされています。
赤:合計トランザクション時間の25%以上がこのセグメントで費やされました。
黄色:合計トランザクション時間の5%以上がこのセグメントで費やされました。
色分けされた持続時間は必ずしも問題を示すものではありません。そのタイミングが実際に問題であるかどうかは、あなたのアプリケーションにとって何が正常で許容範囲であるかによります。
アプリケーションコードのトレース
表の中で、セグメントが アプリケーションコード と表示されている場合は、コードのその部分がインスツルメンテーションされていないことを示しています。 カスタムインスツルメンテーション を使用して、コードのその部分についての詳細を得ることができます。 Application code として記載されているセグメントは、 Partial Traces の場合が多いです。
部分的な痕跡
パフォーマンス上の理由から、APM はトランザクショントレースの最初の 2,000 セグメント(Node.js の場合は 900 セグメント)のみをキャプチャします。トランザクショントレースがこのセグメント数を超えた場合、エージェントはトランザクショントレースを切り捨て、 Details ページの上部にメッセージを表示します。
This is a partial trace.
セグメントを切り詰めるタイミングについては、APMエージェントによってルールが異なります。
APMエージェント | セグメントルールの切り捨て |
---|---|
Go | セグメント期間は、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 つのコールのみが表示されます。