通过 JMX 监控 Glassfish 4 中的 HTTP 侦听器

问题描述 投票:0回答:1

我需要编写一个java监视器,作为Linux服务运行,以监视Glassfish 4(非常旧的版本)中http侦听器的状态。我的想法是能够通过 JMX 找到这些信息。通过 JMX 连接我的 jar。但是,即使连接 vi JConsole,我也无法确定应该监视哪些 MBean。我需要了解是否有任何听众仍然“卡住”或者没有被释放,仍然处于卡住且未返回的状态,就像处于一种“地狱边缘”。

您能帮我确定 Glassfish 4 中的哪些 MBeans 资源可用于执行此类监控吗?显然,所有存在的 http 监听器都必须被扫描。

谢谢大家。

glassfish monitoring jmx httplistener glassfish-4.1
1个回答
0
投票

您应该在 GlassFish 中启用“监控服务”并将“HTTP 服务”模块的级别设置为“高”。

然后您可以通过以下方式访问网络监听器的监控数据:

  • HTTP位于本地主机:4848/monitoring/domain/server/network/http-listener-1/thread-pool
  • 名称类似于“amx:pp=/mon/server-mon[server],type=thread-pool-mon,name=network/http-listener-1/thread-pool”的 JMX beans

监控 bean 提供了几个指标。要检测线程池是否卡住(意味着所有线程都卡住并且没有任务完成),您可以查看

currentthreadsbusy
totalexecutedtasks
属性。如果在较长时间内
currentthreadsbusy
高于 1 并且
totalexecutedtasks
没有增加,则意味着某些线程被卡住,正在处理任务,但没有任务完成。

免责声明:我的公司 OmniFish 由核心 GlassFish 项目开发人员为 GlassFish 提供商业支持。如果您需要更多帮助,请通过 https://omnifish.ee/contact-us/ 告诉我们。

© www.soinside.com 2019 - 2024. All rights reserved.