이전 항목: 고급 사용자 지정 추적 프로그램 만들기다음 항목: 메트릭 이름 기반 매개 변수


고급 단일 메트릭 추적 프로그램

지시문 및 추적 프로그램은 메서드, 클래스 및 클래스 집합을 추적합니다. Introscope가 추적할 수 있는 최소 단위는 메서드이고, 단일 메트릭 추적 프로그램은 특정 메서드에 대한 특정 메트릭을 보고합니다. 메서드 서명을 사용하거나, 키워드를 대체하거나, 메트릭 이름 매개 변수를 조작하는 등 여러 방법으로 단일 메트릭 추적 프로그램을 만들 수 있습니다.

서명 구별

메서드 서명을 기준으로 메서드에 추적 프로그램을 적용할 수 있습니다.

특정 서명으로 메서드의 단일 인스턴스를 추적하려면 내부 메서드 설명자 형식을 사용하여 지정된 메서드 이름에 서명을 추가합니다(반환 유형 포함).

예를 들어 myMethod;[mscorlib]System.Void([mscorlib]System.Int32)int 인수와 void 반환 유형을 사용하는 메서드의 인스턴스를 추적합니다.

메트릭 이름 키워드 기반 대체

키워드 기반 대체를 사용하면 런타임에 값을 메트릭 이름으로 대체할 수 있습니다.

추적 프로그램에서 메트릭 이름의 매개 변수가 런타임에 실제 값으로 대체되어 메트릭 이름이 됩니다. 이 기능은 모든 지시문에서 사용할 수 있습니다. 다음 표에는 매개 변수와 해당 런타임 대체가 나와 있습니다.

매개 변수

런타임 대체

{method}

추적할 메서드 이름

{classname}

추적할 클래스의 런타임 클래스 이름

{namespacename}

추적할 클래스의 런타임 네임스페이스 이름

{namespaceandclassname}

추적할 클래스의 런타임 네임스페이스 및 클래스 이름

{assemblyname}

추적할 어셈블리 이름

{fullclassname}

어셈블리 이름을 포함한 전체 클래스 이름을 보고합니다.

참고: Introscope가 네임스페이스가 없는 클래스를 처리하는 경우 {namespacename}을 문자열 "<Unnamed Namespace>"로 대체합니다.

키워드 기반 대체: 예제 1

.pbd 파일에서 추적 프로그램의 메트릭 이름이 다음과 같다고 가정합니다.

"{namespacename}|{classname}|{method}:Response Time (ms)"

그리고 추적 프로그램이 myNamespace에 있는 myClass의 런타임 클래스가 있는 메서드 myMethod에 적용되는 경우 결과 메트릭 이름은 다음과 같이 됩니다.

"myNamespace|myClass|myMethod:Response Time (ms)"
키워드 기반 대체: 예제 2

.pbd 파일에서 다음과 같은 메트릭 이름을 갖는 추적 프로그램이 있다고 가정합니다.

"{namespaceandclassname}|{method}:Response Time (ms)"

이 추적 프로그램을 예제 1과 동일한 메서드에 적용할 경우 결과 메트릭 이름은 다음과 같이 됩니다.

"myNamespace.myClass|myMethod:Response Time(ms)"

참고: 이 예제에서는 네임스페이스클래스 사이에 첫 번째 예제의 |(파이프 기호) 대신 마침표(.)가 사용되었습니다.