五大最佳开源java性能监控工具
如果你正在寻找性能监控工具,不妨看看以下推荐的这五款开源工具,这些工具目前已经可以替代付费工具了,你可以看看是否是你的最佳选择。本文推荐的五款开源工具目前是开源社区中最受欢迎的。
1. Stagemonitor
Stagemonitor提供了一个Java监控代理程序,它是使用集群应用程序堆栈构建的。意思是它旨在监控在多个服务器上运行的应用程序。该工具与时间序列数据库(TSDB)集成。此工具已针对时间序列数据以及按时间索引的数字数组进行优化。包括以下数据库:Elasticsearch,Graphite和InfluxDB。
Architecture:
Stagemonitor包含一个位于Java应用程序中的代理,可将度量标准和请求跟踪发送到中央数据库。该工具只需要一个实例就可以监控所有应用程序,实例和主机,并且可以部署在你自己的数据中心内。
在监控方面,你可以从集群或直接从开发人员服务器查看历史或实时数据,创建自定义报警机制,并为每个指标定义阈值。
Stagemonitor包括一个仪表板,可以可视化分析你感兴趣的不同指标和请求。你可以自定义仪表板,编写自定义插件,甚至使用第三方插件。它提供了一个无需后端的浏览器窗口小部件,自动注入受监控的网页。在官方文档中,Stagemonitor还支持不基于servlet的应用程序。
如果你对ELK堆栈很熟悉,该工具绝对值得一试。
2. Pinpoint
Pinpoint是用于大规模分布式系统的APM工具。它是在Dapper(一个由Google构建的分布式系统跟踪基础架构)之后构建的,为开发人员提供有关复杂分布式系统行为的更多信息。
Architecture:
该工具通过在分布式应用程序中跟踪事务,帮助分析系统的整体结构及其中的组件是如何互相影响的。它旨在解释每个事务如何执行,跟踪组件之间的行为,指出发生问题的区域和潜在的瓶颈。
仪表板帮助可视化组件如何连接,并允许用户实时监控应用程序内的活动线程。Pinpoint还允许用户查看请求计数和响应模式,以便及时识别潜在问题。你可以查看包括CPU使用率,内存/垃圾回收和JVM参数等详细信息。
如果你听说过Dapper,或者想要监控和分析复杂的分布式系统,你一定要试试这个工具。
3、MoSKito
MoSKito内包含三种工具:MoSKito-Essential:最基本的独立项目。它是MoSKito功能的核心,可以监控应用程序。MoSKito-Central:用于存储性能数据的集中存储服务器。MoSKito-Crotrol:用于监视多节点Web应用程序性能的工具。
使用该工具之前,你只需将.jar文件放到WEB-INF / lib文件夹中,或者在web.xml文件中新建一个节点。一旦工具启动并运行,它就会开始收集性能数据,进行实时分析,同时将数据存储在本地。
该工具会收集所有的性能指标,如线程,内存,缓存,存储,服务,注册,转换,SQL,负载分布等。它不需要更改代码,本身就支持所有主流的应用程序服务器(Tomcat,Jetty,JBoss,WebLogic)。
你可以根据系统了解何时达到阈值,以及被监控用户的操作记录。除了基于Web的仪表板,该工具还提供了一个移动应用程序来监控应用程序性能。
▲MoSKito’s Essential
MoSKito于2007年首次推出,现在它是一个众所周知的稳定的工具,由团队和社区共同支持,包括付费支持选项,这也是该开源工具的巨大优势。
4. Glowroot
Glowroot是一个快速,干净和简单的APM工具。它可以跟踪捕获缓慢的请求和错误,能够记录每个用户的操作时间,以及SQL捕获和聚合。该工具还可保留汇总所有历史数据。
它通过图表的方式显示响应时间分布和响应时间百分比,并允许用户通过移动设备监控应用程序性能。
Architecture:
▲Glowroot architecture
使用Glowroot之前需要下载并解压安装文件,并将-javaagent:path/to/ glowroot.jar添加到应用程序的JVM参数中。启动应用程序后,剩下的所有操作可以访问http:// localhost:4000。
一旦工具启动并运行,你将获得能够设置响应时间百分比和MBean属性的警报。Glowroot提供对跨多线程异步请求的全面支持,支持Tomcat,TomEE,JBoss EAP,Wildfly,Jetty和Glassfish等服务器。
▲Glowroot’s dashboard
如果方便简单是你对监控工具的要求,毫无疑问,该工具最合适。
5. Kamon
Kamon是为在JVM上运行的应用程序而构建的工具包。更具体地说,它是为使用Typesafe平台(使用Scala,Akka,Spray和/or Play!)构建的应用程序,但仍然对其他JVM平台和语言提供支持。
Architecture:
Kamon作为核心模块,包含所有记录和跟踪操作的API以及为应用程序提供字节码检测和报告功能的可选模块。换句话说,它提供了一个简单的API来记录JVM应用程序的指标和性能信息。
所有Kamon模块都可以通过Maven Central获得,你只需要将它们添加为项目的编译依赖项即可。之后只需启动Kamon,所有可用模块将自动启动,不需要显式激活/启动这些模块。
如果你使用的是JVM语言,或是Scala和Akka,并且需要一款性能监控工具,Kamon可能是最友好的选择。
五大最佳开源java性能监控工具的更多相关文章
- Java性能监控工具:VisualVM
VisualVM是JDK自带的一款全能型性能监控和故障分析工具,包括对CPU使用.JVM堆内存消耗.线程.类加载的实时监控,内存dump文件分析,垃圾回收运行情况的可视化分析等,对故障排查和性能调优很 ...
- java性能监控工具jstat
jstat Monitors Java Virtual Machine (JVM) statistics. This command is experimental and unsupported. ...
- java性能监控工具:jmap命令详解
.命令基本概述 Jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本.打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数 ...
- java性能监控工具jstat-windows
jstat Monitors Java Virtual Machine (JVM) statistics. This command is experimental and unsupported. ...
- java性能监控工具jps-windows
jps Lists the instrumented Java Virtual Machines (JVMs) on the target system. This command is experi ...
- java性能监控工具jmc-windows
jmc Java Mission Control is a Profiling, Monitoring, and Diagnostics Tools Suite. Synopsis jmc [ opt ...
- java性能监控工具jconsole-windows
jconsole Starts a graphical console that lets you monitor and manage Java applications. Synopsis jco ...
- java性能监控工具jcmd-windows
jcmd Sends diagnostic command requests to a running Java Virtual Machine (JVM). Synopsis jcmd [-l|-h ...
- JProfiler 8(一个很好的java性能监控工具) 下载和注册码
windows x64 zip下载地址:http://download-aws.ej-technologies.com/jprofiler/jprofiler_windows-x64_8_0_1.zi ...
随机推荐
- Warning: The following processes: -cmd.exe -java.exe are locking the following directory:
- 从零单排入门机器学习:线性回归(linear regression)实践篇
线性回归(linear regression)实践篇 之前一段时间在coursera看了Andrew ng的机器学习的课程,感觉还不错,算是入门了. 这次打算以该课程的作业为主线,对机器学习基本知识做 ...
- jsp不通过form和Ajax提交
在页面里面我们一般都通过form表单和Ajax向后台提交请求,但是我如今页面没有form表单,也不想通过ajax异步提交. 解决方式例如以下:location.href="${rootPat ...
- 2015.05.15,外语,学习笔记-《Word Power Made Easy》 02 “如何谈论医生”
包括Sessions 4-6: Prefix Person,nous,etc. Practice,etc. Adjective internus内部 internist [ɪn'tɝnɪst] n.内 ...
- 0x27 A*
终于完全了解A*到底是什么玩意儿了 对于当前的决策,选取当前花费+预估花费最小来拓展. 因为假如预估出现失误,那么很可能就会延伸到一个错误的决策点,而这个决策点偏偏就是ed,而由于预估失误,其他点的当 ...
- linux下关于IPC(进程间通信)
linux下进程间通信的主要几种方式 管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许 ...
- xBIM 学习与应用系列目录
xBIM 实战04 在WinForm窗体中实现IFC模型的加载与浏览 xBIM 实战03 使用WPF技术实现IFC模型的加载与浏览 xBIM 实战02 在浏览器中加载IFC模型文件并设 ...
- Maven 学习笔记(三)
有时我们在项目中可能需要打包一个可执行的 jar 包,我最近也遇见了,很傻很天真的用了如下配置: <packaging>jar</packaging> 效果一如既往的好,打包成 ...
- Spark SQL 编程API入门系列之SparkSQL的依赖
不多说,直接上干货! 不带Hive支持 <dependency> <groupId>org.apache.spark</groupId> <artifactI ...
- Core篇——初探Core的认证,授权机制
目录 1.Cookie-based认证的实现 2.Jwt Token 的认证与授权 3.Identity Authentication + EF 的认证 Cookie-based认证的实现 cooki ...