【性能跟踪】btrace学习三--bBTrace Annotation注解

Method Annotations 1. @com.sun.btrace.annotations.OnMethod 定位目标类,方法,位置,且可定位多个。target class(es), target method(s) and "location(s)" within the method(s) 查找clazz中的类和方法。类可以是全路径定义或者正则。正则为//中间的。 /java .awt ..+/ 可以用annotation来确定定位范围。@javax.jws.WebService所有被WebService annotation的类。 用+表示继承。+java.lang.Runnable可以定位所有继承自runnable接口的类。 2. @com.sun.btrace.annotations.OnTimer 监控需要周期运行的方法。参数 N milliseconds。 3. @com.sun.btrace.annotations.OnError 当被监控的btrace的任何方法抛异常的时候被触发。 4. @com.sun.btrace.annotations.OnExit 当BTrace调用方法exit(int)推出监控session时被触发。 5. @com.sun.btrace.annotations.OnEvent 当BTrace客户端从外部发出事件请求时被触发。可以用string表示事件名 6. @com.sun.btrace.annotations.OnLowMemory 监控内存超过临界点的方法。 7. @com.sun.btrace.annotations.OnProbe 用来避免吧需要监控的类或方法写死在脚本里。可以用xml文件配置来定义需要监控的方法等。运行的时候需要把这个xml文件拷到JVM的运行路径下,或者修改btracer.bat文件的probeDescPath来指定xml文件的位置。 Argument Annotations 8. @com.sun.btrace.annotations.Self 标记一个参数拥有this或(self)的值。 9. @com.sun.btrace.annotations.Return 标记一个参数持有方法return的值。 10. @com.sun.btrace.annotations.ProbeClassName (since 1.1) 标记一个参数持有被监控类的类名 11. @com.sun.btrace.annotations.ProbeMethodName (since 1.1) 标记一个参数持有被监控方法的方法名。 1.2版本开始可以用Boolean参数fqn表是是否需要全路径名。 12. @com.sun.btrace.annotations.TargetInstance (since 1.1) 标记一个参数持有调用实例的值。 13. @com.sun.btrace.annotations.TargetMethodOrField (since 1.1) 标记一个参数持有调用方法名。 1.2版本开始可以用Boolean参数fqn表是是否需要全路径名。 Unannotated arguments Unannotated arguments是用来做特征匹配的,因此必须按照被监控方法的定义顺序出现。但他们可以和标记参数交叉出现。它们的精确意义取决于使用它们的location: Kind.ENTRY, Kind.RETURN- the probed method arguments Kind.THROW - the thrown exception Kind.ARRAY_SET, Kind.ARRAY_GET - the array index Kind.CATCH - the caught exception Kind.FIELD_SET - the field value Kind.LINE - the line number Kind.NEW - the class name Kind.ERROR - the thrown exception Field Annotations 14. @com.sun.btrace.annotations.Export 使用这个关联一个BTrace成员变量来指定这个成员变量和jvmstat的counter相关联。这样就可以暴露出外部jvmstat clients的监控次数。 15. @com.sun.btrace.annotations.Property 用来标记一个指定的成员变量作为MBean属性。如果一个BTrace类至少定义了一个用@Property注解的静态成员变量,那么MBean就会被创建并且注册到MBean服务器上。 16. @com.sun.btrace.annotations.TLS 定义一个BTrace的静态成员变量为线程局部变量(thread local)。因此为了正常工作这个变量必须是immutable或cloneable的。这个可以让我们用来监控是不是同一个线程会进入到多个被监控action。 Class Annotations 17. @com.sun.btrace.annotations.DTrace 监控DTrace的 18. @com.sun.btrace.annotations.DTraceRef 监控DTrace的 19. @com.sun.btrace.annotations.BTrace 必选annotation。用以指定java类。 文档地址为http://kenai.com/projects/btrace/pages/UserGuide annotation的API补充: 1. AnyType 用来匹配任何引用类型。AnyType[]。用来对方法进行特征匹配。 2. Location 定义了需要监控的位置。可以选择不同的位置进行监控。配合Kind和Where来使用。 Kind,枚举类型 ARRAY_GET array element load ARRAY_SET array element store CALL method call CATCH exception catch CHECKCAST checkcast ENTRY method entry ERROR "return" because of no-catch FIELD_GET getting a field value FIELD_SET setting a field value INSTANCEOF instanceof check LINE source line number NEW new object created NEWARRAY new array created RETURN return from method SYNC_ENTRY entry into a synchronized block SYNC_EXIT exit from a synchronized block THROW throwing an exception Where AFTER after the location of interest BEFORE before the location of interest  

你可能感兴趣的:(xml,exception,webservice,Class,immutable,Annotations)