TomProbe与同类产品的比较--宏观比较和具体比较
注:本文由于研究可能不足,可能有少量不妥甚至错误,将在日后改正。
一、宏观比较
宏观比较就是看主要矛盾、看要害。这个重要,细节容易使人糊涂(比1元钱的数量,容易产生乞丐比富豪更有钱的错觉)。
1. TomProbe vs 阿里Arthas
TomProbe是Windows安装版程序,阿里Arthas是Dos程序,二者没有可比性,就像Windows操作系统和Dos操作系统没有可比性一样。
2. TomProbe vs Tomcat自带的Manager模块
Manager模块有虚拟机和app管理功能,TomProbe没这个功能。
Manager模块对Tomcat的监测只是显示了一些最基本最简单的数据,而TomProbe对Tomcat的监测要丰富很多。在诊断网站健康、发现网站是否稳定、查找原因、发现消耗CPU代码、了解用户访问和黑客攻击情况等方面,TomProbe很起作用,而Manager模块几乎不起作用。
TomProbe与Manager模块是互补关系,而不是竞争和替代关系。
3. TomProbe vs Psi-probe
Psi-probe与Tomcat自带的Manager模块几乎可以划等号。可能Psi-probe作者觉得Manager模块的界面可以合并在一个界面里用页帧切换更好些;另外需要增加线程、Datasource和群集的显示(量是增加了,但对监测的认识似乎无质的提高);另外对总流量、总请求用简单的图表显示。
4. TomProbe vs IT运维软件
IT运维软件把Tomcat作为进程和网络端口来监测,只能监测Tomcat总内存、CPU、流量等几个很有限的数据,并且对它们的监测应该是粗糙和肤浅的。在监测Tomcat方面,IT运维软件应该完全无法与TomProbe相比。
二、具体比较
TomProbe | Tomcat自带Manager模块 | Psi-probe | 阿里Arthas | IT运维软件 | |
谁用 | 开发者、运维者、业主(包括不懂技术) | 开发者、运维者 | 开发者、运维者 | Java研究者和极少数有特殊癖好的高级Java开发者 | 运维者、业主(包括不懂技术) |
目的 | 监测网站,对其健康状况和是否稳定作出判断、并帮助查找原因。 | 对网站的app和虚拟主机进行管理(添加、删除等),并显示当前一些数据(版本、内存等) | 对网站的app进行管理(添加、删除等),并显示更多的当前数据(版本、内存、线程、数据源、群集等) | 对网站当前的Java对象、方法、变量、JVM做分析,填补学术空白。 | 大致监测网站,对其状况作大致了解。 |
开发者能否判断网站开发得稳定? | 能 | 不能 | 不能 | 不能 | 不能 |
运维者能否预知网站快要宕了,启动Tomcat,保证网站不间断对外服务? | 能 | 不能 | 不能 | 不能 | 不能 |
业主能否判断网站开发得不稳定而拒绝验收项目? | 能 | 不能 | 不能 | 不能 | 不能 |
是否显示网站历史数据? | 是 | 否 | 否 | 否 | 是 |
能否看出过去和现在网站的用户访问情况和黑客攻击情况? | 大致能(比较详细) | 不能 | 不能 | 不能 | 大致能(不详细) |
是否显示操作系统名称和版本号(与稳定性有关)? | 是 | 是 | 是 | 否 | 是 |
是否显示JVM提供商名称和版本号(与开发和部署有关)? | 是 | 是 | 是 | 否 | 否 |
是否显示当前空闲内存、总内存、最大内存(内存快用光,网站要宕了,赶快重启)? | 是 | 是 | 是 | 否 | 否(只能显示总内存) |
能否让Tomcat做一次System.gc()垃圾回收后采集数据(了解真正的空闲内存,以大致判断下次总内存爬升发生在什么时候)? | 是 | 否 | 否 | 否 | 否 |
是否显示当前空闲线程、总线程、死锁线程的数量(与性能有关)? | 是 | 是 | 是 | 是 | 否 |
是否显示有外来线程(正是外来线程数量不可控导致网站宕了)? | 是 | 否 | 否 | 否 | 否 |
是否显示当前总CPU(这与性能、稳定性有关)? | 是 | 否 | 否 | 否 | 是 |
是否显示历史总CPU曲线(网站总CPU经常在10%以上,响应迟钝,用户流失,得增加服务器了)? | 是 | 否 | 否 | 否 | 是 |
是否显示总的上/下行流量? | 是 | 是 | 是 | 否 | 是 |
是否显示显示上/下行流量历史曲线(以大致了解哪些时间用户活跃)? | 是 | 否 | 否 | 否 | 是 |
是否显示显示各个Host、Conext、Connector的上/下行流量历史曲线(对用户访问情况了解得更详细)? | 是 | 否 | 否 | 否 | 否 |
是否显示总的请求次数? | 是 | 是 | 是 | 否 | 否 |
是否显示显示请求次数历史曲线(以大致了解哪些时间用户活跃)? | 是 | 否(但对各个Context统计了总请求次数) | 是 | 否 | 否 |
是否显示显示各个Host、Conext、Connector的请求次数历史曲线(对用户访问情况了解得更详细)? | 是 | 否 | 否 | 否 | 否 |
是否显示总的连接数? | 是 | 否 | 否 | 否 | 否 |
是否显示显示连接数历史曲线(以大致了解哪些时间用户活跃)? | 是 | 否 | 否 | 否 | 否 |
是否显示显示各个Host、Conext、Connector的连接数历史曲线(对用户访问情况了解得更详细)? | 是 | 否 | 否 | 否 | 否 |
是否显示自启动的运行天数(挺了好长时间,我骄傲)? | 是 | 否 | 否 | 否 | 否 |
是否显示“正常/.不正常(内存泄漏,将用光内存而宕掉)/不正常(CPU平时过高,网站响应迟钝)”等状态(欺负我业主不懂技术,搞个演示版来要老子掏钱)? | 是 | 否 | 否 | 否 | 否 |
是否显示Session数历史曲线(与某些业务的用户访问数有关,也与内存消耗、稳定性、负载均衡有关)? | 是 | 否(但对各个Context显示了当前Session数) | 否 | 否 | 否 |
能否查看各线程的当前CPU消耗? | 能 | 否 | 否 | 能 | 否 |
能否定位解决“我的网站突然CPU变得很高,并且CPU一直保持很高”这个问题(与宕机几乎无异,问题随机出现,debug一次需要几个月,解决起来需要几年,真的使人抓狂)? | 能(很容易) | 否 | 否 | 能(大致上定位) | 否 |
能否查找网站平时是哪些代码消耗了CPU(负载这么低,有些代码需要优化,大大提高负载,节省硬件服务器)? | 能 | 否 | 否 | 否 | 否 |
能否查看Tomcat固有线程队列里的任务数的历史数据(与负载均衡、内存消耗、宕机有关)? | 能 | 否 | 否 | 否 | 否 |
能否查看异步Servlet的执行情况(已完成数量、在做数量)的历史数据(异步Servlet虽好,但可能也是陷阱,导致占用线程)? | 能 | 否 | 否 | 否 | 否 |
是否对Tomcat的shutdown端口进行监控(Tomcat对这端口检查不是很严,黑客容易通过这个端口攻击)? | 是 | 否 | 否 | 否 | 否 |
能否对Tomcat的虚拟主机进行管理? | 否 | 能 | 否 | 否 | 否 |
能否对Tomcat的app进行管理和部署? | 否 | 能 | 能 | 否 | 否 |
是否显示了DataSource列表(DataSource可是地雷,容易引起大内存消耗或泄漏或宕机)? | 否(未来我公司要制定规范,以方便对DataSource监测) | 否 | 是(但只是列出DataSource的名称有什么用) | 否 | 否 |
是否显示了群集列表? | 否 | 否 | 是(实践上有用到Tomcat群集的案例吗) | 否 | 否 |
显示Tomcat程序拓扑图的完整度 | 90% | 70% | 75% | 0% | 0% |
界面是否美观? | 很美观(可以任意设置背景图片并调节亮度) | 一般 | 一般 | 不美观(Dos窗口显示) | 一般 |
界面是否用户友好? | 很友好(所有数据在一个界面显示,一目了然,切割窗口,可拖拽调节大小) | 一般(多次按钮,多个界面) | 一般(页帧显示,多个界面) | 丑陋(Dos窗口下,发一次指令,出来一些数据) | 一般 |
基于Windows or Dos? | Windows安装版 | Windows浏览器程序 | Windows浏览器程序 | Dos | Windows浏览器程序 |
安装麻烦程度(最麻烦:100) | 4 | 1 | 2 | 3 | 5 |
平时使用麻烦程度(最麻烦:100) | 0 | 2 | 2 | 100 | 2 |
能否只安装一个客户端对很多个Tomcat监测? | 能(很轻松,登录界面有网站列表,用鼠标点几下即可) | 能(有点烦,每次要在浏览器输入不同的网址和用户名和密码) | 能(有点烦,每次要在浏览器输入不同的网址和用户名和密码) | 能(有点烦,每次要在Dos输入不同的参数) | 能(应该是很轻松) |
是否开源? | 半开源 (for-tomprobe的Tomcat完全开源,TomProbe客户端完全闭源) | 完全开源 | 完全开源 | 完全开源 | 完全闭源 |
与Tomcat的耦合程度 | 较紧 | 较紧 | 稍紧 | 松,无耦合 | 松,无耦合 |
国家安全性和自主可控 | 提高了国家安全和自主可控(采用我公司重新编译过for-tomprobe版本的Tomcat,出了安全问题,找我公司问责) | 无影响 | 无影响 | 无影响 | 无影响 |
技术得分 | 100 (对Tomcat源代码很精通、超强的阅读代码能力、炉火纯青的Windows安装版程序编写技术、踏雪无痕的联网程序技术) | 80 (对Tomcat源代码很精通、自己写的Tomcat、JavaScript熟练) | 80 (对Tomcat源代码精通、阅读代码能力强、JavaScript熟练) | 75 (对Java的ClassLoader、注解和2个包类库熟练,无Windows客户端) | 75 (JavaScript用得很棒) |
是否支持Spring Boot? | 是 | 否? | 部分支持? | 是 | 是 |
能否对Tomcat以外的程序监测 | 只能监测Tomcat | 只能监测(和管理)Tomcat | 只能监测(和管理)Tomcat | 对任何Java程序分析? | 对任何联网程序监测? |
多语言支持 | 同时支持英文和中文显示 | 同时支持英文、中文、日文、法文等多国家文字显示 | 只有英文显示 | 只有英文显示 | 只有中文(或英文)显示。 |