您可以使用影响同一度量标准的多个跟踪器,实际上就是将这些跟踪器组合在一起。 这是增量器和减量器最常使用的方法。
本示例创建了一个名为 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.Transaction MyTracerGroup
这将标识所有带有 [Transaction] 注释的类,包括 ServicedComponent。
注意:使用此标识符时,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。 但是,Introscope 不会检测 ClassC,因为 ClassC 未明确扩展 ClassA。 要检测 ClassC,必须明确识别 ClassC。
|
版权所有 © 2013 CA。
保留所有权利。
|
|