我们使用 Equinox 作为我们应用程序的运行时。 OSGi 模块化很棒,但我怀念 JBoss 时代的一件事:监控设施。 JMX 是 JVM 中的监控标准,但 Equinox 似乎没有为它提供太多内置支持。
除了春分 Resource Monitoring项目,自 2007 年以来似乎已经过时(并且没有退出孵化),有哪些选择?
其他 OSGi/Equinox 采纳者使用什么来监控基于 OSGi 的应用程序?其他 OSGi 实现呢?这对于触发迁移非常重要,例如Felix+Karaf 会提供更好的监控支持。
最佳答案
有几个选项可用。 Gemini Management为框架的 JMX 监视提供 OSGi 标准的实现。
如果您想监控 Servlet 环境,您需要查看 Servlet 引擎提供的选项。我们在 Gyrex 中包含 Jetty它提供了几个选项。我们还添加了更多的 JMX bean 来测量平均请求时间、关于最后一个错误的信息等等。
实现您自己的 JMX bean 实际上并不困难。您可以从代码中的任何位置调用 ManagementFactory.getPlatformMBeanServer().registerMBean(...)
来注册 bean。看看our service tracker implementation它为特定类型的每个已注册服务对象注册一个 JMX 监视 bean。
关于java - 在 OSGi/Equinox 上监控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11451810/