Azure Kubernetes 服务上的 Java 诊断工具 (diag4j)

本文概述了 Azure Kubernetes 服务(AKS)上的 Java 诊断工具(diag4j)。 diag4j 工具是一种轻型的非侵入性监视和诊断解决方案,适用于在 Azure Kubernetes 服务上运行的 Java 应用程序。

主要优势

diag4j 工具提供以下主要优势:

  • 轻型和非侵入性:利用 Spring Boot Admin(SBA)和 Java 附加代理,该工具资源高效,不需要对应用程序进行深入修改。
  • 自动 Kubernetes 集成:该工具会自动发现具有公开的管理终结点的 Pod,并在 SBA 仪表板上将其列出。
  • 实时指标和诊断:该工具显示实时应用程序指标、垃圾回收(GC)状态和环境变量。 还可以动态调整日志级别,以便更深入地了解特定问题。
  • 高级诊断:该工具提供增强的诊断功能,例如堆栈跟踪检查、查看局部变量、生成堆和线程转储,以及动态注入日志进行故障排除。
  • IDE 兼容性:该工具与 IDE 集成以启用调试,而无需重新生成或重新部署应用程序,从而简化故障排除。

建筑

diag4j 工具由以下组件组成:

  • Spring Boot Admin 服务器,在其命名空间中具有只读角色,用于自动发现和监控暴露执行器终结点的 Pod。
  • Java 附加代理是附加到正在运行的 Java 进程的轻型 Java 代理,无需重启应用程序即可启用诊断功能。

为了在当前里程碑期间保持安全性,不会公开这些组件。 可以通过 kubectl port-forward 命令访问该工具。

diag4j 架构图。

后续步骤