WCF 및 Web Service 모니터링 설정
.NET 애플리케이션 서버의 WCF(Windows Communication Foundation) 또는 Web Service를 추적할 수 있습니다.
설정 안내
다음은 WCF 및 Web Service를 추적하기 위한 에이전트 설정 옵션입니다.
-
webservice_method_enabled Boolean
기본값
false값을
true로 설정하면 Web Service를 추적할 수 있습니다.노트설정한 값을 적용하려면 IIS를 다시 시작하세요.
-
webservice_method_prefix String
추적 대상이 되는 메소드의 이름을 네임스페이스와 함께 입력하세요. Web Service는 직접 추적할 수 없기 때문에 Web Service를 사용한 메소드를 직접 추적 대상으로 입력해야 합니다.
다음 예시를 참조하세요.
whatap.confwebservice_method_prefix=Test.Demo, WebServiceDemo.WebService.주의-
조건에 맞는 메소드가 Web Service를 사용하지 않아도 추적 대상이 됩니다. WCF와 Web Service를 위해서 만들어진 기능이지만 다른 목적으로 사용할 수도 있습니다.
-
메소드가 소속된 클래스까지만 입력하면 해당 클래스 내의 모든 public 메소드가 추적 대상이 됩니다.
노트설정한 값을 적용하려면 IIS를 다시 시작하세요.
-
-
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 메소드이기 때문에 모니터링 대상에서 제외합니다.
