成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

線上排查問題的利器——Btrace

開發 后端
Btrace 是一個安全,可以動態跟蹤 java 程序的一種工具。他的操作不會對原有 java 進程產生影響,不用關閉正在運行的 java 進程,也不會修改 java 進程中的邏輯和數據。因此,也就成為我們線上跟蹤生產代碼的有力工具!

之前 Btrace 只是聽說過,但還沒有具體的用到。最近在排查線上問題的時候,使用了 Btrace ,發現 Btrace 真是在關鍵時候的利器。

Btrace 是一個安全,可以動態跟蹤 java 程序的一種工具。

他的操作不會對原有 java 進程產生影響,不用關閉正在運行的 java 進程,也不會修改 java 進程中的邏輯和數據。

因此,也就成為我們線上跟蹤生產代碼的有力工具!

Btrace 的腳本編寫也非常簡單:和寫 Java 代碼一樣的,因此對于我們,學習的曲線幾乎是平坦的。

下面就分享一下 Btrace 的一些用法:

如何使用 Btrace

基本用法: trace

其中, btrace 是在 btrace 下載包中的命令 , pid 是 JVM 的進程 id , btrace-script 是編寫的 btrace 腳本。

Btrace 中的一些概念

Probe Point : 關注點。就是我們要關注應用程序中要執行的“地方”,或者是一些“事件”的發生。

Trace Action : 就是觸發了 probe point 的時候,我們所要執行的動作。

Action Methods :我們的 trace action 都是寫在某個類的靜態方法中的,這個靜態方法,就是 action method 。

Btrace 中的一些限制:

Btrace 的初衷是要“跟蹤代碼”,而不是修改代碼,因此他要保證我們注入的腳本,是安全的,對應用程序來說是“只讀”的。也就是說不能修改應用程序的代碼或者數據。因此 Btrace 中有一些限制,主要有:

不能新建對象

不能拋異常

不能 catch 異常

不能調用實例方法和靜態方法。只能調用 Btrace 提供的 com.sun.btrace.BTraceUtils 中的方法和自己在腳本中定義的方法。

不能有循環

不能有斷言

……

初看起來,好像限制蠻多的。不過, com.sun.btrace.BTraceUtils 提供的方法很多,足夠我們來“跟蹤”代碼了。而且,這些限制也是必要的,因為我們只是到那個 JVM 去看看,看看而已。

一個簡單的 Btrace 腳本例子,其實就是 Java 代碼

 

 

其中:

其中類名需要加上 @Btrace 的注釋,以表示是 Btrace 腳本

OnMethod 表示一個 probe point ,這個就表示當執行到 java.awt.Component 這個類的 方法(這個是 Component 的構建方法)時,就觸發 func 方法。

@Self 表示這個被實例化的 Component 的引用

@OnTimer 表示事件(通過時間)觸發的 probe point ,每隔 2 秒觸發一次

相信程序不用做過多解釋,大家都知道,終端將會打印出從跟蹤開始, Component 被實例化的個數。

支持的跟蹤類型

Btrace 支持的跟蹤類型有很多了,包括可以跟蹤:

跟蹤到某個實例方法的觸發

跟蹤到某個接口方法的觸發

跟蹤到觸發方法的參數,返回值

可以將當前觸發的線程堆棧打印出來

設置還可以跟蹤某個方法中的哪一行代碼被執行到

Btrace 的 User Guide

http://kenai.com/projects/btrace/pages/UserGuide

關于 Btrace 的原理

詳情可見: http://victorzhzh.javaeye.com/blog/965789

什么時候用 Btrace

雖然 Btrace 在關鍵時候能起到迅速排查問題的作用,但我個人感覺,這還是不到萬不得已才使用的好。

首先,我們代碼上線前,應該充分 review ,充分和相關方進行溝通,以避免不必要的問題發生。

其次,我們應該養成記 log 的良好習慣。遇到問題,如果有相關日志可以排查,是最方便的,同時,也是最安全,成本***的一種排查方法。

***,我們可以結合 btrace 和 jdk 自帶的 tool 來排查問題,比如 jstack , jstat 等等,快速的定位問題。

以上就是本人剛開始使用 Btrace 的一些成果,希望能對大家排查問題帶來一些作用 。

【編輯推薦】

  1. MyEclipse 8.6 for Spring發布 新增iPhone工具
  2. MyEclipse 8.6正式版發布 以Eclipse 3.5.2為核心
  3. MyEclipse 8.6 M1發布 支持更多服務器
責任編輯:金賀 來源: JavaEye博客
相關推薦

2017-10-12 12:24:50

java

2024-08-14 14:20:00

2017-08-18 22:40:33

線上線程備份

2023-03-02 08:53:57

排查問題效率經驗

2021-07-14 13:50:51

Linux命令文件

2020-11-12 10:58:22

Logger級別技巧

2024-10-10 15:32:51

2021-12-26 00:10:39

二分法排查版本

2020-04-28 09:46:34

線上問題排查

2018-08-10 15:00:42

服務器內存排查

2021-11-23 21:21:07

線上排查服務

2017-06-10 20:47:06

MySQL復制線程

2017-06-09 20:10:44

MySQL復制線程

2018-12-10 10:30:40

阿里Linux命令

2024-03-18 09:24:00

索引失效SQL

2022-11-16 11:55:22

網絡連接命令

2023-12-05 07:12:39

優化排查性能

2019-11-12 08:53:00

線上命令日志

2010-10-12 10:04:30

無法無線上網

2019-03-29 10:22:08

Linux系統故障技巧
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 男人天堂免费在线 | 91日韩| 中文字幕国产视频 | 一区二区三区观看视频 | 亚洲国产aⅴ成人精品无吗 国产精品永久在线观看 | 天天操网 | 人妖av| 亚洲免费视频在线观看 | 成年视频在线观看 | 成人午夜网站 | 亚洲视频国产视频 | 亚洲综合一区二区三区 | 国产精品亚洲视频 | 中文字幕免费观看 | 成人免费福利视频 | 久久久久久久国产 | 蜜桃av一区二区三区 | 国产不卡在线 | 视频在线一区二区 | 日韩成人在线观看 | 国产免费观看一区 | 国产高清在线视频 | 国产一区不卡在线观看 | 日韩精品在线一区 | 国产精品成人一区二区三区 | 一区二区成人 | 国产伊人精品 | 操操操日日日 | 免费视频99| 中文字幕一区二区三区乱码在线 | 国产日批 | 三级成人在线观看 | 欧美爱爱视频网站 | 久久久久久久久久毛片 | 国产精品一二三区 | 午夜欧美a级理论片915影院 | 久久久久久91香蕉国产 | 黄色国产在线播放 | 91成人免费看 | 日韩免费一区二区 | 国产高清在线精品一区二区三区 |