クロスアプリケーションのトラブルシューティング

ここでは、トランザクションマッップトレースマップ機能を使った際のトランザクションのヒントを示します。

エージェトのバージョンとプロトコル

トランザクションマップやトレースマップにおいてトランザクションを色分けされたノードとして表示するには、適切なバージョンの New Relic エージェントが必要です。お使いのエージェントのバージョン、プロトコル、インターフェイス、メッセージキューライブラリが以下の要件を満たしていることを確かめてください。お使いのプロトコルが以下のリストにない場合は、アプリケーション間の接続を見ることはできません。

エージェントのバージョン 備考
Java 3.9.0以上

HTTP, JMS 1.1, RabbitMQ

Java 用エージェントは、JMS 1.1 インターフェイス使用しているものなど複数のメッセージキューライブラリをサポートしています。エージェントの設定では transaction_events [英語] がデフォルトで有効になっています。無効にすると、トレースビューにてそれらのアプリケーションが見れなくなります。

.NET 4.2 以上 HTTP, NServiceBus
Ruby 3.9.1以上 HTTP
Node.js 1.12.0以上 HTTP
PHP 4.19.0 以上 HTTP
Python 2.38.0.31以上 HTTP

設定ファイルの要件

一般的に、オリジナルの Cross Application Tracing 機能はデフォルトで有効です。設定ファイルの変更に必要な要件は、New Relic エージェントによって変わります。

ハイスループットアプリ

クロスアプリケーショントレースは、各トランザクションイベントが関連するトランザクションに関連づいていることを前提としています。ハイスループットアプリを使っている場合、エージェントは1分間に記録可能なイベント数の上限を超えると、イベントのサンプリング抽出に切り替えることがあります。トランザクションのイベントをサンプルとして抽出した場合、不完全なクロスアプリケーショントレースを見ることになるかもしれません。それは、あなたがフォーカスしているトランザクションだけかもしれません。

ハイスループットのアプリをお使いの場合、クロスアプリケーショントレースは、リンクがない等の不完全な状態で表示されるかもしれません。別のトランザクショントレースを表示してみてください。サンプリングを削減や排除するには、エージェントの設定にあるトランザクションイベントの数を調整してください。

ハイスループットアプリ トラブルシューティングのヒント
Java transaction_events 節にある max_samples_stored設定 を調整する。
Ruby analytics_events.max_samples_stored設定を調整する。

プロキシの問題

クロスアプリケーショントレースのリンクを見たいときに、常に見れるとは限りません。アプリケーション通信間にプロキシやブローカーがあるかもしれません。クロスアプリケーショントレースは、あるアプリから別のアプリへ渡される HTTP ヘッダー や JMS プロパティに依存しています。しかし、HTTP プロキシやメッセージブローカーは、このヘッダーを削除することがあります。

マルチスレッド処理 (Java)

1つ以上の Javaアプリで、非同期または “reactive” プログラミングモデルを利用している場合、トランザクションのアクティビティは複数のスレッドにまたがることがあります。New Relic は Play フレームワークと Servlet Async をサポートしています。しかし、非同期フレームワークをすべてサポートしているという訳ではありません。サポート対象外のフレームワークでは、他のスレッドのアクティビティは、トランザクションの一部としてレポートされません。別のアプリへの呼び出しは、トレースされません。

サブアカウント

現在のクロスアプリケーショントレースは、New Relic アカウントを跨いでトレースできません。(サブアカウント含む)複数のアカウントを持っている場合は、1つのアカウントのアプリのトレースだけしかみれません。

関連情報

関連情報は次のとおりです。