.NETカスタムインストゥルメンテーションの概要

完全にサポートされているフレームワーク(.NET Framework | .NET Core)に対して、New Relic .NETエージェントは、ウェブトランザクションとブラウザのタスクに関する情報を自動的に収集してレポートします。ただし、自動インストゥルメントされないアプリケーションフレームワークを使用している(またはフレームワークを使用していない)場合は、New Relic UIで長時間にわたって詳細が表示されないか、トランザクションがまったく表示されないことがあります。この場合、カスタムインストゥルメンテーションを使用してトランザクションと詳細を追加できます。

このドキュメントでは、デフォルトで.NETエージェントによってインストゥルメントされないアクティビティをインストゥルメントする方法について説明します。インストゥルメンテーションを設定するその他の方法については、.NETエージェントAPIの使用ガイドをご覧ください。

両方のエージェント(.NET Frameworkと.NET Core)に対するカスタムインストゥルメンテーションは、特に明記されない限り同じ方法で行われます。

カスタムインストゥルメンテーションの方法の選択

.NETエージェント(.NET Frameworkと.NET Core)は、カスタムインストゥルメンテーションの2つの方法をサポートしています。

メソッド 説明
カスタムインストゥルメンテーションの属性

属性でメソッドを装飾して、コードをインストゥルメントします。属性によるインストゥルメンテーションは、コード内でインストゥルメントするメソッドと同じ場所に、単一のデコレータを追加するだけの操作が必要なため、XMLインストゥルメンテーションよりも簡単に実装できます。

手順については、属性によるカスタムインストゥルメンテーションをご覧ください。

XMLカスタムインストゥルメンテーション

XMLファイルでターゲットメソッドをリストすることで、コードをインストゥルメントします。XMLインストゥルメンテーションは属性によるインストゥルメンテーションに比べて複雑で、インストゥルメントするアセンブリ、クラス、またはメソッドの名前を変更すると、この操作は失敗します。ただし、XMLインストゥルメンテーションではソースコードを変更する必要がありません。

手順については、XMLによるトランザクションの作成XMLによるトランザクションへの詳細の追加をご覧ください。

トランザクションの作成と詳細の追加

以下のいずれかの方法でカスタムインストゥルメンテーションを追加する場合は、新しいトランザクションを作成するか、インストゥルメンテーションを既存のトランザクションに追加するかのいずれかを選択する必要があります。

状況 推奨事項
インストゥルメントするメソッドがNew Relic UIに表示されない

新規トランザクションの作成。 詳細については、以下を参照してください。

トランザクションはNew Relic UIに表示されるが、インストゥルメントされない時間セクションがある

既存のトランザクションに詳細を追加します。 詳細については、以下を参照してください。

「Web」または「非Web」として分類(属性メソッドのみ)

New Relic APMは、UIでトランザクションをWebトランザクションと非Webトランザクションに分類します。既存のトランザクションに詳細を追加する場合、カテゴリは親トランザクションのカテゴリによって決まります。

ただし、属性メソッドを使用してカスタムインストゥルメンテーションでトランザクションを作成する場合は、次のようにWebまたは非Webとして分類する必要があります。(この操作は、XMLインストゥルメンテーションでは実行できません。XMLで作成されたトランザクションはすべて、非Webとして分類されます。)

カテゴリ 用途
ウェブ ウェブリクエストにはウェブを使用します。新しいトランザクションは、XMLを使用するのではなく、属性を使用するカスタムインストゥルメンテーションによるウェブトランザクションとしてのみマークできます。
非ウェブ

コンソールアプリケーションやサービスなど、その他のタイプのバックグラウンドリクエストには、非ウェブを使用します。

その他のヘルプ

推奨する詳細情報: