外部サービス機能は、New Relic APM エージェントと OpenTelemetryで利用できます。
できるだけ早く立ち上げて実行したい場合は、APM エージェントを使用することをお勧めします。
ロゴをクリックすると New Relic プラットフォームに移動し、ガイドに従ってエージェントのインストールと構成を行います。
外部サービスの設定
次の手順では、外部サービスをセットアップする手順を説明します。
データの送信を開始する
外部サービスのセットアップは、APM エージェントを使用しているか OpenTelemetry を使用しているかによって異なります。お使いのシステムに合ったインストール オプションのタブを選択します。
外部サービスで表示するサービスごとに、以下を実行します。
まだ行っていない場合は、適切なNewRelicAPMエージェントをインストールします。
エージェントで分散トレースがオンになっていることを確認します。
- 新しいエージェントをインストールした場合、標準の分散トレースはデフォルトでオンになっています。サービスがInfiniteTracingを使用する他のサービスと通信する場合は、InfiniteTracingのヘルプについてエージェントのドキュメントを参照してください。
- 古いエージェントを使用している場合は、構成手順に従って、標準の分散トレースまたは無限トレースを有効にします。分散トレースを有効にすると、古いクロスアプリケーショントレースが上書きされます。
エージェントに追加のセットアップ手順が必要かどうかを確認します。
エージェント
最小バージョン
セットアップ
Go
3.6.0
NewRoundTripper()
の使用に関するドキュメントを参照してください。Java
5.13.0
JavaエージェントAPIを使用して外部呼び出しを計測する方法については、ドキュメントを参照してください。
.NET
8.29.0
Azureの.NETエージェントと.NETエージェントは、外部呼び出しを自動的にインストルメントしますが、トランザクションのメソッドはインストルメントしません。トランザクションを表示するには、次の組み合わせを使用する必要があります。
Node.js
6.9.0
Node.jsエージェントAPIの使用に関するドキュメントを参照してください。
PHP
9.12.0.268
PHPエージェントAPIを使用して外部呼び出しを計測する方法についてのドキュメントを参照してください。
Python
5.14.0.142
追加の手順は必要ありません。外部通話は自動的に計測されます。
Ruby
6.12.0.367
RubyエージェントAPIを使用して外部呼び出しを計測する方法についてのドキュメントを参照してください。
ヒント
従来の外部サービスをすでに使用しているエージェントのチェーンに新しいサービスを追加する必要がある場合は、従来のバージョンの外部サービスを引き続き使用できます。従来の外部サービスをインストールするには、以下の手順で分散トレースの代わりにクロスアプリケーショントレースを有効にします。
サービスの OpenTelemetry インストルメンテーションをセットアップする手順と、他のサービスへの 呼び出しを 完了すると、New Relic UI に外部サービスの詳細が表示されます。 外部サービス機能は、サービス間の呼び出しを、各サービスのトランザクション エンドポイント別に分類して表示します。各トランザクションの名前は、プロセスのエントリ スパン ( span.kind = "server"
) から派生します。
APMサービスがOpenTelemetryサービス(アップストリームまたはダウンストリーム)に接続されている場合、そのOpenTelemetryサービスはそのAPMサービスのビューに表示されません。これは、APMサービスを表示するときに、この機能がAPMエージェントによってのみ報告されるメトリックを使用するためです。 OpenTelemetryサービスを表示すると、APMサービスが接続として表示されます。
表示される情報の品質は、コレクターで使用しているサンプリング戦略によって異なります。 サンプリングを使用して UI に表示される内容を制御する方法については、次のセクションを参照してください。
ヒント
OpenTelemetryデータの100%をTrace APIに送信する場合、組織に特定のレート制限がある場合、またはデフォルトのレート制限をトリガーするのに十分なデータを送信する場合を除き、そのデータの100%が保存されます。
より多くのUIデータを表示するには、サンプリングを調整します
APM エージェントを使用していて、マップの最初のページを超えてドリルを開始したときにデータがほとんど、またはまったく表示されない場合は、より多くのデータをサンプリングするためにスパン リザーバーを調整する必要がある場合があります。これは、トランザクション レベルのデータがサンプリングされたトレース データによって設定されるためです。
OpenTelemetry の場合、最初のページとすべてのドリルダウン ページの両方にサンプリングされたデータが入力されるため、必要なデータを取得するにはサンプリングでいくつかの調整が必要になる場合があります。
ここでは、APM エージェントのリザーバーを調整するためのさまざまなルーチンに関する情報と、OpenTelemetry のサンプリングを調整するためのヒントを示します。
すべてのAPMエージェントにはスパンを格納するリザーバーがあり、これらのエージェントリザーバーのほとんどは構成可能です。このリザーバーのサイズは、エージェントが作成するすべてのスパンを送信できる可能性に影響します。詳細については、 断片化されたトレースを参照してください。
この機能のデータは、あるサービスから別のサービスへの外部呼び出しが行われる隣接するクライアントおよびサーバースパンから取得されます。エージェントがスパンリザーバの制限に達すると、これらのコールを表すいくつかのスパンをドロップする可能性があります。
デフォルトのエージェント設定値2000は、エージェントが1分間に収集するイベントの最大数を定義します。この数よりも多くのスパンがある場合、エージェントは統計サンプリングを収集し、外部サービスマップで使用されるデータの量を本質的に低下させます。
UIに必要な種類の詳細が表示されない場合は、リザーバーのサイズを最大10,000まで増やすことができます。エージェントリザーバーを調整するには、以下を確認してください。
ヒント
このセクションは、サービスが OpenTelemetry Collector 経由で New Relic にデータを送信している場合にのみ適用されます。これは、データが OpenTelemetry Collector でサンプリングされていないためです。
OpenTelemetry の場合、すべての外部サービス ビューにはサンプル トレースが入力されるため、十分な有用なデータが表示されない可能性があります。 これを解決するには、コレクターのサンプリングを変更して、New Relic にさらに多くのデータを送信できるようにします。
詳細については、 「サンプリング」を参照してください。
次は何ですか?
- 外部サービスを使用して API の問題をトラブルシューティングする方法を学ぶ
- 外部サービス UI の操作について詳しくは、こちらをご覧ください。
- UIを理解する方法について質問がある場合は、ヒントを参照してください。