Azure 容器应用中 Java 应用的 Java 指标

Java 虚拟机 (JVM) 指标对于监视 Java 应用程序的运行状况和性能至关重要。 所收集的数据包括对内存使用情况、垃圾回收、JVM 线程计数的见解。 使用以下指标来帮助确保应用程序的运行状况和稳定性。

收集的指标

类别 标题 说明 指标 ID Unit
Java jvm.memory.total.used 堆或非堆使用的内存总量 JvmMemoryTotalUsed bytes
Java jvm.memory.total.committed 保证可用于堆或非堆的内存总量 JvmMemoryTotalCommitted bytes
Java jvm.memory.total.limit 堆或非堆的最大可获取内存总量 JvmMemoryTotalLimit bytes
Java jvm.memory.used 每个池使用的内存量 JvmMemoryUsed bytes
Java jvm.memory.committed 保证可用于每个池的内存量 JvmMemoryCommitted bytes
Java jvm.memory.limit 每个池的最大可获取内存量 JvmMemoryLimit bytes
Java jvm.buffer.memory.usage 缓冲区使用的内存量,例如直接内存 JvmBufferMemoryUsage bytes
Java jvm.buffer.memory.limit 缓冲区总内存容量 JvmBufferMemoryLimit bytes
Java jvm.buffer.count 内存池中的缓冲区数 JvmBufferCount 不适用
Java jvm.gc.count JVM 垃圾回收操作计数 JvmGcCount 不适用
Java jvm.gc.duration JVM 垃圾回收操作的持续时间 JvmGcDuration 毫秒
Java jvm.thread.count 正在执行的平台线程数 JvmThreadCount 不适用

配置

要使 Java 指标集合可供应用使用,必须创建具有一些特定设置的容器应用。

在“创建”窗口中,如果为“部署源”选择“容器映像”选项,则可以访问特定于堆栈的功能。

在“特定于开发堆栈的功能”下,为“开发堆栈”选择“Java”。

Azure 门户的屏幕截图,可在其中为容器应用选择特定于 Java 的功能。

选择 Java 开发堆栈后,将会显示“自定义应用的 Java 功能”窗口。 在“Java 功能”标签旁边,选择“JVM 核心指标”。

有两个 CLI 选项与应用运行时和 Java 指标相关:

选项 说明
--runtime 容器应用的运行时。 支持的值为 genericjava
--enable-java-metrics 用于启用或禁用应用的 Java 指标的布尔选项。 仅适用于 Java 运行时。

注意

--enable-java-metrics=<true|false> 参数可隐式设置 --runtime=java--runtime=generic 参数会重置所有 java 运行时信息。

启用 Java 指标

可以通过 createupdate 命令启用 Java 指标。

az containerapp create \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --image <CONTAINER_IMAGE_LOCATION> \
  --enable-java-metrics=true

查看 Java 指标

使用以下步骤查看容器应用的指标可视化效果。

  1. 转到 Azure 门户。

  2. 转到容器应用。

  3. 在“监视”部分下,选择“指标” 。

    系统会在此处显示一个图表,用于绘制在应用程序中跟踪的指标。

    Java 指标可视化效果的屏幕截图。

可以在 Azure Monitor 上看到 Java 指标名称,但除非使用 --enable-java-metrics 参数来启用 Java 指标,否则数据集会报告为空。