开源java性能分析工具_Java性能监控:您应该知道的5个开源工具

开源java性能分析工具

鲜为人知但有用:开源应用程序性能监视的状态

对于任何应用程序来说,最重要的事情之一就是性能。 我们要确保用户获得他们能获得的最佳体验,并想知道我们的应用已启动并正在运行。 这就是为什么我们大多数人至少使用一种监视工具的原因。

如果您正在性能监控市场中寻找与众不同的东西,则可以选择一种开源工具。 在下面的文章中,我们收集了一些开源的APM工具,这些工具现在可以作为付费工具的替代品,因此您将能够看到它是否是您的正确选择。

开源

APM市场是一个拥挤的市场。 您拥有知名度很高的名字,例如New Relic,AppDynamics(请参阅此帖子以获取有关它们的概述),Dynatrace(我们在之前的帖子中进行过比较)以及一些较小的或鲜为人知的工具。 由于游戏中有很多玩家,而且他们都知道监视您的应用程序的价值,因此他们自己保留了代码。

但是,市场上还有另一种选择:开源工具。 如果您对一种简单的方法感兴趣,以便在生产中获得应用程序的可视性,并且想知道如何实际监视代码,则这些工具是一个不错的选择。

开源社区中也有一些关键的APM工具,每种工具都有其自己的产品和可能性。 如果您感兴趣,并且想确切地了解APM为您准备了什么开源产品,那么我们介绍了可用于您的前5种工具:

  • 舞台监控器
  • 查明
  • 莫斯基托
  • 焕根
  • 加蒙

1.

Stagemonitor提供了Java监视代理程序,该代理程序是在考虑群集应用程序堆栈的情况下构建的。 这意味着它旨在监视在多个服务器上运行的应用程序。 该工具与时间序列数据库(TSDB)集成。 该工具针对处理时间序列数据以及按时间索引的数字数组进行了优化。 这些数据库包括Elasticsearch,Graphite和InfluxDB。

建筑

舞台监视器拱

它是如何工作的?

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

在监视方面,您可以从群集或直接从开发人员服务器查看历史或实时数据,创建自定义警报并为每个指标定义阈值。
Stagemonitor包含一个仪表板,因此您可以可视化和分析您感兴趣的不同指标和请求。您可以创建自定义仪表板,编写自定义插件,甚至使用第三方插件。 它提供了一个不需要后端的浏览器内窗口小部件,该窗口小部件会自动注入到受监视的网页中。 您可以在以下链接中观看实时演示。

在官方文档中,Stagemonitor声明它也为非基于servlet的应用程序提供支持,您可以在此处查看全部要求 。

舞台监视器-1024x620

Stagemonitor的小部件指标

底线:如果您已经熟悉ELK堆栈,那么绝对值得一试快速测试。

2.

Pinpoint是专为大规模分布式系统设计的APM工具。 它以Google建立的分布式系统跟踪基础结构Dapper为模型,为开发人员提供了有关复杂分布式系统行为的更多信息。

建筑

精确拱门

它是如何工作的?

该工具通过跟踪分布式应用程序之间的事务来帮助分析系统的整体结构以及其中的组件如何互连。 这意味着它旨在说明如何执行每个事务,跟踪组件之间的流,并(提前开个玩笑)查明问题区域和潜在瓶颈。

仪表板有助于可视化组件的连接方式,并允许您实时监视应用程序内部的活动线程。 借助Pinpoint,您还可以查看请求计数和响应模式,从而能够识别潜在问题。 您可以查看关键细节,包括CPU使用率,内存/垃圾收集和JVM参数。

Pinpoint可以与已安装的代理一起工作,而无需更改任何代码,并且可以通过为每个组件运行四个简单脚本(包括Collector,Web,Sample TestApp和HBase)在自己的计算机上运行示例实例。

精确1024x629

Pinpoint的ServerMap

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

3.

MoSKito一站式提供3种工具:

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

它是如何工作的?

首先,您需要做的就是将.jar文件拖放到WEB-INF / lib文件夹中,或者在web.xml文件中添加一个小的新部分。 该工具启动并运行后,它将收集性能数据,对其进行实时分析以及将其存储以进行历史分析。

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

您还将获得一个通知系统,以了解何时达到阈值以及要监视的用户操作的记录。 该工具与基于Web的仪表板一起,还提供了一个移动应用程序,可随时随地监视您的应用程序。

moskito-1024x406

MoSKito的必备

底线: MoSKito于2007年首次发布,现在它已成为众所周知且稳定的工具,受到团队和社区的支持,包括付费支持选项。 对于任何开源工具而言,这也是一个巨大的优势。

4.

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

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

建筑

辉光根中央部署

Glowroot体系结构

它是如何工作的?

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

工具启动并运行后,您将获得连续的性能分析(带有过滤选项),并能够为响应时间百分位数和MBean属性设置警报。 Glowroot为跨多个线程的异步请求提供全面支持,并且支持Tomcat,TomEE,JBoss EAP,Wildfly,Jetty和Glassfish。

焕根

灼根的仪表板

底线:如果您想要的是简洁明了的产品,那么毫无疑问,您想要在这里查看其他工具的Glowroot。

5.

Kamon是一种React友好型工具箱,是为在JVM之上运行的应用程序而构建的。 更具体地说,它是为使用Typesafe Reactive Platform(使用Scala,Akka,Spray和/或Play!)构建的应用程序制作的,但仍提供对任何其他JVM平台和语言的支持。

建筑

kamon-300x2502x

它是如何工作的?

Kamon作为所有度量指标记录和跟踪操作API以及可选模块的核心模块进行分发,这些API为应用程序提供字节码检测和/或报告功能。 换句话说,它提供了一个简单的API,用于记录JVM应用程序的指标和跟踪信息。

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

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

底线:如果您使用多种JVM语言,或者主要是Scala / Akka,并且想要“一种工具来监视所有语言”,Kamon可能是最友好的选择。

现在您已经有了干草堆……

APM工具非常适合为您提供有关您的应用程序是否已启动并正在运行,或者是否有阻止它的信息。 唯一的问题是,一旦找到问题所在的大海捞针,就必须开始四处寻找导致问题的真正原因。

有一个更好的解决方案,而不是浏览日志文件以试图找出问题所在,发生的地方以及可能的原因,而是找到更好的解决方案。 OverOps不仅会为您提供何时何地的答案,还将向您显示错误发生的原因–在整个调用堆栈中为您提供导致错误的完整源代码和变量状态。 检查一下 。

最后的想法

这些是APM空间中付费工具的一些不错的选择。 但是……有些人可能认为采用开源选项主要是节省几美元的一种方法。 同样重要的是要记住,虽然您不需要开具使用该工具的发票,但这并不一定意味着它会更便宜。

开源工具需要付费:安装,故障排除以及维护,这些都将由您自己的工程师甚至您自己来完成。 更不用说您可能最终会浪费时间寻求对您遇到的特定问题的支持,而社区从未听说过。

我们的2美分是开源可能很棒,但是您还应该牢记其他成本,然后才能做出决定。

您认为我们应该检出其他开源APM工具吗? 在下面的评论中告诉我们有关它们的信息!

翻译自: https://www.javacodegeeks.com/2016/11/java-performance-monitoring-5-open-source-tools-know.html

开源java性能分析工具

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335369.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cmd编译可以通过执行没有结果_Go语言是如何完成编译的

Go语言是一门需要编译才能运行的编程语言,也就说代码在运行之前需要通过编译器生成二进制机器码,随后二进制文件才能在目标机器上运行,如果我们想要了解Go语言的实现原理,理解它的编译过程就是一个没有办法绕过的事情。预备知识想…

如何通过postman测试需要登录授权的接口

思路 请求需要登录授权的接口,就意味着你要传token给接口,所以请求接口(要测试的接口)之前就要先获取token,因为登录成功后服务端才会返回token,而token又设置了时效,所以每次请求接口&#xf…

wordpress linux 目录,快速搭建WordPress(Linux)

作者:彭济环境要求一、配置LAMP(LinuxApacheMysqlPHP)1、安装apachesudo apt-get install apache2 //安装apache2apache2 -v //查看版本网页访问本机ip地址,查看是否安装成功2、安装phpsudo apt-get install php //安装phpphp -v //查看版本sudo apt-get…

atheros蓝牙设备驱动 小米_小米Air 13笔记本黑苹果WiFi蓝牙硬件改装方案二

该方案适合小米笔记本Air 13初代,适合小米笔记本PRO等型号,适合通用的预留有M.2 PCIE通道SSD卡槽的电脑。也是作者极力推荐的终极改造方案。总体方案: 使用笔记本主板上的M.2 nvme通道 SSD硬盘接口进行拓展。使用BCM943602CS专用的M.2[NGFF]转接卡进行改…

python实现局域网攻击_通过python实现DNS欺骗

假设在一个的局域网内有两个人:Bob和Eve。Eve想让Bob访问他创建的恶意网页,这样她就可以通过隐藏性的下载给Bob的计算机上安装恶意软件,或者可能展示一个欺骗性的站点来试图窃取Bob的认证信息。(图片来自以上提供的链接&#xff0…

背景区域为负样本什么意思_词向量-skipgram与负采样

大纲:1. onehot vs 分布式表示2. 分布式表示的全局泛化能力3. how to learn word2vec - intuition4. SkipGram5. SkipGram Negative Sampling6. 评估词向量7. CBOW与SkipGram对比1. onehot vs 分布式表示Onehot表示:V (apple, going, I, home, machine ,learing)ap…

嵌入式linux应用程序实例,嵌入式Linux应用程序访问物理地址的实例

前言  按照Linux分层驱动思想,外设驱动与主机控制器的驱动不相关,主机控制器的驱动不关心外设,而外设驱动也不关心主机,外设访问核心层的通用应用程序接口进行数据传输,主机和外设之间可以进行任意的组合。这样思想要…

线程同步 线程安全_同步装饰器来替换线程安全类

线程同步 线程安全您知道什么是线程安全吗? 如果没有,下面是一个简单的示例。 所有类都必须是线程安全的,对吗? 并不是的。 其中一些必须是线程安全的? 又错了。 我认为它们都不必是线程安全的,而它们都必须…

forge开发_使用Forge,WildFly Swarm和Arquillian开发微服务

forge开发在这篇文章中,我们将看到如何使用WildFly Swarm和Forge开发微服务,以及如何使用Arquillian和Rest Assured对其进行测试。 WildFly Swarm提供了一种创新的方法来打包和运行Java EE应用程序,方法是将它们与足够的服务器运行时一起打包…

zynq+linux固化程序,如何在 Zynq UltraScale+ MPSoC 上实现 Linux UIO 设计

原标题:如何在 Zynq UltraScale MPSoC 上实现 Linux UIO 设计简介作者: Alex He (何晔), 赛灵思高级嵌入式应用工程师这里的 UIO 即 Userspace I/O,本文中 UIO 泛指 UIO 设备和 UIO 驱动。它在 Linux kernel 的世界里比较小众&…

thinkpad笔记本散热风扇_极致的散热体验,ORICO 全铝DIY双风扇笔记本散热垫评测...

电脑的出现,极大的改变了人类的生活。娱乐、办公、游戏、电子竞技等等都需要用到电脑。而电脑也慢慢的在升级着。电脑的体积也由最开始的的占据几间屋子的庞大体积,到后来的台式机、台式一体机、电脑的体积慢慢的变的越来越小。而便携式笔记本电脑的出现…

Web产品的交互说明文档应该怎么写?

经常与开发同学聊天,他们说有一个详细的说明文档可以帮助他们更准确的进行工时评估,还可以帮助他们提高工作效率,减少多余的思考时间。因此在这里分享一些制作交互说明文档的经验。 我先说说说交互原型包含哪些部分? 版本说明及更…

linux类似360软件,linux下有什么类似鲁大师查看电脑配置的软

满意答案drqyna2017.05.26采纳率:40% 等级:11已帮助:5455人linux如何查看系统的硬件配置如何在linux系统下查看系统配置?在图形模式下我们可以很方便的利用Linux的图形工具,点击几下就可以查看到Linux系统的的硬件信…

thinkphp json_原创干货 | Thinkphp序列化合总

听说转发文章会给你带来好运最近Thinkphp几个版本都出了反序列化利用链,这里集结在一起,下面是复现文章,poc会放在最后01Thinkphp5.1.37环境搭建composercreate-project topthink/think5.1.37 v5.1.37poc演示截图调用链单步调试漏洞起点在\th…

笔记本能安装联想智能云教室吗_挑战Jupyter Notebook:云协作、云硬件,上云的Notebook编程环境...

对全世界的 Python 高手而言,Jupyter Notebook 是目前最流行的编程环境,但它也有一些令人难以忍受的缺点。为此,一个位于旧金山的小团队开发了一款名为 Deepnote 的笔记本工具,这是一种云协作、云硬件,上云的 Notebook…

在Linux中su和sudo区别,Linux中su和sudo的用法和区别

目录sudosudo:暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。缺点是每次执行超级用户权限都要在命令前加上 sudo ,优点是在当前终端再使用 sudo 不要再重复输入密码(只对…

python 提升效率_@Python 程序员,如何最大化提升编码效率?

作者 | Enoch CK 译者 | 刘畅 整理 | Jane 出品 | Python大本营 【导语】无论你是一位高级的AI工程师还是学生,你都会在工作或学习过程中需要用到 Python。自 1991 年首次发布后,Python 很快就成为了程序员和技术人员最喜欢的语言。作为一种拥有相对简单…

spring boot rabbitmq_Spring Boot+RabbitMQ 实现延迟消息实现完整版,实用!

本文同步Java知音社区,专注于Java作者:Sam哥哥http://blog.csdn.net/linsongbin1/article/details/80178122概述曾经去网易面试的时候,面试官问了我一个问题,说下完订单后,如果用户未支付,需要取消订单&…

jax-rs jax-ws_信守承诺:针对JAX-RS API的基于合同的测试

jax-rs jax-ws自从我们谈论测试和应用有效的TDD做法以来,已经有一段时间了,特别是与REST(ful) Web服务和API有关的做法。 但是,这个主题永远都不应忘记,特别是在每个人都在做微服务的世界中,无论…

怎么运行aws的示例程序_使Spring Boot应用程序在AWS上无服务器运行

怎么运行aws的示例程序在之前的 几篇 文章中,我描述了如何设置Spring Boot应用程序并在AWS Elastic Beanstalk上运行它。 尽管这是从物理服务器到云服务器的重要一步,但还有更好的可能! 走向无服务器 。 这意味着无需花费任何服务器费用&…