完全対応するフレームワーク(.NET Framework | .NET Core)において、New Relic .NETエージェントはウェブトランザクションとブラウザタスクに関する情報を自動的に収集してレポートします。ただし、自動インストゥルメントされないアプリケーションフレームワークを使用している(またはフレームワークを使用していない)場合は、New Relic UIで長時間にわたって詳細が表示されないか、トランザクションがまったく表示されないことがあります。この場合、カスタムインストゥルメンテーションを使用してトランザクションと詳細を追加できます。
このドキュメントでは、デフォルトで.NETエージェントによってインストゥルメントされないアクティビティをインストゥルメントする方法について説明します。インストゥルメンテーションを設定するその他の方法については、.NETエージェントAPIの使用ガイドをご覧ください。
重要
両方のエージェントのフレームワーク(.NET Framework と .NET Core)をサポートしている場合、カスタムインストゥルメンテーションは、特にほかで明記されていない限り、同じ方法で行われます。
カスタムインストゥルメンテーションの方法の選択
.NETエージェントは、2通りのカスタムインストゥルメンテーションをサポートします。
方法 | 説明 |
---|---|
カスタムインストゥルメンテーションの属性 | 属性でメソッドを装飾して、コードをインストゥルメントします。属性によるインストゥルメンテーションは、コード内でインストゥルメントするメソッドと同じ場所に、単一のデコレータを追加するだけの操作が必要なため、XMLインストゥルメンテーションよりも簡単に実装できます。 手順については、属性によるカスタムインストゥルメンテーションをご覧ください。 |
XMLカスタムインストゥルメンテーション | XMLファイルでターゲットメソッドをリストすることで、コードをインストゥルメントします。XMLインストゥルメンテーションは属性によるインストゥルメンテーションに比べて複雑で、インストゥルメントするアセンブリ、クラス、またはメソッドの名前を変更すると、この操作は失敗します。ただし、XMLインストゥルメンテーションではソースコードを変更する必要がありません。 手順については、XMLによるトランザクションの作成とXMLによるトランザクションへの詳細の追加をご覧ください。 |
トランザクションの作成と詳細の追加
以下のいずれかの方法でカスタムインストゥルメンテーションを追加する場合は、新しいトランザクションを作成するか、インストゥルメンテーションを既存のトランザクションに追加するかのいずれかを選択する必要があります。
状況 | 推奨事項 |
---|---|
インストゥルメントするメソッドがNew Relic UIに表示されない | Create a new transaction. 詳細については、以下を参照してください。 |
トランザクションはNew Relic UIに表示されるが、インストゥルメントされない時間セクションがある | Add detail to an existing transaction. 詳細については、以下を参照してください。 |
「Web」または「非Web」として分類(属性メソッドのみ)
APMは、UIでトランザクションをウェブトランザクションと非ウェブトランザクションに分類します。既存のトランザクションに詳細を追加する場合、カテゴリは親トランザクションのカテゴリによって決まります。
属性メソッドを使用してカスタムインストゥルメンテーション経由でトランザクションを作成する場合、それをwebまたはnon-webとして分類する必要があります。 (これは XML インストゥルメンテーションでは不可能です。XML で作成されたトランザクションはすべてnon-webとして分類されます。)
カテゴリー | 用途 |
---|---|
ウェブ | Web リクエストにはwebを使用します。 新しいトランザクションをウェブトランザクションとしてマークできるのは、XML ではなく、属性を使用したカスタムインストゥルメンテーションのみです。 |
非ウェブ | コンソール アプリやサービスなど、他の種類のバックグラウンド リクエストにはnon-webを使用します。
|