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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值