我知道我们可以使用MBean来获取WebLogic的状态。例如,使用JDBCDataSourceRuntimeMBean(http://download.oracle.com/docs/cd/E15523_01/apirefs.1111/e13951/core/index.html)来获取JDBC状态。并使用其他MBean,我们也可以获得EJB,WebService,...的状态。
但这只是当时的状态,如果我想监视历史记录,例如,我想知道每个EJB事务的详细运行时间,是否可能?
目的是我们希望监控我们的应用程序性能,一个明显的解决方案是在我们的EJB中添加日志并解析它。但是如果我们可以在没有编写代码的情况下从服务器获取它,那就更好了。
另一个问题是,因为JMX是一个标准,JBoss支持它。如果解决方案可以支持WebLogic和JBoss会更好。
我阅读了WebLogic文档,发现WLDF很好。
以下是官方文件和教程。
收集的指标
仪表:
唯一不方便的是切入点的语法。如果我想监视一个类中的几个方法,我需要编写几个wldf-instrumentation-monitor标记。除非我能找到一个外卡模式来描述它们。
答案 0 :(得分:2)
这绝对是可能的,但您可能更容易使用现有的WLDF框架 - 您可以定义要跟踪的MBean,将历史数据存储到文件存储中并在控制台中绘制它们。
我不建议记录调试语句的路由,尤其是在生产环境中。根据系统的吞吐量,日志记录中的额外I / O可能会产生很大的开销。
JMX是访问运行时bean的标准方法,但它们在WebLogic和JBoss之间会有所不同。根据我的个人经验,除非您使用CA Wily的Introscope等企业解决方案,否则最好使用专门为应用程序服务器编写的各个程序,因为它们通常会突出显示您可能感兴趣的其他指标(如果您有是时候遍历所有MBean并确定它们的用途,这可能并不重要。)
希望有所帮助!