本文提供在 Azure Kubernetes 服务(AKS)上设置和开始使用 Java 诊断工具(diag4j)的 Spring Boot 管理组件的分步说明。 按照以下步骤,可以有效地监视和诊断 Java 应用程序。
先决条件
- 具有必要权限的正在运行的 AKS 群集。
- 已安装并配置用于访问你的 AKS 群集的 kubectl。
- 已在本地计算机上安装 Helm。
- 在 AKS 中部署的 Java 应用程序。 有关详细信息,请参阅 将 Spring Boot 应用程序部署到 Azure Kubernetes 服务。 启用 Spring Boot 执行器终结点时,该工具效果更好。
- 开发人员对托管 diag4j 的命名空间的访问权限。 确保可以执行
kubectl port-forward
命令。
在群集中安装 diag4j
使用以下命令在所需命名空间中安装 diag4j:
helm install my-diag4j oci://diag4j.azurecr.io/helm/diag4j --version 1.1.5 -n <namespace> --create-namespace
创建 Spring Boot 管理组件
使用以下命令创建 Spring Boot Admin (SBA) 组件:
应用自定义资源(CR)以创建 Spring Boot 管理组件。 创建名为 spring-boot-admin.yaml的文件,然后添加以下内容。 将
<namespace>
替换为 Spring Boot 应用正在运行的命名空间。 SBA 将自动发现那些公开了执行器端点的应用程序。 其他项将在仪表板上显示DOWN
状态。apiVersion: diagtool4j.microsoft.com/v1alpha1 kind: Component metadata: name: spring-boot-admin namespace: <namespace> spec: type: SpringBootAdmin
使用以下命令来应用 CR:
kubectl apply -f spring-boot-admin.yaml
访问 diag4j 仪表板
使用以下步骤访问仪表板:
使用以下命令配置 SBA 服务器的本地端口转发:
kubectl port-forward svc/spring-boot-admin-azure-java -n <namespace> 8080:8080
导航到浏览器中
http://localhost:8080
以查看 SBA 仪表板。 应自动注册同一命名空间中的所有应用程序。
使用诊断功能
若要查看应用程序指标,请单击 SBA 仪表板中的应用程序。 可以查看实时指标,包括以下指标:
- CPU & 内存使用情况
- 垃圾回收 (GC) 状态
- 活动线程和环境变量
若要调整日志级别,请导航到 记录器 部分。 然后,可以动态修改特定包或类的日志级别,以便隔离问题。
若要执行高级诊断,请生成堆转储和线程转储以进行深入分析。