本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
當您不需要使用ARMS監控您的Golang應用時,可以通過卸載Golang探針停止監控。本文介紹如何移除Golang探針的代碼增強,以及如何清理混合編譯失敗后的探針殘留。
卸載Kubernetes環境中的探針
ack-onepilot組件由MSE和ARMS共用,卸載ack-onepilot前請確認您的產品沒有接入MSE,否則卸載ack-onepilot將會導致MSE無法使用。
為集群下所有應用卸載探針
方式一:通過容器服務管理控制臺卸載
登錄容器服務管理控制臺。
在左側導航欄單擊集群,然后在集群列表頁面單擊目標集群名稱。
在左側導航欄選擇
,然后在右上角通過關鍵字搜索ack-onepilot。在ack-onepilot卡片上單擊卸載。
在彈出的對話框中單擊確定。
重啟您的業務Pod。
方式二:通過命令行卸載
執行以下命令卸載ack-onepilot。
helm3 uninstall --namespace ack-onepilot ack-onepilot
重啟您的業務Pod。
為集群下指定應用卸載探針
在容器服務管理控制臺左側導航欄單擊集群,在集群列表頁面上的目標集群右側操作列單擊應用管理。
在無狀態頁面目標應用右側選擇
。在編輯YAML對話框中刪除安裝探針時添加的
labels
,然后單擊更新。重啟Pod。
卸載手動安裝的探針
在正常情況下,instgo工具會在完成混合編譯后將您的代碼庫復原。如果您不再需要Golang探針提供的代碼增強,無需刪除instgo工具,只需將instgo工具換回Golang本身,重新編譯您的應用即可,具體操作步驟如下:
(可選)拉取應用代碼庫,并使用
go build
命令重新編譯。將編譯好的應用部署到線上,替換原先已接入Golang探針的應用。
清理Golang探針編譯殘留
在混合編譯過程中,Golang探針會對您的部分文件進行修改,以實現代碼增強。編譯完成后,一般情況下Golang探針會自動對修改過的文件進行清理,但在以下幾種情況下需要您手動清理殘留:
編譯未完成時強制停止或殺死了編譯進程。
編譯工具由于panic等原因異常退出。
如果出現以上幾種情形,您可以手動運行clean
命令,恢復探針對代碼的修改:
Linux/Darwin
./instgo clean
Windows
.\instgo.exe clean
刪除instgo編譯工具
如果您不再需要使用instgo編譯工具,可以按照以下步驟徹底刪除:
刪除緩存目錄(編譯時通過
--cacheDir
指定的目錄)下的所有文件,如果未指定緩存目錄,默認緩存目錄如下:Linux/Darwin
# 指定的緩存目錄(請將${cacheDir}替換為您指定的緩存目錄) rm -rf ${cacheDir}/aliyun-go-agent # 默認的緩存目錄 rm -rf /opt/.opt/aliyun-go-agent
Windows
# 指定的緩存目錄(請將${cacheDir}替換為您指定的緩存目錄) rmdir ${cacheDir}\aliyun-go-agent -Recurse # 默認的緩存目錄 rmdir C:\ProgramData\.opt\aliyun-go-agent -Recurse
刪除instgo工具。