“facade webservice”的监控和日志记录策略?

时间:2009-10-06 08:09:05

标签: web-services monitoring jmx facade

我正在开发“facade webservice”,我需要重新思考其中的一部分。

上下文 - 我的webservice(我们称之为“FacadeWebservice”)是一个内部Web服务,用于隐藏我系统中的其他Web服务复杂性:

  • 我的 FacadeWebservice 调用 ExternalWebserviceA ExternalWebserviceB ,很快就需要调用 ExternalWebserviceC
  • ExternalWebserviceA ExternalWebserviceB ExternalWebserviceC 是外部网络服务;它们可能会发生变化和停机。

复杂性越来越高,我需要重新思考我监控FacadeWebservice和外部Web服务的方式。我需要:

  • 我的申请状态(通话次数,发送的错误代码)的完整视图
  • 很好地了解外部网络服务发生了什么(外部网络服务停机时间,我的网络服务收到的响应代码 - 例如,其中一个经常出现“技术错误/只读”一段时间)
  • 基本上是一个显示整体状态的简单视图/工具。
  • 几乎涵盖了服务可用性(所以我不需要像Nagios这样的应用程序),我想知道应用程序级别正在发生什么。

我正在考虑在我的FacadeWebservice中使用JMX - 这可能会为我提供一些不可思议的图表和统计数据。

这是要走的路吗?或者一个好的日志记录策略足以完成这项任务(即使外部变化是我问题的重要部分)?

关于这个问题的任何建议或经验?

3 个答案:

答案 0 :(得分:2)

JMX的优点是您可以运行命令并查询复杂数据。

缺点是标准控制台(与Java版本相配)非常有限。它可以做任何事情,但没有什么好。

我的解决方案是创建一个显示该数据的简单HTML页面。它具有以下优点:

  1. 我可以轻松地格式化我希望看到对我最有用的数据。

  2. 我可以使用任何网页浏览器查看(在家,网吧,手机)

  3. 主要缺点是显示复杂数据(如图形和趋势)并不容易。

    [EDIT]也就是说,JMX支持显示图形和趋势但它没有内存。因此,您了解自启动JMX控制台以来所发生的一切。如果您需要能够查看过去,则必须始终在某处运行JMX控制台。

    在这种情况下,将图形渲染模块添加到“简单的HTML页面”可能更简单,您可以在其中绘制所需的内容。

答案 1 :(得分:2)

这是一个非常复杂的要求,但您可以尝试JavaMelody,http://javamelody.googlecode.com

  • “应用程序状态(呼叫次数,发送的错误代码)”:是,通过http呼叫数和http错误
  • “external webservices”统计信息:是的,如果使用EJB3或Spring,可以通过拦截器使用JavaMelody完成
  • JavaMelody在应用程序级别进行监控,它具有“图表和统计信息”:请参阅屏幕截图

答案 2 :(得分:1)

我不知道这是否是一个选项,但看起来你需要ESB组件提供的一些功能:

  • Web服务的聚合,组合和编排
  • 监控(呼叫次数,代理Web服务的健康状况等)
  • 管理控制台
  • 等等

也许您应该查看可以通过JMX监控的ServiceMix(参见Using a JMX Console with ServiceMix):

alt text
(来源:apache.org

或其他商业工具(Mule ESB Enterprise ALSB Oracle Service Bus ...)。