问题现象
阿里云容器服务Kubernetes版集群中的Java应用安装Agent后,应用监控没有数据。
可能原因
应用所在Pod未被注入arms-init-container、应用YAML文件中无Labels注解以及STS服务未正确授权等原因都可能导致应用监控无数据。
解决方案
- 登录容器服务管理控制台。
- 在左侧导航栏选择集群,在集群列表页面上的目标集群右侧操作列单击应用管理。
- 在容器组页签顶部选择您的应用所在的命名空间,然后单击目标应用右侧单击编辑。
- 在编辑YAML对话框中查看YAML文件中是否存在initContainers。
- 如果不存在,则说明未被注入arms-init-container,执行步骤5。
- 如果存在,则说明已被注入arms-init-container,执行步骤8。
- 在容器组页签顶部选择命名空间为ack-onepilot。查看Pod列表中是否存在名称前缀为ack-onepilot的Pod。
- 在无状态或有状态页签目标应用右侧操作列中选择,在编辑YAML对话框查看YAML文件中是否存在以下Labels注解。
labels:
armsPilotAutoEnable: "on"
armsPilotCreateAppName: "<your-deployment-name>" //请将<your-deployment-name>替换为您的应用名称。
one-agent.jdk.version: "OpenJDK11" //如果应用的JDK版本是JDK11,则需要配置此参数。
- 如果存在,则执行步骤7。
- 如果不存在,则在编辑YAML对话框中的spec > template > metadata层级下添加以上Labels注解,然后单击更新。
- 在容器组页签目标应用右侧单击日志,查看ack-onepilot的Pod日志是否报STS错误,即提示
"Message":"STS错误"
。
- 如果报STS错误,则需为应用所在集群授权,并重启应用所在Pod。具体操作,请参见为容器服务Kubernetes版授权。
- 如果未报STS错误,则联系ARMS钉钉服务账号:arms160804。
- 在容器组页签目标应用右侧单击编辑,在编辑YAML对话框中查看YAML文件中是否存在以下javaagent参数。
-javaagent:/home/admin/.opt/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar