New Relicの.NETエージェントには、エージェントの標準機能を拡張できるAPIが含まれます。.NETエージェントAPIの使用例は、次のとおりです。
- アプリケーション名のカスタマイズ
- カスタムトランザクションのパラメーターの作成
- カスタムエラーとカスタムメトリクスのレポート
設定を調整するか、カスタムインストゥルメンテーションを使用して、.NETエージェントの一部のデフォルト動作をカスタマイズすることもできます。
要件
重要
2021年9月現在で、.NET用のAPI、設定オプション、インストレーションオプションの小さなサブセットが新しいメソッドで置き換えられます。この移行の簡単な準備方法などの詳細については、サポートフォーラムの投稿を参照してください。
.NETエージェントAPIを使用するには:
.NETエージェントの最新リリースを使用していることを確認します。
プロジェクトにエージェントへの参照を追加します。
プロジェクトに
NewRelic.Api.Agent.dll
への参照を追加します。また
NuGetパッケージライブラリを参照してAPIパッケージをダウンロードします。
コードの欠落しているセクションをトランザクションで計測する
アプリをインストゥルメントするために、New Relicはコードで各パスをそのトランザクションに分離します。New Relicは、これらのトランザクションの親メソッドの時間をインストゥルメントして総合的なパフォーマンスを測定し、追加詳細として長期間実行されているトランザクションからトランザクショントレースを収集します。
New Relicがコードの特定の部分をまったくインストルメントしていない場合は、次のメソッドを使用します。
あなたがしたい場合は... | これを行う... |
---|---|
トランザクションがNewRelicに報告されないようにする |
|
トランザクションが存在しない場所にトランザクションを作成する |
セグメントを使用した時間固有の方法
New Relic UIにトランザクションがすでに表示されているが、そのトランザクション中に呼び出された特定のメソッドに関する十分なデータがない場合は、セグメントを作成して、それらの個々のメソッドの時間をより詳細に計測できます。たとえば、複雑なロジックを使用して特に重要なメソッドの時間を計測したい場合があります。
既存のトランザクション内でメソッドをインストゥルメントする場合は、属性によるカスタムインストゥルメンテーションまたはXMLによるトランザクションへの詳細の追加をご覧ください。
トランザクションのメタデータを強化する
計測対象のコードがNew Relic UIに表示される場合もありますが、メソッドの詳細の一部が有用ではないことがあります。例:
- デフォルト名が有用でない。(メトリクスのグループ化問題の原因になっている場合など)。
- ダッシュボードでフィルターできるように、トランザクションにカスタムアトリビュートを追加します。
New Relic UIにすでに表示されているトランザクションをNew Relicでインストゥルメントする方法を変更する場合は、以下の方法を使用します。
あなたがしたい場合は... | これを行う... |
---|---|
トランザクションの名前を変更する |
|
トランザクションがApdexスコアに影響しないようにする |
|
トランザクションにメタデータ(顧客のアカウント名またはサブスクリプションレベルなど)を追加する | カスタムアトリビュートを使用します。 |
関連ログを見る
アプリケーションのエラーとトレースのコンテキスト内でログを直接表示するには、次のAPI呼び出しを使用してログに注釈を付けます。
ログデータと他のテレメトリーデータの相関に関する詳細は、コンテキストのログに関するドキュメントを参照してください。
機器の非同期作業
サポートされているフレームワークの場合、.NETエージェントは通常、非同期動作を検出して正しくインストゥルメントします。ただし、アプリケーションが別のフレームワークを使用する場合、またはデフォルトの非同期インストゥルメンテーションが正確ではない場合は、非同期動作に明示的に接続できます。
あなたがしたい場合は... | これを行う... |
---|---|
New Relicがすでにインストゥルメントしている非同期メソッドをトレースする | XMLファイルを使用して、IISアプリの非同期メソッドをインストゥルメントします。トラブルシューティングのヒントについては、欠落している非同期メトリクスを参照してください。 |
New Relicがインストゥルメントしていない非同期メソッドをトレースする | XMLファイルを使用して、IISアプリの非同期メソッドをインストゥルメントします。トラブルシューティングのヒントについては、欠落している非同期メトリクスを参照してください。 |
外部サービスの呼び出しの表示
.NETエージェントバージョン8.9以上では、以下のディストリビューティッド(分散)トレーシングペイロードAPIを使用して、分散トレースで自動的に相互接続しないNew Relicが監視するサービス間でディストリビューティッド(分散)トレーシングコンテキストを手動で渡すことができます。
あなたがしたい場合は... | これを行う... |
---|---|
外部アプリケーションまたはデータベースに対する発信リクエストを計測する |
|
着信リクエストをリクエストの発信者に結び付けてトレースのスパンを完了する |
|
8.9以前のバージョンの.NETエージェントには、クロスアプリケーショントレーシングを使用してください。
エラーを収集または無視する
通常、.NETエージェントはエラーを自動的に検出します。ただし、エージェントを使用してエラーに手動でマーク付けできます。エラーを無視することもできます。
あなたがしたい場合は... | これを行う... |
---|---|
.NETエージェントが自動的に報告しないエラーを報告する |
|
エラーをキャプチャするか、.NETエージェントがエラーをレポートしないようにする | .NETエージェントの設定ファイルを使用します。 |
アプリからカスタムイベントと指標データを送信する
APMには、任意のカスタムデータを記録する多くの方法が含まれます。New Relicデータ型の説明については、データ収集をご覧ください。
あなたがしたい場合は... | これを行う... |
---|---|
ダッシュボードで分析できるように、イベントに関するデータを送信する | カスタムイベントを作成します。 |
メタデータを使用してイベントにタグ付けし、ダッシュボードまたはエラー分析でフィルターしてファセットする | カスタムアトリビュートを追加します。.NETエージェントの属性と属性の有効化/無効化を参照してください。 |
カスタムパフォーマンスデータを報告する |
|
ブラウザモニタリングエージェントを制御する
通常、エージェントはページに自動的に追加、またはJavaScriptスニペットをコピー/ペーストしてデプロイされます。これらの推奨メソッドの詳細については、ブラウザモニタリングへのアプリの追加を参照してください。
ただし、ブラウザエージェントは、APMエージェントAPIコールを介して制御することもできます。詳細については、Browserモニタリングと.NETエージェントをご覧ください。