OpenShift 中缺少 Payara 服务器的 AMX http-listener 线程池 MBean

Missing AMX http-listener threadpool MBean of the Payara Server in OpenShift

如标题所示,我正在尝试从 Payara 服务器(而不是 micro)读取 AMX mbean。具体是bean:amx:pp=/mon/server-mon[server],type=thread-pool-mon,name=network/http-listener-2/thread-pool.

这在本地有效,我检查了那里的 bean(使用 JConsole)并且还可以读取它的值。但是如果它被部署到 OpenShift,这个 bean 就不再存在了。只剩下 admin-listener 和 monitoring-listener 的豆子了。通过类似于 JConsole 的 OpenShift Jolokia 界面进行检查。

即使缺少 bean,服务器也会响应。

在本地和 OpenShift 中,Payara 的监控级别 "Thread Pool" 都设置为 HIGH。

我注意到非常奇怪的行为,有些部署有 mbean 而没有更改图像。这种行为无法真正重现,有些部署有 bean,有些没有。

我有点迷路了,有人知道为什么豆子不在那里吗?如果有任何帮助,我将不胜感激。

编辑:
我添加了一张带有监控级别的图像: Monitoring Levels

我遇到了完全相同的问题并找到了(不幸的是)解决方法。我们在版本 4.1.2.184 中使用 Payara,在版本 3.6.173.

中使用 OpenShift master

一些额外的观察:

  1. 通过在 Http service 对象中将监控级别设置为 HIGH 来启用监控模块 amx:pp=/mon/server-mon[server],type=thread-pool-mon,而不是 Thread pool。后者负责执行器服务,即amx:pp=/mon/server-mon[server],type=thread-pool-mon.
  2. 当监控级别设置为HIGH时,模块丢失的事件仅在启动后设置监控级别时发生。

以上自然得出一个结论,当你将Http service的监控级别设置为OFF,然后紧接着设置为HIGH,模块出现并提供正确的统计数据。 我们案例中的解决方法是在 Payara 启动后,针对我们感兴趣的每个模块以编程方式执行这些步骤,这些模块的监控级别已经设置为 HIGH

不幸的是,我们仍然不知道根本原因。