随着业务增长,推荐架构 Java 服务的压力也逐渐增加。为了及时处理应用程序性能问题,定位故障并分析原因,我们迫切需要一款能够提供全方位监控的工具。
我们对市面上应用较多的三款性能监控和管理方案进行了多方面比较,结果见下图
可以看出,三个方案对类似请求、JVM、OS 这种常规的监控都可以支持。但除此之外,根据推荐的实际需求,我们还需要具备历史信息存储和分析、创建自定义报警机制并为指标定义阈值,以及集群监控的能力,这样看下来只有 Stagemonitor 可以满足。因此,我们最终选定 Stagemonitor 作为推荐架构的 Java 性能监控解决方案。
一、简介
Stagemonitor(https://github.com/stagemonitor/stagemonitor )作为一个开源 Java 应用监控组件,提供了大量开发、生产和质量保证所需的工具,以全面监控 Java Web 应用程序的性能。
Stagemonitor 包含一个位于 Java 应用程序内部的代理程序,可以将指标和请求跟踪发送到 Elasticsearch、Graphite 和 InfluxDB 到中,并且内置了可视化分析指标和请求的仪表板模版,使它可以监控在多个服务器上运行的应用程序,并提供可视化分析。
二、应用详解
1. 安装
Stagemonitor 的安装很简单,简单配置下就可以使用,轻量级接入,开箱即用。具体步骤分为下面三步:
(1)加载 POM 依赖
Stagemonitor 监控组件可按需加载,在这里我们引入了 JVM、报警、日志、操作系统这些模块。
pom 文件如下,我们选用的是最 0.88.9 版本,下面的内容也是基于这个版本:
<dependency>
<groupId>org.stagemonitor</groupId>
<artifactId>stagemonitor-web-servlet</artifactId>
<version>0.88.9</version>
</dependency>
<!--stagemonitor 操作系统监控-->
<dependency>
<groupId>org.stagemonitor</groupId>
<artifactId>stagemonitor-os</artifactId>
<version>0.88.9</version>
</dependency>
<!