ここでは、 クロスアプリケーショントレース を使用する際のトラブルシューティングのヒントを紹介します。なお、この機能は、クロスアプリケーショントレースよりも優先される distributed tracing とは異なります。
エージェントのバージョンとプロトコル
お使いのエージェントのバージョン、プロトコル、インターフェース、またはメッセージ・キュー・ライブラリについて、これらの要件を満たしていることを確認してください。ここに記載されていないプロトコルを使用している場合は、アプリケーション間の接続が表示されません。
Agent version | Notes |
---|---|
HTTP、HTTPS | |
HTTP、HTTPs、JMS 1.1、RabbitMQ また、Javaエージェントは、JMS 1.1インターフェースを使用するものを含む、いくつかのメッセージキューライブラリをサポートしています。 | |
HTTP、および サポートされている .NET メッセージングシステム | |
HTTP、HTTPS、RabbitMQ | |
HTTP、HTTPS、および をサポートする PHP メッセージキューイングシステム | |
HTTP、HTTPS、および をサポートする Python メッセージキューイングシステム | |
コンフィグファイルの要件
一般的に、New Relic のクロスアプリケーショントレース機能は、デフォルトで有効になっています。設定ファイルを変更する要件は、お使いのNew Relicエージェントによって異なります。
ハイスループットアプリ
クロスアプリケーショントレースは、関連するトランザクションを関連付けるために、トランザクションイベントに依存しています。高スループットのアプリケーションを使用している場合、エージェントは1分間に記録できるイベントの最大数に達し、イベントのサンプリングに戻ってしまうことがあります。トランザクションのイベントがサンプリングされると、不完全なクロスアプリケーショントレースが表示され、注目しているトランザクションのみが含まれることがあります。
アプリケーションのスループットが高い場合、一部のクロスアプリケーショントレースが不完全に表示され、リンクがないこともあります。別のトランザクショントレースを表示してみてください。サンプリングを減らしたり、なくしたりするために、エージェント構成に保存されているトランザクションイベントの数を調整することもできます。
High throughput apps | Troubleshooting tips |
---|---|
Java | transaction_eventsセクションで、 |
Ruby |
|
プロキシ
クロスアプリケーショントレースのリンクが表示されることを期待しているのに、一貫して表示されない場合、アプリケーションの通信の間にプロキシやブローカーが存在する可能性があります。クロスアプリケーショントレースは、あるアプリケーションから他のアプリケーションへ渡されるHTTPヘッダーとJMSプロパティに依存しています。HTTPプロキシやメッセージブローカーは、これらのヘッダを取り除くことがあります。
マルチスレッド処理(Java)
お使いのJavaアプリケーションの1つまたは複数が、非同期または"リアクティブ" プログラミングモデルを使用している場合、トランザクションのアクティビティが複数のスレッドにまたがることがあります。New Relic は Play フレームワークと Servlet Async をサポートしていますが、すべての非同期フレームワークをサポートしているわけではありません。サポートされていないフレームワークの場合、他のスレッドでのアクティビティはトランザクションの一部として報告されません。また、他のアプリケーションへの呼び出しはトレースされません。
マルチアカウント
現在、クロスアプリケーショントレースは New Relic アカウントをまたぐことはありません。複数の New Relic アカウント (子アカウントを含む) をお持ちの場合は、1 つのアカウント内のアプリケーションのトレースのみが表示されます。
当社の 分散型トレース 機能は、アカウントの境界を越えています。