New Relic は サポートしているフレームワーク を自動的に計測します。しかし、一部のトランザクションが自動的に作成されていないフレームワークや、インスツルメンテーションしたいメソッドが追加されている場合もあります。 トランザクション を作成することで、これらのメソッドにカスタムインスツルメンテーション を追加することができます。XML で作成されたトランザクションは、 New Relic UI では非ウェブ として分類されます。
このドキュメントでは、XMLファイルを使用してトランザクションを作成する方法について説明します。また、以下のことができます。
非IISアプリケーションを使用している場合、XMLインストルメンテーションでは、 .NETエージェントのインストール中にInstrument all
オプションを有効にする必要があります。
XMLによるトランザクションの作成
カスタム・トランザクション(自動的にインスツルメンテーションされないトランザクション)は、カスタム・インスツルメンテーションXMLファイルで定義されます。トランザクションの作成をトリガーするメソッドを定義します。また、トリガー・メソッドによって呼び出される追加のメソッドをインストゥルメントすることもできます。
カスタムトランザクションを作成する前に知っておくべき重要なルールがあります。
- データベースや外部からの呼び出しは、自動的にインスツルメンテーションされるので、カスタムのインスツルメンテーションは必要ありません。
- XMLファイルが正しいパスにあることを確認してください。インストルメンテーションセットを定義するために、.NETエージェントは
Extensions
ディレクトリ内のすべてのXMLファイルを読み取ります。 - 計測しようとしたメソッドがすでに既存のトランザクションの一部である場合、そのトランザクションにセグメントとして追加されます。新しいトランザクションは作成されません。これは、親メソッドがカスタム・インスツルメンテーションを使用してインスツルメンテーションされている場合にも発生します。
- このメソッドはアプリケーションが終了するまで終了せず、データが New Relic に送信されない可能性があるため、
Main()
などの計測は避けてください。
カスタムインストゥルメンテーションファイルを作成するには
.NETAgentディレクトリ内の
Extensions
ディレクトリに新しい.xml
ファイルを作成します。このディレクトリの場所は、OSによって異なります。このテンプレートを、作成したファイルにコピーします。このテンプレートでは、トランザクションとして2つの独立したクラスとメソッドを定義していますが、さらに追加することができます。
<?xml version="1.0" encoding="utf-8"?><extension xmlns="urn:newrelic-extension"><instrumentation><!-- Define the method which triggers the creation of a transaction. --><tracerFactory name="NewRelic.Agent.Core.Tracer.Factories.BackgroundThreadTracerFactory" metricName="TransactionName"><match assemblyName="AssemblyName" className="NameSpace.ClassName"><exactMethodMatcher methodName="MethodName" /></match></tracerFactory><!-- Define the method which triggers the creation of a transaction. --><tracerFactory name="NewRelic.Agent.Core.Tracer.Factories.BackgroundThreadTracerFactory" metricName="TransactionName2"><match assemblyName="AssemblyName" className="NameSpace.ClassName2"><exactMethodMatcher methodName="MethodName2" /></match></tracerFactory><!-- Define the method which triggers the creation of a transaction. --><tracerFactory name="NewRelic.Agent.Core.Tracer.Factories.BackgroundThreadTracerFactory" metricName="TransactionName3"><match assemblyName="AssemblyName" className="NameSpace.ClassName3" minVersion="1.0.0" maxVersion="99.99.99"><exactMethodMatcher methodName="MethodName3" /></match></tracerFactory></instrumentation></extension>
作成したファイルで、属性値
TransactionName
、AssemblyName
、NameSpace.ClassName
、およびMethodName
をカスタマイズします。トリガー メソッドと、トリガー メソッドによって呼び出されるメソッドの両方について、これらの値をカスタマイズします。上記の 3 番目の例に示すように、オプションのminVersion
およびmaxVersion
属性値を使用して、特定のバージョンのアセンブリをターゲットにすることもできます。この機能には、エージェント 10.6.0 以降が必要であることに注意してください。ヒント
これらの値は、大文字と小文字を区別します。
TransactionName
: トランザクション名を定義します。metricName
属性はオプションです。省略した場合、トランザクション名はNameSpace.ClassName/MethodName
になります。トランザクション カテゴリはCustom
になります。結果の完全なメトリック名はOtherTransaction/Custom/TransactionName
になります。トランザクション カテゴリをCustom
から変更する場合は、 SetTransactionName API 呼び出しを使用してください。New Relic UI では、トランザクション タイプ フィールドのカテゴリごとにトランザクションがグループ化されます。AssemblyName
:トリガーメソッドを含むアセンブリ。NameSpace.ClassName
:トリガーメソッドを含む完全修飾クラス名。MethodName
:トリガーメソッドの正確な名前。minVersion
: オプション (削除できます)。インストルメント化する最小アセンブリ バージョン (包括的)。省略した場合、最小バージョンは 0 と見なされます。エージェント 10.6.0 以降が必要です。maxVersion
: オプション (削除できます)。インスツルメントするアセンブリの最大バージョン (排他的)。省略した場合、最大バージョンはありません。エージェント 10.6.0 以降が必要です。
メソッドを追加するには、トランザクションとして定義される
"NewRelic.Agent.Core.Tracer.Factories.BackgroundThreadTracerFactory"
属性を含める必要があります。この属性のないタグは、既存の取引のみに詳細を追加します。オプション:XMLファイルが正しくフォーマットされているかどうかを確認するには、任意のXSDバリデーターを使用してXSD(
C:\ProgramData\New Relic\.NET Agent\Extensions\extension.xsd
にあります)と照合します。
重要
トランザクション名の末尾に角かっこ[suffix]
を使用しないでください。 New Relicは、名前から角かっこを自動的に削除します。代わりに、必要に応じて括弧(suffix)
またはその他の記号を使用してください。
トランザクションをUIで表示
カスタムトランザクションは、 methodName
で指定されたメソッドがassemblyName
で指定されたアセンブリで呼び出されたときに開始されます。メソッドが例外を返すかスローすると、トランザクションは終了します。
これらのメトリックは、 Transactionsページとトレースで表示できます。 履歴書を表示するには: one.newrelic.com > All capabilities > APM & services > (select an app) > Monitor > Transactions > Type > (select a type)に移動します。 API を使用してカテゴリを変更しない限り、タイプはNon-web/Custom
になります。
one.newrelic.com > All capabilities > APM & services > (select an app) > Monitoring > Transactions > Type > (selected type): カスタム トランザクションを表示するには、 Typeメニューを使用します。
例楽器の3つのメソッド
この例では、トランザクションを作成する簡単な実装を紹介します。
例コンソールアプリのインストゥルメント化
このシンプルなコンソール アプリは、トランザクションの作成方法を示しています。 アプリケーションを数回実行すると、作成した トランザクション がトランザクション ページ( one.newrelic.com > All capabilities > APM & services > (select an app) > Transactions > Type ) に表示されます。 Dummyセグメントは、 トランク 内訳表および任意の トランク トレースに表示されます。