Java 任务控制的基于命令行的守护进程?备择方案?

Command-line-based daemon for Java Mission Control? Alternatives?

我被要求调查 Oracle Java Mission Control,以便可以监视服务器端 Java 应用程序并采取行动(例如,发出和记录警报,保存飞行记录)一定条件下。 Java Mission Control 的触发器系统,您可以在其中指定条件和操作,满足我们的需求,但它似乎取决于 GUI 应用程序 ("Oracle Java Mission Control") 运行,这意味着触发器不是监视 JMX 服务器的职责。是这样吗?有许多服务器通常通过终端访问...

有没有办法 运行 Java 任务控制作为守护进程,从终端会话,无人值守,同时保留并遵守任何指定的触发规则(例如,从 XML 文件)?

如果没有,是否有具有类似触发系统的竞争工具可以填补空白?

谢谢! :)

目前不可以,没有 GUI 就不能 运行 JMC。 你不是第一个想这样做的人。

一个选择是运行另一台机器上的JMC,并使其连接到许多服务器,这当然需要运行连接远程JMX代理等

我们一直在讨论服务器端 triggers/rules,但是据我所知,它不打算用于任何 JDK 版本。

可以从代码中转储飞行记录,因此您可以编写自己的小代理,使用 DiagnosticMBean 在同一台机器上的另一个 JVM 上或远程执行此操作。我很确定有些人是如何解决同类问题的。还可以在代码中解析和分析飞行记录。如果您对这种方法感兴趣,我确定周围有一些示例代码,当然它比 JMC 可以 运行 作为守护进程更有效:/

您可能应该看看 APM 工具,而不是使用 JMC 进行监控。该产品非常薄弱,引入了大量开销(使其不适合生产)并产生了很多问题。还有一些以开发人员为中心的工具可用。

APM:AppDynamics(最深)、New Relic、Ruxit Java 开发人员工具:Takipi、Fusion Reactor、Javasize