找回密码
 立即注册

QQ登录

只需一步,快速开始

断天涯大虾
社区贡献组   /  发表于:2017-3-1 17:37  /   查看:7048  /  回复:0
本帖最后由 断天涯大虾 于 2017-3-8 09:08 编辑

衡量任何应用程序最重要的指标之一就是性能。 我们希望确保用户能够获得最佳的体验,并确保我们的应用程序正常运行。 这就是为什么大多数人至少使用一个监控工具的原因。

如果你想在性能监控市场上寻找一些不同的东西,那么选择之一是选择一款开源工具。 在下面的博文中,我们收集了一些开源的APM工具,这些工具目前已经可以替代付费工具,你可以看看它是否是你的最佳选择。

-----------------------------------------------------------------------------------------------------------------------------

拥抱开源
APM市场是一个拥挤的市场。 既有许多大的和知名的名字,如New Relic,AppDynamics(查看这篇文章,以了解他们的概述),以及Dynatrace(我们在之前的帖子中进行过比较),也有一些较小或较不知名的工具。 由于游戏中有这么多玩家竞争,他们都知道监控你的应用程序的价值,所以他们私有化他们的代码。

然而,市场上有一个替代品:那就是开源工具。 如果你想要一种简单的方法来获得应用程序在生产环境中的可视化,以及如果你想知道你的代码实际上是如何被监控的,这些工具就是一个很好的选择。

开源社区还有一些关键的APM工具,每个都有自己的产品和特性。 如果你感兴趣的话,想知道哪些开源APM等待着你,我们为你准备了前5个可用的工具:
  • Stagemonitor
  • Pinpoint
  • MoSKito
  • Glowroot
  • Kamon



-----------------------------------------------------------------------------------------------------------------------------

1. Stagemonitor
Stagemonitor 提供了一个Java监视代理程序,它是使用集群应用程序堆栈构建的。 意思是它的目的是监视在多个服务器上运行的应用程序。

该工具与时间序列数据库(TSDB)集成。 此工具已针对处理时间序列数据以及按时间索引的数字数组进行了优化。 这些数据库包括Elasticsearch,Graphite和InfluxDB。

结构


它是如何工作的呢?
Stagemonitor包含一个位于Java应用程序中的代理,可将度量标准和请求跟踪发送到中央数据库。 该工具只需要一个实例来监视所有应用程序,实例和主机,并且可以部署在您自己的数据中心内。

在监控方面,你可以从集群或直接从开发人员服务器查看历史或实时数据,创建自定义警报,并为每个指标定义阈值。

Stagemonitor包含一个仪表板,因此你可以可视化并且分析您感兴趣的不同指标和请求。您可以创建自定义仪表板,编写自定义插件,甚至使用第三方插件。 它提供了一个无需后端的浏览器窗口小部件,它会自动注入受监控的网页。 您可以在以下链接中查看现场演示。

在官方文档中,Stagemonitor声明它还支持非基于servlet的应用程序,您可以点击这里查看完整的要求。

Stagemonitor的小部件指标

底线:如果你已经熟悉ELK堆栈,它绝对值得你尝试快速测试运行。

-----------------------------------------------------------------------------------------------------------------------------

2. Pinpoint
Pinpoint是用于大规模分布式系统的APM工具。 它是在Dapper(一个由Google构建的分布式系统跟踪基础架构)之后建模的,为其开发人员提供有关复杂分布式系统行为的更多信息。

结构

它是如何工作的?
这个工具可以通过跟踪分布式应用之间的交换数据,从而分析系统的整体结构以及其中的组件是如何交互的。这意味着它的目标是解释每个交易是如何执行的,跟踪组件之间的流程以及(算是个冷笑话吧?)确定有问题的地方和潜在的瓶颈。

仪表板能够可视化的展示各个组件的关联性,并使得你能够实时监控应用程序中活跃的线程。而且Pinpoint可以让你看到请求的数量和响应的模式,这样你能够识别潜在的问题。你可以查看一些关键的详情,包括CPU使用率,内存/垃圾收集,以及JVM的参数。

Pinpoint与未安装任何代码的代理一起工作,您可以通过为每个组件运行四个简单脚本,在自己的机器上运行示例实例: Collector, Web, Sample TestApp, and HBase.
Pinpoint’s ServerMap

底线:如果你听说过Dapper,或者想要监视和分析你的复杂的分布式系统,你一定要检查这个工具。

-----------------------------------------------------------------------------------------------------------------------------

3. MoSKito
MoSKito 提供三种工具:
  • MoSKito-Essential:基本的独立项目。它是MoSKito功能的核心,可以让您监控应用程序。
  • MoSKito-Central:用于保存性能数据的集中存储服务器。
  • MoSKito-Control:用于监视多节点Web应用程序性能的工具。


它是如何工作的?
要开始,所有你需要做的是将.jar文件放到WEB-INF / lib文件夹中,或者在web.xml文件中包含一个小的新节。一旦工具启动并运行,它收集性能数据,实时分析它,以及存储它用于历史分析。

该工具收集您的所有性能指标,如线程,内存,缓存,存储,服务,注册,付款,转换,SQL,负载分布等。它不需要代码更改,支持所有主要的应用程序服务器(Tomcat,Jetty,JBoss,WebLogic),并将数据保存在本地。

您还可以获得通知系统,以了解何时达到阈值,以及要监视的用户操作的记录。除了基于Web的仪表板,该工具还提供了一个移动应用程序来监视您的应用程序在旅途中。
MoSKito’s Essential

底线: MoSKito于2007年首次推出,现在它是一个众所周知和稳定的工具,由团队和社区支持,包括付费支持选项。这也是任何开源工具的巨大优势。

-----------------------------------------------------------------------------------------------------------------------------

4. Glowroot
Glowroot 自豪的是一个快速,干净和简单的APM工具。它将允许跟踪捕获缓慢的请求和错误,您将能够记录每个用户操作的时间跟踪,以及SQL捕获和聚合。该工具还提供了具有可配置保留的所有数据的历史汇总。

它提供了可视化响应时间细分和响应时间百分比的图表,其响应的UI将允许您从移动设备以及桌面监视应用程序

blob51965025.png

它是如何工作的?
要开始使用Glowroot,您需要下载并解压缩主安装文件,并将-javaagent:path / to / glowroot.jar添加到应用程序的JVM参数中。启动应用程序后,剩下的所有操作都将浏览器指向http:// localhost:4000。

一旦工具启动并运行,您将获得连续分析(带过滤选项),以及能够设置响应时间百分比和MBean属性的警报。Glowroot提供对跨越多线程的异步请求的全面支持,它支持Tomcat,TomEE,JBoss EAP,Wildfly,Jetty和Glassfish。
Glowroot’s dashboard

底线:如果干净,简单是你想要的,毫无疑问,你想检查Glowroot在这里的其他工具。

-----------------------------------------------------------------------------------------------------------------------------

5. Kamon
Kamon 是一个反应友好的工具包,它是为在JVM之上运行的应用程序构建的。更具体地说,它是为使用Typesafe反应平台(使用Scala,Akka,Spray和/或Play!)构建的应用程序,但仍然提供对任何其他JVM平台和语言的支持。

结构

它是如何工作的?
Kamon作为一个核心模块分发,包含所有度量记录和跟踪操作API和可选模块,为您的应用程序提供字节码仪表和/或报告功能。或者换句话说,它提供了一个简单的API来记录JVM应用程序的指标和跟踪信息。

所有的Kamon模块都可以通过Maven Central获得,您需要将它们添加为项目的编译依赖项。一旦你包含了你感兴趣的模块,只需启动Kamon,所有可用的模块将自动启动,你不需要显式激活/启动它们。

跟踪模块将允许记录有关在应用程序中执行的功能的数据,度量模块将允许您通过用户代码或与其他Kamon模块一起提供的检测来控制正在跟踪的实体的注册。它还具有其他功能,如过滤,配置仪器工厂和调度度量订阅。

底线:如果你使用一些JVM语言,或者大多是Scala / Akka,并且想要“一个工具来监视它们”,Kamon可能是最友好的选择。

原文链接:https://coyee.com/article/11791-java-performance-monitoring-5-open-source-tools-you-should-know
   
关于葡萄城:全球最大的控件提供商,世界领先的企业应用定制工具、企业报表和商业智能解决方案提供商,为超过75%的全球财富500强企业提供服务。

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部