领先一步
VMware 提供培训和认证,助您加速进步。
了解更多我们都喜欢用最新最好的技术构建应用程序,但归根结底,我们是为了交付实现业务目标的应用程序而获得报酬的。我们在每个开发迭代中都专注于如何最好地实现这些目标,但我们如何知道最新的迭代是否实现了其目标?最新的版本是否影响了应用程序正在实现的现有业务目标?
SpringSource 通过提供 Spring 仪器化功能,让您能够深入了解应用程序,并通过显示趋势的监控工具和允许您将数据导出给管理团队的报告工具来提供这种能力。
此产品随附的 org.springframework.<module>.instrumented jar 文件都是开源 Spring Framework 中对应文件的编译时织入版本。例如,org.springframework.beans.instrumented jar 文件是开源 Spring Framework 中随附的 org.springframework.beans jar 文件的直接替换项。
已仪器化的 Spring Framework 通过拦截 AbstractApplicationContext 的 refresh 方法来自动发现应用程序。通过 AbstractApplicationContext 创建的任何 bean 都将被发现为一个托管资源,前提是已仪器化组件知道如何管理和监控它。一些在 ApplicationContext 之外创建的组件也将被自动发现。当 AbstractApplicationContext 关闭时,其关联的托管资源将被卸载。
一旦托管资源被自动发现,Spring Framework 仪器化会自动创建代表其发现的每个应用程序资源的 JMX ModelMBean,并将这些 ModelMBean 注册到自动检测到的 MBeanServer 中。这些 MBean 包含预先确定的属性,这些属性代表被管理资源的度量或属性,以及提供被管理资源运行时控制的操作。
已仪器化的 Spring Framework 使用编译时织入的方面和对现有 Spring Framework 代码的钩子相结合的方式来监控其大多数托管资源。已仪器化的 Spring Framework 还使用 Spring AOP 代理来监控您应用程序中被标记为 @Controller、@Transactional、@Service、@Repository 或 @Component 的组件的方法执行。
我们不将已仪器化的 Spring Framework 仅限于核心 Spring Framework,还将其功能提供给 Spring Web Flow、Spring Security 和 Spring Web Services。Spring 3.0 还引入了额外的注解,以实现高级度量捕获。我们希望在未来的博客中更详细地介绍这一点。
HQ 的自动发现功能由 Hyperic 的系统信息收集器(SIGAR)提供支持,这是一个用于收集软件清单数据的跨平台 API。HQ 代理使用 SIGAR 来发现广泛的系统信息,包括 CPU 速度、内存大小、操作系统版本、主机名和 IP 地址。自动发现适用于所有主要平台 — Unix、Linux、Windows、Mac OSX、Solaris、HP-UX 和 AIX。
与所有 SpringSource 产品一样,Hyperic HQ 是建立在开源基础之上的。由于这篇博客专注于高级报告,其最终结果将是一份能让经理理解的报告,我将使用 Hyperic 企业版。您可以在 Hyperic 企业版 和 Hyperic HQ 开源版 之间找到完整的详细信息,网址为 http://www.hyperic.com。
如果您正在使用已仪器化的 Spring Framework,它将自动发现您应用程序中的内部度量。这包括关于 Spring Core、Spring DAO、Spring ORM、Spring JEE 集成、Spring MVC 的内部度量以及您使用已仪器化 Spring Framework 注解的应用程序度量。
例如,我将已仪器化的 Spring Framework 添加到 Spring Travel 演示应用程序中,将其部署在 Tomcat 中,并使用 Apache jMeter 对系统施加负载。以下是我使用 HQ 自动检测到的 Spring ORM 的 Hibernate 度量的屏幕截图。
本博客的重点在于获取业务度量。已仪器化的 Spring Framework 会自动公开用 @Service 注解的所有公共方法。这意味着我的服务中的 "saveBooking" 方法会自动暴露
太棒了,我现在能够衡量最新开发迭代对业务造成的影响。此外,从运营角度来看,我现在可以衡量环境中每台机器的业务价值。请记住,我所做的只是引入了已仪器化的 Spring Framework,剩下的 Hyperic 就完成了。哇!
正如我们所见,我们从环境中获得了大量有价值的数据。我该如何将其展示给我的经理?
展示经理视图
Hyperic IQ 是一个报告和智能平台,它将 Hyperic HQ 收集的数据转化为业务用户可以用来分析、评估、规划和制定战略决策的系统智能。这可以应用于任何数据中心的任何资源的任何度量,并且通过在 Hyperic IQ 中进行几次点击,我就可以获得
也许以折线图的形式展示效果更好(您怎么看??)
正如您所见,预订数量开始下降。这可能是由于这些时间段内用户的自然下降,但是,由于 Hyperic HQ 正在监控整个环境,我们可以很容易地检查这种下降是由于应用程序内部还是基础设施本身的问题。
我现在可以让 IQ 每周将此报告的 PDF 发送给我的管理团队,每个人都能完全理解应用程序正在提供的真实业务价值。
如果您有兴趣了解更多信息,欢迎参加我们每周四上午 11 点 PDT / 下午 2 点 EDT 的免费每周 HQ 直播演示。您也可以通过下载试用版在您自己的环境中试用 Hyperic HQ 企业版。
我写这篇博客花费的时间比从我的应用程序中提取这些数据所需的时间还要长。我引入了已仪器化的 Spring Framework,剩下的 Hyperic 就完成了。太棒了!