.NETエージェントAPIの使用ガイド

New Relicの.NETエージェントには、エージェントの標準機能を拡張するAPIが含まれています。.NETエージェントAPIの使用例は次のとおりです。

  • アプリケーション名のカスタマイズ
  • カスタムトランザクションのパラメータの作成
  • カスタムエラーとカスタムメトリックスのレポート

設定を調整するか、カスタムインストゥルメンテーションを使用して、.NETエージェントの一部のデフォルト動作をカスタマイズすることもできます。

要件

.NETエージェントAPIを使用するには:

  1. .NETエージェントの最新リリースを使用していることを確認します。
  2. プロジェクトにエージェントへの参照を追加します。
    • プロジェクトにNewRelic.Api.Agent.dllへの参照を追加します。

      または

    • NuGetパッケージライブラリを参照してAPIパッケージをダウンロードします。

トランザクションを使用して、コードの欠落している部分をインストゥルメントする

アプリケーションをインストゥルメントするために、New Relicはコードを介してそれぞれのパスをそのトランザクションに分離します。New Relicは、これらのトランザクションの親メソッドの時間をインストゥルメントして総合的なパフォーマンスを測定し、追加詳細として長期間実行されているトランザクションからトランザクショントレースを収集します。

これらのメソッドは、New Relicがコードの特定の部分をインストゥルメントしていない場合に使用します。

以下を行う場合... 操作...
トランザクションのNew Relicへのレポートを抑止する IgnoreTransaction()またはXMLファイルを使用して、トランザクションを無視します。
トランザクションが存在しない場所にトランザクションを作成する 属性または XMLファイルを使用して新しいトランザクションを作成します。

セグメントを使用する時間固有メソッド

New Relic UIにトランザクションがすでに表示されており、そのトランザクション中に呼び出された特定のメソッドに関するデータが十分ではない場合は、このようなメソッドを個別により詳細に時間計測するセグメントを作成できます。たとえば、複雑なロジックの特に重要なメソッドの時間を計測する必要があることがあります。

既存のトランザクション内でメソッドをインストゥルメントする場合は、属性によるカスタムインストゥルメンテーションまたはXMLによるトランザクションへの詳細の追加をご覧ください。

トランザクションのメタデータの強化

計測対象のコードがNew Relic UIに表示されていても、メソッドの詳細の一部が有用ではないことがあります。例えば:

New Relic UIにすでに表示されているトランザクションをNew Relicでインストゥルメントする方法を変更する場合は、以下の方法を使用します。

以下を行う場合... 操作...
トランザクションの名前を変更する SetTransactionName()またはXMLファイルを使用します。
トランザクションがApdexスコアに影響しないようにする IgnoreApdex()を使用します。
トランザクションにメタデータ(顧客のアカウント名またはサブスクリプションレベルなど)を追加する カスタムアトリビュートを使用します。AddCustomParameter()を参照します。

非同期の作業をインストゥルメントする

サポートされているフレームワークの場合、.NETエージェントは通常、非同期動作を検出して正しくインストゥルメントします。ただし、アプリケーションが別のフレームワークを使用する場合、またはデフォルトの非同期インストゥルメンテーションが正確ではない場合は、非同期動作に明示的に接続できます。

以下を行う場合... 操作...
New Relicがすでにインストゥルメントしている非同期メソッドをトレースする XMLファイルを使用して、IISアプリケーションの非同期メソッドをインストゥルメントします。欠落している非同期メトリックスに関するNew Relicのトラブルシューティングのヒントをご覧ください。
New Relicがインストゥルメントしていない非同期メソッドをトレースする XMLファイルを使用して、IISアプリケーションの非同期メソッドをインストゥルメントします。欠落している非同期メトリックスに関するNew Relicのトラブルシューティングのヒントをご覧ください。

外部サービスの呼び出しの表示

.NETエージェントバージョン8.9以降では、以下のディストリビューティッド(分散)トレーシングペイロードAPIを使用して、分散トレースで自動的に相互接続しないNew Relicが監視するサービス間でディストリビューティッド(分散)トレーシングコンテキストを手動で渡すことができます。

以下を行う場合... 操作...
外部アプリケーションまたはデータベースに対する発信リクエストを計測する CreateDistributedTracePayload()を使用して、発信リクエストにアタッチするディストリビューティッド (分散) トレースペイロードを作成します。
着信リクエストをリクエストの発信者に結び付けてトレースのスパンを完了する AcceptDistributedTracePayload()を使用して、着信リクエストのペイロードを受信します。

8.9以前のバージョンの.NETエージェントには、クロスアプリケーショントレーシングを使用してください。

エラーを収集または無視する

通常の場合、.NETエージェントはエラーを自動的に検出します。ただし、エージェントを使用してエラーに手動でマークを付けることができます。エラーを無視することもできます。

以下を行う場合... 操作...
.NETエージェントが自動的に報告しないエラーを報告する NoticeError()を使用します。
エラーをキャプチャするか、.NETエージェントがエラーをレポートしないようにする .NETエージェントの設定ファイルを使用します。

アプリケーションからカスタムイベントとメトリックデータを送信する

New Relic APMには、任意のカスタムデータを記録する一連の方法があります。New Relicデータ型の説明については、データ収集をご覧ください。

以下を行う場合... 操作...
New Relic Insightsで分析できるように、イベントに関するデータを送信する カスタムイベントを作成します。RecordCustomEvent()を参照します。
メタデータを使用してイベントにタグ付けし、Insightsまたはエラー分析でフィルターしてファセットする カスタムアトリビュートを追加します。.NETエージェントの属性属性を有効/無効にするをご覧ください。
カスタムパフォーマンスデータをレポートする RecordMetric()を使用して、カスタムメトリックを作成します。データを表示するには、New Relic InsightsでMetric Explorerを使用します。

New Relic Browserエージェントの制御

通常の場合、Browserエージェントはページに自動的に追加されるか、JavaScriptスニペットをコピー/ペーストしてディプロイされます。これらの推奨メソッドの詳細については、New Relic Browserへのアプリケーションの追加をご覧ください。

ただし、New Relic Browserエージェントは、APMエージェントAPIを呼び出して制御することもできます。詳細については、New Relic Browserと.NETエージェントをご覧ください。

その他のヘルプ

推奨する詳細情報: