问题描述
如何使用 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。