如何在 Azure Monitor 中监视 Java 堆使用情况

问题描述

如何使用 Azure Monitor 监控 Java 应用程序的堆内存使用情况,并在使用率达到 90% 时生成警报?

貌似可以用Zabbix等监控JVM的Heap,但是用Azure Monitor能不能做同样的监控?

解决方法

Azure 推荐的方法是使用 Azure Monitor Application Insights Java 3.0,它不需要对您的应用程序进行任何代码更改。您可以查看包含堆内存的详细配置(尤其是 JMX 计数器)here

<PerformanceCounters>
      <Jmx>
        <Add objectName="java.lang:type=ClassLoading" attribute="TotalLoadedClassCount" displayName="Loaded Class Count"/>
        <Add objectName="java.lang:type=Memory" attribute="HeapMemoryUsage.used" displayName="Heap Memory Usage-used" type="composite"/>
      </Jmx>
    </PerformanceCounters>

要添加关于这些指标的警报,您可以查阅文档 here