동일한 메트릭에 적용되는 여러 추적 프로그램을 사용하여 결합 효과를 낼 수 있습니다. 이러한 결합은 대개 incrementor 및 decrementor 추적 프로그램과 함께 사용됩니다.
이 예제에서는 Logged-in users라는 이름의 메트릭을 생성합니다. 클래스 user와 메서드 login 및 logout을 사용하여 다음 추적 프로그램을 생성하십시오.
TraceOneMethodOfClass user login MethodTraceIncrementor "Logged-in Users" TraceOneMethodOfClass user logout MethodTraceDecrementor "Logged-in Users"
이 추적 프로그램은 사용자가 로그인하면 Logged-in Users 메트릭을 증가시키고, 사용자가 로그아웃하면 Logged-in Users 메트릭을 감소시킵니다.
다음 식별자와 추적 프로그램에는 .NET 환경과 관련된 작업이 있습니다.
지정된 특성 클래스로 주석 처리된 모든 클래스를 지정된 추적 프로그램 그룹에 연결합니다.
일부 클래스는 클래스에 대한 추가적인 기능을 제공하기 위해 특성 클래스로 주석 처리될 수 있습니다. 아래 예제에서는 System.EnterpriseServices.Transaction이라는 특성 클래스가 ServicedComponent 클래스에 추가되었습니다.
[Transaction]
Public class ServicedComponent {
}
.pbd 파일에서 다음과 같이 작성할 수 있습니다.
IdentifyAnnotatedClassAs: System.EnterpriseServices.MyTracerGroup
이 코드는 ServicedComponent를 포함한 [Transaction] 어노테이션이 있는 모든 클래스를 식별합니다.
참고: 이 식별자를 사용하면 Introscope .NET 에이전트가 상속된 특성을 추적하지 않고 기본 클래스에 적용된 특성을 추적합니다.
지정된 추적 프로그램 그룹과 연결된 클래스에 대해 지정된 클래스로 주석 처리된 모든 메서드를 추적합니다.
.NET 에이전트는 .pbd 파일에서 명시적 인터페이스 구현을 사용합니다. 클래스의 메서드를 추적할 때 다른 클래스에 이름이 같은 메서드가 사용되는 경우 메서드와 해당 메서드가 속한 인터페이스의 이름을 명시적으로 지정해야 합니다. 예를 들어 InterfaceA 및 InterfaceB에 모두 MethodX라는 메서드가 있는 경우 InterfaceA의 MethodX를 호출할 때 InterfaceA.MethodX와 같이 인터페이스와 메서드의 이름을 모두 지정해야 합니다.
다음은 명시적 인터페이스를 구현하여 클래스의 메서드를 추적하는 예제입니다.
SetFlag: customInterfaceTracing
TurnOn: customInterfaceTracing
IdentifyInheritedAs: EdgeCaseInterface customInterfaceTracing
TraceOneMethodIfFlagged: customInterfaceTracing EdgeCaseInterface.method2 BlamePointTracer "Interface|{namespaceandclassname}|{method}"
Introscope는 클래스 계층에서 더 깊은 수준에 있는 클래스를 자동으로 계측하지 않습니다. 예를 들어 다음과 같이 ClassB가 ClassA를 확장하고 ClassC가 ClassB를 확장하는 클래스 계층 구조가 있다고 가정합니다.
Interface\ClassA
ClassB
ClassC
ClassA를 계측하면 ClassB는 ClassA를 명시적으로 확장하므로 함께 계측됩니다. 그러나 ClassC는 ClassA를 명시적으로 확장하지 않으므로 ClassC는 계측되지 않습니다. ClassC를 계측하려면 ClassC를 명시적으로 식별해야 합니다.
|
Copyright © 2013 CA.
All rights reserved.
|
|