如何获得有关应用程序服务器中 Java HeapSpace 异常的指标

Gui*_*i13 6 java monitoring jmx prometheus

我们正在使用旧版本的 Payara,并使用 Prometheus JVM GC 导出器和内存导出器导出 JVM 指标。

在这些导出器中,我们无法访问 Java HeapSpace 异常的数量,这是 XMX 值不足的指标。

我有一个仪表板,可以在其中调查 Java 应用程序的内存状态,下面是“内存匮乏”应用程序的典型示例: 在此输入图像描述

我可以使用 GC 平均持续时间,但我宁愿有一个 Java 堆空间异常数量的“硬事实”计数器,这是内存不足的真正指标。由于我们在 Java 应用程序服务器中运行,因此我们没有 main() 来拦截所有 Java HeapSpace 异常(并且我们无法确定它没有在下面被拦截,因此计数器可能有问题) )。

你们是否也遇到过同样的问题,并找到了衡量这个问题的方法?我探索了 JMX 树,但没有找到决定性的指标。

bos*_*ski 0

由于您已经在使用 Prometheus 来监控您的应用程序,因此您可以使用mtail 导出器从日志中计算异常情况,并公开 Prometheus 进行抓取的指标。

mtail 是一种从应用程序日志中提取指标并导出到时间序列数据库或时间序列计算器以用于警报和仪表板的工具。它通过充当不导出自身内部状态(除了通过日志)的应用程序和现有监控系统之间的粘合剂来填补监控领域的空白,这样系统操作员就不需要修补这些应用程序来检测它们或编写自定义提取代码每一个这样的应用程序。