当您不需要使用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工具。