在 Azure Kubernetes 服务上开始使用 Java 诊断工具 (diag4j) 的 Spring Boot Admin 组件

本文提供在 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) 组件:

  1. 应用自定义资源(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
    
  2. 使用以下命令来应用 CR:

    kubectl apply -f spring-boot-admin.yaml
    

访问 diag4j 仪表板

使用以下步骤访问仪表板:

  1. 使用以下命令配置 SBA 服务器的本地端口转发:

    kubectl port-forward svc/spring-boot-admin-azure-java -n <namespace> 8080:8080
    
  2. 导航到浏览器中 http://localhost:8080 以查看 SBA 仪表板。 应自动注册同一命名空间中的所有应用程序。

    Spring Boot 管理仪表板的屏幕截图。

使用诊断功能

若要查看应用程序指标,请单击 SBA 仪表板中的应用程序。 可以查看实时指标,包括以下指标:

  • CPU & 内存使用情况
  • 垃圾回收 (GC) 状态
  • 活动线程和环境变量

显示应用程序指标的 Spring Boot 管理仪表板页的屏幕截图。

若要调整日志级别,请导航到 记录器 部分。 然后,可以动态修改特定包或类的日志级别,以便隔离问题。

显示“记录器”部分的 Spring Boot 管理仪表板页的屏幕截图。

若要执行高级诊断,请生成堆转储和线程转储以进行深入分析。

下一步

Java 诊断代理入门