この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

外部サービスのセットアップ

外部サービス機能は、New Relic APM エージェントと OpenTelemetryで利用できます。

できるだけ早く立ち上げて実行したい場合は、APM エージェントを使用することをお勧めします。

ロゴをクリックすると New Relic プラットフォームに移動し、ガイドに従ってエージェントのインストールと構成を行います。

外部サービスの設定

次の手順では、外部サービスをセットアップする手順を説明します。

データの送信を開始する

外部サービスのセットアップは、APM エージェントを使用しているか OpenTelemetry を使用しているかによって異なります。お使いのシステムに合ったインストール オプションのタブを選択します。

外部サービスで表示するサービスごとに、以下を実行します。

  1. まだ行っていない場合は、適切なNewRelicAPMエージェントをインストールします。

  2. エージェントで分散トレースがオンになっていることを確認します。

    • 新しいエージェントをインストールした場合、標準の分散トレースはデフォルトでオンになっています。サービスがInfiniteTracingを使用する他のサービスと通信する場合は、InfiniteTracingのヘルプについてエージェントのドキュメントを参照してください。
    • 古いエージェントを使用している場合は、構成手順に従って、標準の分散トレースまたは無限トレースを有効にします。分散トレースを有効にすると、古いクロスアプリケーショントレースが上書きされます。
  3. エージェントに追加のセットアップ手順が必要かどうかを確認します。

    エージェント

    最小バージョン

    セットアップ

    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まで増やすことができます。エージェントリザーバーを調整するには、以下を確認してください。

APMエージェント

ドキュメント

Go

リザーバーは現在構成できません

Java

Java構成

.NET

.NET構成

Node.js

Node.js構成

PHP

リザーバーは現在構成できません

Python

Python 構成 ( NEW_RELIC_SPAN_EVENTS_MAX_SAMPLES_STOREDを参照)

Ruby

Ruby構成

ヒント

このセクションは、サービスが OpenTelemetry Collector 経由で New Relic にデータを送信している場合にのみ適用されます。これは、データが OpenTelemetry Collector でサンプリングされていないためです。

OpenTelemetry の場合、すべての外部サービス ビューにはサンプル トレースが入力されるため、十分な有用なデータが表示されない可能性があります。 これを解決するには、コレクターのサンプリングを変更して、New Relic にさらに多くのデータを送信できるようにします。

詳細については、 「サンプリング」を参照してください。

次は何ですか?