問題
分散トレースを有効にしましたが、期待したデータがNewRelicの分散トレースUIに表示されません。
解決
重要
トラブルシューティングを実行する前に、分散トレースのしくみを読むことをお勧めします。
分散トレースUIで予想されるデータを見つけるのに問題がある場合のいくつかの原因と解決策を次に示します。
有効化またはインスツルメンテーションに関する問題
分散トレースでトレース内のすべてのノードの詳細をレポートするには、分散トレースを有効にしたNewRelicエージェントで各アプリケーションを監視する必要があります。
アプリケーションのNewRelicアカウントで分散トレースが有効になっていない場合、次の問題が発生します。
- その分散トレースUIページにはデータがありません。
- 他のアカウントの分散トレースにデータを報告することはありません。
New Relicが自動的に計測するアプリケーションとサービスの分散トレースを有効にすると、通常、分散トレースUIにそれらのノードの完全で詳細なデータが表示されます。
ただし、一部のサービスまたはアプリケーションがトレースから欠落していること、または欠落していると予想される内部スパンがいくつかあることに気付く場合があります。その場合は、アプリケーションまたは特定のトランザクションのカスタムインストルメンテーションを実装して、トレースで詳細を確認することをお勧めします。これを行う必要がある場合のいくつかの例:
- トランザクションは自動的に計測されません。アプリケーションが自動的にインストルメントされることを確認するには、使用している New Relic エージェントの 互換性と要件に関するドキュメントを お読みください。アプリケーションが自動的にインストルメンテーションされない場合、または特定のアクティビティのインストルメンテーションを追加したい場合は、 Custom instrumentation[カスタム インストルメンテーション]を参照してください。
- すべてのGoアプリケーション。Goエージェントは、他のエージェントとは異なり、コードを手動でインストルメント化する必要があります。手順については、 InstrumentaGoアプリケーションを参照してください。
- サービスはHTTPを使用しません。サービスがHTTP経由で通信しない場合、NewRelicエージェントは分散トレースヘッダーを送信しません。これは、一部の非Webアプリケーションまたはメッセージキューに当てはまる場合があります。これを修正するには、分散トレースAPIを使用して、呼び出し元または呼び出されたアプリケーションのいずれかをインストルメント化します。
スパンの問題
もしあなたの エージェントはトレース オブザーバーに十分な速度でデータを書き込むことができません。 queue_size
は、エージェントが保持するスパンの数を制限するための追加の APM エージェント構成です。 エージェントの次の例を参照してください。
.NET構成方法 | 例 |
---|---|
構成ファイル |
|
環境変数 |
|
Pythonの設定方法 | 例 |
---|---|
構成ファイル |
|
環境変数 |
|
ヘッダーの伝播は成功することがありますが、スパン情報がNewRelicに送信されません。たとえば、OpenTelemetryにNew Relicエクスポーターが装備されていない場合、スパンの詳細がNewRelicに到達することはありません。
この図では、ヘッダーの伝播は成功していますが、スパンをNewRelicに送信するためのエクスポーターがService2に設定されていないことに注意してください。
次の図もヘッダーの伝播が成功したことを示していますが、スパンの詳細をNew Relicに送信するサービス2のエクスポーターが含まれています( Trace APIを参照)。
の標準分散トレーシング 適応サンプリングを使用します。 これは、サービスへの呼び出しのパーセンテージが分散トレースの一部として報告されることを意味します。サービスへの特定の呼び出しが、サンプリング対象として選択されていない可能性があります。
収集および表示できるスパンの数には制限があります。アプリケーションが1回の呼び出しに対して非常に多くのスパンを生成する場合、そのハーベストサイクルでのAPMエージェントのスパン収集制限を超える可能性があります。これにより、スパンが失われ、エージェントが完全にサンプリングしてレポートできるトレースの数が大幅に制限される可能性があります。
現在、一度に表示されるスパンは10,000のみです。
トレース インデックスにキャプチャされるようにするには、過去 60 分以内にスパンを送信する必要があります。60 分より前で 1 日より新しいスパンを送信した場合でも、スパン データは書き込まれます。ただし、分散トレース UI のトレース リストを制御するトレース インデックスには含まれません。スパンのタイムスタンプが 1 日より古い場合、そのスパンは削除されます。これは、システム間または長時間実行されているバックグラウンド ジョブ間にクロック スキュー (タイミングの違い) がある場合によく発生します。
重要
OpenTelemetry Protocol (略して OTLP) 経由で送信された 60 分を超えるスパンはNRDBに書き込まれず、次の NrIntegrationError が生成されます。
The span timestamp cannot be older than 60 minutes.
トレースの詳細に関する問題
トランザクションが独自のNewRelicヘッダーのみを送信している場合、一部のミドルウェアはフォーマットを認識せず、次の図に示すように情報をドロップする可能性があります。
1つの解決策は、NewRelicエージェントをW3Cトレースコンテキストをサポートするバージョンにアップグレードすることです。次の図では、W3C準拠のNew Relicエージェントが、2つの標準化されたヘッダーとともに前のヘッダーを渡します。
プロキシおよびその他の仲介者に関するいくつかの潜在的な問題:
不完全なトレース。一部の仲介者は、 分散トレースヘッダーを自動的に伝播しません。その場合、ヘッダーがソースから宛先に渡されるようにそのコンポーネントを構成する必要があります。手順については、その中間コンポーネントのドキュメントを参照してください。
トレースに仲介者がありません。仲介者がNewRelicで監視されている場合は、その仲介者で実行されているNewRelicエージェントによって生成または更新される
newrelic
ヘッダーを伝播することを確認してください。これは、仲介者が以前はトレースに表示されていたが、アップストリームエンティティ(ブラウザで監視されているアプリケーションなど)で分散トレースが有効になった後に表示されなくなった場合に発生する可能性があります。ヒント
一部のエンティティがトレースデータを別のトレースシステムに報告する場合は、New Relic UIのトレースIDを使用して、他のトレースシステムで欠落しているスパンを検索できます。
チェーン内の各エージェントがW3Cトレースコンテキストをサポートしている場合は、スパンをつなぎ合わせて完全なトレースにすることができます。チェーンの一部が、W3CトレースコンテキストをサポートしていないZipkinなどのエージェントからのものである場合、そのエージェントからのスパンはトレースに含まれない可能性があります。
トレースに複数のNewRelicアカウントによって監視されているアプリケーションからのデータが含まれていて、ユーザー権限でそれらのアカウントにアクセスできない場合、スパンとサービスの詳細の一部がUIでわかりにくくなります。
たとえば、サービスにリンクされているアカウントにアクセスできない場合、分散トレースリストにサービス名の代わりに一連のアスタリスク(*****)が表示される場合があります。
トレースリストは、最初のスパンが受信されてから20分のウィンドウでキャプチャされるトレースインデックスによって生成されます。
通常、これは遅いスパンが原因です。
長いトレースでバックエンド時間が異常に短い場合は、送信されるタイムスタンプに問題がある可能性があります。
たとえば、ルートスパンはマイクロ秒をミリ秒として再投稿する場合があります。これは、ルートスパンがブラウザアプリケーションの場合にも発生する可能性があります。Webブラウザなどの外部クライアントを使用すると、クロックスキュー(タイミングの違い)が頻繁に発生する場合があります。
ブラウザアプリケーションの問題
一部の古いバージョン エージェントは、ブラウザ アプリケーションの分散トレースと互換性がありません。 ブラウザー アプリケーションが、互換性のないエージェントを実行している APM アプリケーションに対して AJAX 要求を行う場合、APM エージェントはその要求のトランザクションとスパン データを記録しない場合があります。
ブラウザアプリケーションで分散トレースが有効になっていて、ダウンストリームAPM要求のトランザクションまたはスパンデータが表示されない場合は、分散トレース要件のブラウザデータを確認し、すべてのアプリケーションがサポートされているバージョンのAPMエージェントを実行していることを確認します。
トレースにエンドユーザースパンが欠落していると思われる場合は、ブラウザの分散トレース要件を読んで理解し、 手順を有効にしてください。
AJAX UIページには、そのトレースにエンドユーザースパンが存在するかどうかに関係なく、分散トレースUIへのリンクがあります。スパンを生成するデータの詳細については、 要件を参照してください。
一部の古いバージョン エージェントは、ブラウザ アプリケーションの分散トレースと互換性がありません。 ブラウザー アプリケーションを含むトレースから APM スパンが一貫して欠落している場合は、 分散トレース要件のブラウザー データ を参照し、すべてのアプリケーションが APM エージェントのサポートされているバージョンを実行していることを確認してください。
孤立したブラウザスパンの他の原因については、 ブラウザスパンレポートを参照してください。
その他の問題
考えられる原因:複数のアプリ名を持つアプリケーションの場合、 entity.name
属性はプライマリアプリ名にのみ関連付けられます。他のアプリ名で検索するには、 appName
属性を使用して検索します。
OpenTelemetry との統合に関する質問は、サポート フォーラムに寄せてください。
アクセスに影響を与えるその他の要因
New Relic機能にアクセスする能力に影響を与える可能性のある要因の詳細については、アクセスに影響を与える要因を参照してください。