본문으로 건너뛰기

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.conf
    webservice_method_prefix=Test.Demo, WebServiceDemo.WebService.
    주의
    • 조건에 맞는 메소드가 Web Service를 사용하지 않아도 추적 대상이 됩니다. WCF와 Web Service를 위해서 만들어진 기능이지만 다른 목적으로 사용할 수도 있습니다.

    • 메소드가 소속된 클래스까지만 입력하면 해당 클래스 내의 모든 public 메소드가 추적 대상이 됩니다.

    노트

    설정한 값을 적용하려면 IIS를 다시 시작하세요.

  • webservice_method_timeout Integer

    기본값: 5000 (밀리초, ms)

    모니터링 대상이 되는 메소드에서 Exception 핸들링이 되지 않는 경우 트랜잭션 종료 시점을 알 수가 없습니다. 이런 경우를 대비해 웹서비스 모니터링은 기본적으로 5초가 지나면 타임아웃 처리됩니다. 이 옵션 값을 변경해 타임아웃 시간을 조절할 수 있습니다.

사용 예시

에이전트 설정 파일 수정하기

WCF 및 Web Service 추적을 위한 에이전트 설정 파일(whatap.conf)에 대한 예시를 참조하세요.

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 메소드이기 때문에 모니터링 대상에서 제외합니다.