卸载Golang探针

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

当您不需要使用ARMS监控您的Golang应用时,可以通过卸载Golang探针停止监控。本文介绍如何移除Golang探针的代码增强,以及如何清理混合编译失败后的探针残留。

卸载Kubernetes环境中的探针

警告

ack-onepilot组件由MSEARMS共用,卸载ack-onepilot前请确认您的产品没有接入MSE,否则卸载ack-onepilot将会导致MSE无法使用。

为集群下所有应用卸载探针

方式一:通过容器服务管理控制台卸载

  1. 登录容器服务管理控制台

  2. 在左侧导航栏单击集群,然后在集群列表页面单击目标集群名称。

  3. 在左侧导航栏选择运维管理 > 组件管理,然后在右上角通过关键字搜索ack-onepilot

  4. ack-onepilot卡片上单击卸载

  5. 在弹出的对话框中单击确定

  6. 重启您的业务Pod。

方式二:通过命令行卸载

  1. 执行以下命令卸载ack-onepilot。

    helm3 uninstall --namespace ack-onepilot ack-onepilot
  2. 重启您的业务Pod。

为集群下指定应用卸载探针

  1. 容器服务管理控制台左侧导航栏单击集群,在集群列表页面上的目标集群右侧操作列单击应用管理

  2. 无状态页面目标应用右侧选择更多 > 查看Yaml

  3. 编辑YAML对话框中删除安装探针时添加的labels,然后单击更新

  4. 重启Pod。

卸载手动安装的探针

在正常情况下,instgo工具会在完成混合编译后将您的代码库复原。如果您不再需要Golang探针提供的代码增强,无需删除instgo工具,只需将instgo工具换回Golang本身,重新编译您的应用即可,具体操作步骤如下:

  1. (可选)拉取应用代码库,并使用go build命令重新编译。

  2. 将编译好的应用部署到线上,替换原先已接入Golang探针的应用。

清理Golang探针编译残留

在混合编译过程中,Golang探针会对您的部分文件进行修改,以实现代码增强。编译完成后,一般情况下Golang探针会自动对修改过的文件进行清理,但在以下几种情况下需要您手动清理残留:

  • 编译未完成时强制停止或杀死了编译进程。

  • 编译工具由于panic等原因异常退出。

如果出现以上几种情形,您可以手动运行clean命令,恢复探针对代码的修改:

Linux/Darwin

./instgo clean

Windows

.\instgo.exe clean

删除instgo编译工具

如果您不再需要使用instgo编译工具,可以按照以下步骤彻底删除:

  1. 删除缓存目录(编译时通过--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
  2. 删除instgo工具。