WCFおよびWeb Serviceモニタリングの設定
本ページは WhaTap .NET エージェント 2.4.4 以下のバージョンにのみ該当する内容です。
WCF(Windows Communication Foundation)など、WhaTap .NET エージェントが公式にサポートしていないライブラリを監視する場合は、以下の案内を確認してください。
設定範囲が広い場合、過剰なトラフィックが発生する可能性があります。
設定案内
次はWCFおよびWeb Serviceを追跡するためのエージェントの設定オプションです。
-
webservice_method_enabled Boolean
既定値
false値を
trueに設定するとWeb Serviceを追跡できます。ノート設定した値を有効にするには、IISを再起動してください。
-
webservice_method_prefix String
追跡するメソッドが定義されている名前空間およびクラス名を入力してください。
-
メソッドが属するクラス名まで指定すると、そのクラス内のすべての Public メソッドが追跡対象になります。
-
条件に一致するメソッドは、Web サービスを使用していなくても追跡対象になります。このオプションは WCF や Web サービスのモニタリングを目的として設計されていますが、さまざまな用途で利用できます。
ノート設定した値を適用するには IIS を再起動してください。
whatap.confwebservice_method_prefix=Test.Demo, WebServiceDemo.WebService. -
-
webservice_method_prefix_realtime Boolean
.NET Agent v2.3.6 or later既定値
false値を
trueに設定すると、webservice_method_prefixターゲットを以前と同じようにリアルタイムで処理します。 -
webservice_method_timeout Integer
既定値:
5000(ミリ秒、ms)モニタリング対象となるメソットにおいてExceptionハンドリングがされない場合、トランザクションの終了時点が確認できません。 このような場合に備えて、 ウェブサービスのモニタリングは基本的に5秒が経過するとタイムアウト処理されます。 このオプションの値を変更して、タイムアウト時間を調整できます。
使用例
エージェント設定ファイルの修正
WCFおよびWeb Serviceの追跡用エージェント設定ファイル(whatap.conf)についての例を参照してください。
license=...
whatap.server.host=15.165.146.117
whatap.server.port=6600
app_process_name=w3wp.exe
tag_counter_enabled=true
perfcounter.enabled=true
app_name=...
OID=...
webservice_method_enabled=true
webservice_method_prefix=Whatap.Service.Controller, Whatap.DotNet.Examples.Service1
webservice_method_timeout=10000
-
ネームスペースを含むメソッドの呼び出し経路が次のいずれかであれば、関数の開始と終了をトランザクションとして処理できます。
Whatap.Service.Controller, Whatap.DotNet.Examples.Service1 -
webservice_method_timeoutオプションを10,000(ms)に設定したため、10秒以上経過したトランザクションは自動的に終了処理されます。
管理 > エージェント設定メニューで、オプションの追加もできます。エージェント設定メニューの詳細については、次の文書を参照してください。

モニタリングの対象となるWCFソースコードの例題
次のWCFソースコードの例題を通じて、モニタリングの対象となる事例をご案内します。
namespace Whatap.DotNet.Examples
{
public class Service1 : IService1
{
public string GetData(int value)
{
...
}
public CompositeType GetDataUsingDataContract(CompositeType composite)
{
...
}
private string getFromDB()
{
...
}
private string getFromHttp()
{
...
}
}
public class Service2 : IService1
{
...
}
public class Service3 : IService1
{
public string IwantToSeeOnlyThis(int value)
{
...
}
}
}
モニタリングの対象となるGetData()メソッドは、Whatap.DotNet.ExamplesネームスペースのService1クラスに所属しています。 従って、メソッドの呼び出しパスは次の通りです。
Whatap.DotNet.Examples.Service1.GetData
これは、エージェント設定ファイル(whatap.conf)で指定したwebservice_method_prefixの値(Whatap.DotNet.Examples.Service1)か ら始まるため、トランザクションとして扱います。
-
GetDataUsingDataContract()メソッドもpublicメソッドであるため、モニタリングの対象となります。 -
getFromDB(),getFromHttp()メソッドはprivateメソッドであるため、モニタリングの対象から除外します。
Web Service の場合
Web Service の場合、配布フォルダ内にある .asmx ファイルを探してください。このファイルをテキストエディタで開き、Class 属性に記載されている値を確認します。この値が webservice_method_prefix に追加する情報です。
