APM において、 Trace details タブは、 トランザクショントレース における個々のセグメントのタイミングを表示します。このドキュメントでは、 Trace details タブのセクションと機能について説明します。
トレース詳細ページの機能
one.newrelic.com >All capabilities > APM & services > (アプリを選択) > Monitor > Transactions > (トランザクション追跡を選択) > Trace detailsに移動します。
Trace details [トレースの詳細] ページには、トランザクション内のセグメントのタイミング データを含むテーブルとウォーターフォール、さらに追加の機能が表示されます。追加のタブを使用して、トレース中に記録されたすべてのセグメント属性とデータベース クエリを表示できます。
トレースの詳細ページ | 説明 |
---|---|
プライマリートレースデータ、機能 | 各トランザクション トレース UI ページの上部には、トレース時間、応答時間、および利用可能な場合は CPU 情報など、いくつかの主要なデータが表示されます。また、場合によっては、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 つのコールのみが表示されます。
分散型トレース
トランザクション追跡が分散トレース データに基づいている場合、ページ ヘッダーの分散トレース リンクをクリックすると、完全な分散トレースを表示できます。
トランザクション トレースではなく分散トレースを参照すると、トレースの詳細ページには若干異なる情報が表示されます。
- すべての属性は、3 つのデフォルトの属性タイプに分割されるのではなく、単一の
Attributes
セクションにグループ化されます。 - セグメント メトリック名は、分散トレースとトランザクション トレースの間で若干異なる場合があります。
- セグメント属性にスタック トレースが表示されない
トレースの詳細についてログを調べます
ログとアプリケーションのデータをまとめて、トラブルシューティングをより簡単かつ迅速に行うことができます。コンテキスト内のログを使用すると、エラーとトレースに関連するログメッセージをアプリのUIで直接確認できます。
- [トランザクション]ページで、トレースをクリックして[ トレースの詳細]ページに移動します。
- トレースの詳細ページで、[ログを表示]をクリックします。
- 個々のログメッセージに関連する詳細を表示するには、メッセージを直接クリックします。
また、Kubernetesクラスターなどのインフラストラクチャデータのコンテキストでログを表示することもできます。別のUIページに切り替える必要はありません。