开源java性能分析工具

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

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

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

开源

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

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

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

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

1.

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

建筑

它是如何工作的?

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

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

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

Stagemonitor的小部件指标

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

2.

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

建筑

它是如何工作的?

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

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

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

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的必备

底线: 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作为所有度量指标记录和跟踪操作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性能分析工具

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

  1. java dump分析工具_java性能分析与常用工具

    本次源码已放在Github:https://github.com/nateshao/jvm-tuning 个人博客 https://nateshao.gitee.io http://www.nates ...

  2. 美团性能分析框架和性能监控平台

    2019独角兽企业重金招聘Python工程师标准>>> 美团性能分析框架和性能监控平台 美团的性能小组在过去1年的时间,成功将项目详情页.首页.搜索和筛选页的加载时间从10秒左右降到 ...

  3. (52)性能分析 ---CPU的性能分析

    性能分析 -CPU的性能分析 服务器中一个硬件 什么是服务器? 由 计算机硬件 + 操作系统 + 应用服务构成,提供能力输出. 服务器的性能分析,需求分析哪些? 硬件性能分析 操作系统性能分析 项目性 ...

  4. java性能分析工具_java性能分析工具

    如何利用 JConsole观察分析Java程序的运行,进行排错调优 http://jiajun.iteye.com/blog/810150 如何使用JVisualVM进行性能分析 http://jia ...

  5. java dump分析工具_Java 性能分析工具 (2):Java 内置监控工具

    引言 本文为 Java 性能分析工具系列文章第二篇,第一篇:操作系统工具.在本文中将介绍如何使用 Java 内置监控工具更加深入的了解 Java 应用程序和 JVM 本身.在 JDK 中有许多内置的工 ...

  6. java 开发人员工具_Java开发人员应该知道的7种新工具

    java 开发人员工具 通过快速浏览一些最新的,创新的工具,准备好锁定和加载. 万一您错过了它,RebelLabs最近发布了Java工具和技术前景的全球调查结果 . 除了著名的工具和成熟的工具之外,市 ...

  7. 前端如何进行网站性能分析及优化性能

    目录 1.分析网站性能常用的方式 1.1 chrome dev Tools 1.2  Lighthouse 1.3 第三方收费方案 2.介绍一个常用的性能分析工具 LightHouse 2.1 特点: ...

  8. 性能分析之 SQL 性能分析(MySQL)

    在性能分析中,SQL 的分析那是必须的. 不同的库又有着不同的命令,但是总体来说,同一类型的数据库,除了有一些手段上的不同之外,给出的结果基本上都是类似的. 今天说一下 MySQL 的. 每次我都会说 ...

  9. Java开发人员应该知道的7种新工具

    通过快速浏览一些最新的创新工具,随时准备锁定和加载. 万一您错过了它,RebelLabs最近发布了Java工具和技术前景的全球调查结果 . 除了著名的工具和成熟的工具外,市场还涌现出鲜有人知的新鲜工具 ...

最新文章

  1. IDEA集成Docker插件实现一键自动打包部署微服务项目
  2. Java后端Java面试题总结2021(春招+秋招+社招)
  3. Android应用程序的调试
  4. linux 关机 司机,Linux 关机
  5. 项目实战-本地自动化部署
  6. 从零单排学Redis【青铜】
  7. php soap debug,php soap客户端调试实例
  8. linux:vim中全选复制
  9. 无人机导航定位系统Java_无人机高精度室内定位导航的技术方案
  10. QML笔记-使用Row的时候要注意的地方(一定要指明高度和宽度)
  11. ubuntu java 1.8 1.7_java – 在Ubuntu上从JDK 1.7移动到JDK 1.8
  12. 购买云服务器时如何选择适合的数据库?
  13. 如何更改计算机安全策略设置,用批处理更改本地安全策略
  14. CSS3------ 按钮闪光划过效果
  15. 微信公众号微信支付提示 调用支付JSAPI缺少参数:appId
  16. 异常:0xC0000005: 读取位置 0x00617568 时发生访问冲突。
  17. 正确使用pageX、pageY、offsetLeft、offsetTop
  18. python怎么在图片上写字_python如何实现内容写在图片上
  19. MATLAB画折线图
  20. 如何让java程序执行一段时间后停止

热门文章

  1. P5110-块速递推【特征方程,分块】
  2. P3700-[CQOI2017]小Q的表格【分块,欧拉函数】
  3. 【期望DP】概率充电器(luogu 4284)
  4. 【dfs】无穷迷宫(jzoj 3924)
  5. 【状压DP】剑之修炼(jzoj 2130)
  6. I Got a Matrix!
  7. 初一模拟赛总结(4.7)
  8. 3、oracle数据库的语法基础
  9. 形象的解释神经网络激活函数的作用是什么
  10. 隐马尔科夫模型-前向算法