SpringSource应用管理套件(AMS)发布

工程 | Jennifer Hickey | 2008年3月31日 | ...

自SpringSource与Hyperic合作推出我们的应用管理套件(AMS)产品以来,已经忙碌了好几个月。我很高兴宣布SpringSource AMS测试版现已向所有人开放。请花点时间评估该软件并在测试版论坛上发布您的想法。我们致力于为Spring驱动的应用程序提供最佳的应用管理体验,非常感谢您的反馈!

那些在12月The Spring Experience大会上对SpringSource AMS表示兴趣的人,都收到了一封宣布其测试版发布的电子邮件。以下是该邮件中介绍SpringSource AMS并概述其部分附加功能的摘录

SpringSource应用管理套件(AMS)是一个全面的企业应用管理工具。它旨在管理和监控所有Spring驱动的应用、Spring运行时以及各种平台和应用服务器。SpringSource AMS建立在Hyperic的HQ企业版之上,HQ企业版是一个成熟的系统和应用管理解决方案。SpringSource AMS的附加功能包括: - 部署时自动发现Spring驱动的应用 - 自动监控应用中运行的各种Spring、第三方和原型化组件。SpringSource AMS对Spring框架中的各种组件进行检测。只需将检测过的jar文件放入您的应用中,SpringSource AMS就会开始监控您的应用并通过JMX暴露统计数据。无需额外的配置步骤! - 自动监控Spring运行时组件,包括应用上下文和bean工厂

在这篇博客中,我将更详细地解释这些功能,谈论它们背后的技术,并向您展示如何使用SpringSource AMS来监控您的应用。

SpringSource AMS的关键功能

应用自动发现 SpringSource AMS在部署时自动发现您的Web和独立应用。它会评估通过ApplicationContext创建的每个bean。如果它知道如何管理和监控该bean,它就会将该bean导出为受管资源。此外,还有一些组件(例如DispatcherServlet),即使它们是在ApplicationContext之外创建的,SpringSource AMS也能通过使用AspectJ切面来建议创建,从而发现它们。受管Spring框架组件的完整列表可在AMS产品文档中找到。

SpringSource AMS对您的应用及其包含的ManagedResource进行建模。每个ManagedResource都有一组固定的属性、控制操作和度量。这形成了一个简单、一致的库存模型,描述了您的整个应用。此模型会自动导出到JMX ModelMBeans。然后,这些MBeans可以被任何JMX客户端访问,包括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还能够监控您的一些原型化组件——那些标记为@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-instrumented-management.zip中包含的检测版本替换您现有的Spring Framework jar。您还需要将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驱动应用。您应该在仪表板上的自动发现端口中看到发现的服务器(通过登录http://server:7080访问),如下图所示

AMS Server Discovery

选择“添加到库存”按钮将服务器添加到库存。这是您监控的每个服务器的一次性步骤。

服务器添加到库存后,您可以从导航菜单中选择“资源->浏览”来访问它。配置好Tomcat、WebLogic、WebSphere或Spring应用服务器的连接属性后,SpringSource AMS应该会开始发现您的应用服务。它们将出现在“资源”视图下的“服务”中,并将出现在服务器的“监控”和“库存”选项卡中,如下图所示

AMS Service Inventory

服务名称将包含应用名称,以方便分组。要将您的服务分组到一个应用中以便于查看,请从导航菜单中选择“资源”->“浏览”。然后从“工具”菜单中选择“新建应用”并创建一个新应用。

在应用程序视图中,选择“服务”楼层选项卡,然后点击“添加到列表”。然后您应该会看到一个服务列表。您可以根据应用程序名称过滤服务,并将它们添加到您的应用程序中,如下图所示

AMS Application

您现在可以开始查看指标、定义警报、运行报告等等!请查阅测试版下载中包含的AMS文档手册,以获取所有AMS功能的全面指南。并请继续关注更多博客文章,重点介绍您可以使用AMS来防止应用程序停机、监控性能、强制执行服务级别协议等方法。

下一步是什么?

SpringSource AMS的未来还有很多。未来会推出更多Spring产品组合的检测版本。Spring Security和Spring Web Flow的检测版本应该会在Spring Source AMS的最终1.0版本中提供。此外,还会将更多第三方组件纳入应用程序模型,例如Apache ActiveMQ和Quartz。

我们需要您的反馈!您希望SpringSource AMS自动暴露哪些类型的管理数据?您希望在仪表板中看到特定的视图或报告吗?您希望产品具有特定的功能吗?作为唯一专注于Spring应用的应用程序管理解决方案,我们希望为开发人员和运维人员提供尽可能强大且易于使用的产品!

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有