领先一步
VMware 提供培训和认证,助您加速进步。
了解更多自从 SpringSource 与 Hyperic 合作将我们的应用管理套件 (AMS) 产品推向市场以来,已经过去了几个忙碌的月份。我很高兴地宣布,SpringSource AMS 测试版现已向所有人开放。请花点时间评估该软件,并在测试版论坛上发表您的想法。我们致力于为 Spring 驱动的应用提供最佳的应用管理体验,非常感谢您的反馈!
去年 12 月在 The Spring Experience 活动中对 SpringSource AMS 表示兴趣的人们收到了一封宣布测试版发布的电子邮件。以下是该电子邮件的摘录,介绍了 SpringSource AMS 并概述了它的一些附加功能
SpringSource 应用管理套件 (AMS) 是一款全面的企业应用管理工具。它旨在管理和监控所有 Spring 驱动的应用、Spring 运行时以及各种平台和应用服务器。SpringSource AMS 构建在 Hyperic 的 HQ 企业版之上,这是一个经过验证的系统和应用管理解决方案。SpringSource AMS 的附加功能包括:- 在部署时自动发现 Spring 驱动的应用 - 自动监控应用中运行的各种 Spring、第三方和带有特定注解(stereotyped)的组件。SpringSource AMS 对 Spring Framework 中的多种组件进行了插桩。只需将经过插桩的 jar 文件放入您的应用,SpringSource AMS 就会开始监控您的应用并通 JMX 暴露统计信息。无需额外的配置步骤! - 自动监控 Spring 运行时的组件,包括应用上下文和 bean 工厂
在这篇博客中,我将更详细地解释这些功能,探讨它们背后的技术,并向您展示如何使用 SpringSource AMS 来监控您的应用。
应用自动发现 SpringSource AMS 会在部署时自动发现您的 Web 和独立应用。它会评估通过 ApplicationContext 创建的每个 bean。如果它知道如何管理和监控该 bean,就会将该 bean 导出为受管资源。此外,SpringSource AMS 还能通过使用 AspectJ 切面来通知创建过程,从而发现一些即使在 ApplicationContext 外部创建的组件(例如 DispatcherServlet)。受管 Spring Framework 组件的完整列表可以在 AMS 产品文档中找到。
SpringSource AMS 对您的应用及其包含的 ManagedResources 进行建模。每个 ManagedResource 都有一组固定的属性 (Attributes)、控制操作 (Control Operations) 和指标 (Metrics)。这构建了一个简单、一致的库存模型,能够描述您的整个应用。此模型会自动导出到 JMX ModelMBeans。然后,任何 JMX 客户端都可以访问这些 MBeans,包括 SpringSource AMS 代理,该代理从您的 Spring 驱动的应用中检索数据,并在 SpringSource AMS 仪表板上显示。
SpringSource AMS 仪表板目前显示部署在 Tomcat、WebLogic 和 WebSphere 服务器以及独立应用中的 Spring 受管资源。对于 JBoss 服务器的 Spring 受管资源显示计划在 SpringSource AMS 的最终 1.0 版本中实现。如果您正在使用不同的服务器并在其上部署单个应用,通过在服务器启动时包含 "spring.managed.application.name" 系统属性,仍有可能在仪表板中查看您的服务,这将导致发现一个名为 "Spring Application" 的服务器。如果您希望在未来看到对其他服务器的支持,请在测试版论坛上告知我们。
监控 SpringSource AMS 大部分的操作监控是利用编译时织入的 AspectJ 切面来实现的,用于通知被监控的方法。这只会给方法执行带来非常小的开销(在大多数情况下,只需要在方法执行前后快速获取时间戳)。对于吞吐量和平均执行时间等指标,跨给定方法执行的指标数据聚合是异步完成的。
SpringSource AMS 还能够监控您的一些带有特定注解(stereotyped)的组件——那些标记有 @Controller、@Repository、@Transactional、@Component 和 @Service 的组件。发现这些组件后,SpringSource AMS 会将它们包装在 Spring AOP 代理中(或向现有代理添加 MethodInterceptor)。该代理用于收集组件中每个方法的执行时间(以毫秒为单位)。然后,每个方法的平均执行时间通过导出到 JMX 的库存模型进行提供。
为您的 Spring 驱动应用进行插桩 SpringSource AMS 包含一个经过插桩处理的 Spring Framework 2.5.2 版本(spring-framework-instrumented-management.zip),供您在应用中使用。Spring Framework 的组件通过结合代码钩子和使用 AspectJ 编译器进行编译时织入的方式进行管理插桩。
要为您的应用进行插桩,只需将现有的 Spring Framework jar 包替换为 spring-framework-instrumented-management.zip 中包含的插桩版本即可。您还需要将 springsource-ams-instrumentation-agent.zip 中的 jar 包添加到您的类路径中。有关更多详细信息,请参阅 AMS 产品文档中的“使用 AMS 为您的应用进行管理插桩”。
如果您正在运行一个容器,该容器已经暴露了 JMX MBeanServer 和远程 JMX 连接器,例如 WebLogic 或 WebSphere,那么您只需执行这些步骤即可!Tomcat 用户可以按照此处概述的方式快速配置 Tomcat 进行监控。SpringSource AMS 也适用于独立应用,您可以通过添加与 Tomcat 设置中建议的相同系统属性,或使用 Spring JMX 类(如 MBeanServerFactoryBean 和 ConnectorServerFactoryBean)来启用 JMX 连接。
如果您正在运行独立应用,则需要包含 "spring.managed.application.name" 系统属性,以便 SpringSource AMS 知道您的应用名称(例如,-Dspring.managed.application.name=PetClinic)。 使用 SpringSource AMS 仪表板 使用 SpringSource AMS 仪表板,可以全面了解您的应用以及它们运行的平台和容器的健康状况——无论是单个节点还是整个集群!只需按照 springsource-ams-installer 分发包中包含的安装指南中的说明进行操作,即可启动并运行 AMS 服务器和代理。
AMS 代理会在启动时自动发现您的应用服务器或独立的 Spring 驱动应用。您应该在仪表板的自动发现 portlet 中看到发现的服务器(登录 http://server:7080 即可访问),如下图所示
选择“添加到库存”按钮将服务器添加到库存。这是您监控的每个服务器的一次性步骤。
服务器添加到库存后,您可以从导航菜单中选择“资源”->“浏览”来访问它。一旦您为 Tomcat、WebLogic、WebSphere 或 Spring 应用服务器配置了连接属性,SpringSource AMS 应该会开始发现您的应用服务。它们将出现在“资源”视图的“服务”下,也会出现在服务器的“监控”和“库存”标签页中,如下图所示
服务名称将包含应用名称,以便于分组。要将您的服务分组到一个应用中以便于查看,请从导航菜单中选择“资源”->“浏览”。然后从“工具”菜单中选择“新建应用”,创建一个新应用。
在应用视图中,选择“服务”楼层标签页并单击“添加到列表”。您应该会看到一个服务列表。您可以根据应用名称过滤服务,并将其添加到您的应用中,如下图所示
您现在可以开始查看指标、定义警报、运行报告等等!请查阅测试版下载中包含的 AMS 文档手册,获取所有 AMS 功能的全面指南。并请继续关注更多博客文章,我们将重点介绍您可以使用 AMS 来防止应用停机、监控性能、强制执行服务级别协议等方面的各种方式。
我们需要您的反馈!您希望 SpringSource AMS 自动暴露哪些类型的管理数据?您希望在仪表板中看到哪些特定的视图或报告?您希望产品具备哪些特定的功能?作为唯一专注于 Spring 应用的应用管理解决方案,我们希望它对开发人员和运维人员来说都能尽可能强大且易于使用!