본문으로 건너뛰기

WCF 및 Web Service 모니터링 설정

노트

해당 페이지는 WhaTap .NET 에이전트 2.4.4 이하만 해당 되는 내용을 전달합니다.

WCF(Windows Communication Foundation)와 같이 와탭 .NET 에이전트가 공식적으로 지원하지 않는 라이브러리를 모니터링하려면 다음 안내를 확인하세요.

주의

광범위한 설정 시 과도한 트래픽이 발생할 수 있습니다.

설정 안내

WCF 및 Web Service를 추적하기 위한 에이전트 설정 옵션입니다.

  • webservice_method_enabled Boolean

    기본값 false

    값을 true로 설정하면 Web Service를 추적할 수 있습니다.

    노트

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

  • webservice_method_prefix String

    값에 추적할 메소드가 정의되어있는 네임스페이스 및 클래스 이름을 입력하세요.

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

    • 조건에 맞는 메소드가 웹 서비스를 사용하지 않아도 추적 대상이 됩니다. 이 옵션의 경우 WCF와 웹 서비스 모니터링을 위해 설계되었지만 다양한 목적으로 사용할 수 있습니다.

    노트

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

    whatap.conf
    webservice_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)에 대한 예시를 참조하세요.

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에 추가해야 할 정보입니다.

Web Service