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程序分析?

对任何联网程序监测?

多语言支持

同时支持英文和中文显示

同时支持英文、中文、日文、法文等多国家文字显示

只有英文显示

只有英文显示

只有中文(或英文)显示。