이전 항목: 건너뛰기 지시문다음 항목: ProbeBuilder 지시문 적용


사용자 지정 추적 프로그램 결합

동일한 메트릭에 적용되는 여러 추적 프로그램을 사용하여 결합 효과를 낼 수 있습니다. 이러한 결합은 대개 incrementor 및 decrementor 추적 프로그램과 함께 사용됩니다.

이 예제에서는 Logged-in users라는 이름의 메트릭을 생성합니다. 클래스 user와 메서드 loginlogout을 사용하여 다음 추적 프로그램을 생성하십시오.

TraceOneMethodOfClass user login MethodTraceIncrementor "Logged-in Users"
TraceOneMethodOfClass user logout MethodTraceDecrementor "Logged-in Users"

이 추적 프로그램은 사용자가 로그인하면 Logged-in Users 메트릭을 증가시키고, 사용자가 로그아웃하면 Logged-in Users 메트릭을 감소시킵니다.

특정 추적 프로그램에 대한 참고 사항

다음 식별자와 추적 프로그램에는 .NET 환경과 관련된 작업이 있습니다.

참고: 이 식별자를 사용하면 Introscope .NET 에이전트가 상속된 특성을 추적하지 않고 기본 클래스에 적용된 특성을 추적합니다.

명시적 인터페이스 구현

.NET 에이전트는 .pbd 파일에서 명시적 인터페이스 구현을 사용합니다. 클래스의 메서드를 추적할 때 다른 클래스에 이름이 같은 메서드가 사용되는 경우 메서드와 해당 메서드가 속한 인터페이스의 이름을 명시적으로 지정해야 합니다. 예를 들어 InterfaceAInterfaceB에 모두 MethodX라는 메서드가 있는 경우 InterfaceAMethodX를 호출할 때 InterfaceA.MethodX와 같이 인터페이스와 메서드의 이름을 모두 지정해야 합니다.

다음은 명시적 인터페이스를 구현하여 클래스의 메서드를 추적하는 예제입니다.

SetFlag: customInterfaceTracing
TurnOn: customInterfaceTracing
IdentifyInheritedAs: EdgeCaseInterface customInterfaceTracing
TraceOneMethodIfFlagged: customInterfaceTracing EdgeCaseInterface.method2 BlamePointTracer "Interface|{namespaceandclassname}|{method}"

계측 및 상속

Introscope는 클래스 계층에서 더 깊은 수준에 있는 클래스를 자동으로 계측하지 않습니다. 예를 들어 다음과 같이 ClassBClassA를 확장하고 ClassCClassB를 확장하는 클래스 계층 구조가 있다고 가정합니다.

Interface\ClassA
ClassB
ClassC

ClassA를 계측하면 ClassBClassA를 명시적으로 확장하므로 함께 계측됩니다. 그러나 ClassCClassA를 명시적으로 확장하지 않으므로 ClassC는 계측되지 않습니다. ClassC를 계측하려면 ClassC를 명시적으로 식별해야 합니다.