溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

線上排查問題的利器Btrace怎么用

發布時間:2021-12-27 14:05:01 來源:億速云 閱讀:188 作者:小新 欄目:編程語言

這篇文章主要介紹了線上排查問題的利器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 的注釋,以表示是 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

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

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

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

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

感謝你能夠認真閱讀完這篇文章,希望小編分享的“線上排查問題的利器Btrace怎么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女