目前支援的 Go 版本:V1.22.0 與 V1.26.0。

CodeBull 介紹

CodeBull 是一款 VS Code 擴充功能,為您的 Go 應用程式帶來動態可觀測性 (Dynamic Observability)。 它允許開發人員在不重寫代碼、不重新編譯二進制文件或重啟進程的情況下,將日誌、指標和追蹤注入到正在運行的應用程式中。

傳統的除錯通常涉及添加 print 語句、重新編譯和重啟應用程式。CodeBull 利用運行時插樁技術消除了這種摩擦。

核心概念

動態插樁 (Dynamic Instrumentation)

在特定點(例如函數入口/出口、特定行)注入代碼以修改正在運行的程式行為的能力。CodeBull 使用此技術安全地插入可觀測性掛鉤 (hooks)。

Agent 產品預告

規劃中的使用起點

這項即將推出的功能,是為了那些你已經知道系統「看起來不對」,卻還不確定應該先檢查哪裡的時刻而設計。像是延遲突然升高、流程走到意料外分支、日誌過於混亂,或回應結果不如預期,都是這項預告功能想支援的起點。

規劃中的引導流程

當日誌、指標、歷史儀表板與火焰圖看起來都可能有幫助時,未來的 Agent 預計會協助你判斷哪一種觀察方式最適合先回答眼前的問題。

規劃中的團隊交接支援

我們也規劃讓 Agent 在一次排查後協助整理零散觀察,形成簡短敘述,讓交接、事故後續追蹤,以及與團隊同步都更容易。

主要功能

動態日誌 (Dynamic Logging)

在代碼的任何位置注入日誌語句。捕獲變數值、函數參數和返回值。

Dynamic Logging Example

即時指標 (Instant Metrics)

即時監控應用程式的效能和行為。添加計數器 (counters) 以追蹤代碼行的執行頻率,或添加儀表 (gauges) 以追蹤變數隨時間變化的值。

效能分析 (Profiling) (即將推出)

直接從 VS Code 按需生成 CPU 和記憶體分析報告。視覺化火焰圖 (flame graphs) 以識別瓶頸。

常見問題 (FAQ)

它適用於優化後的二進制文件嗎?
是的,CodeBull 支援優化後的二進制文件,儘管某些變數值可能會被優化掉。
會有效能開銷嗎?
僅在插樁點引入極小的開銷。當沒有啟用任何插樁點時,開銷為零。