TomProbe与同类产品的比较--宏观比较具体比较

 

注:本文由于研究可能不足,可能有少量不妥甚至错误,将在日后改正。

 

一、宏观比较

宏观比较就是看主要矛盾、看要害。这个重要,细节容易使人糊涂(比1元钱的数量,容易产生乞丐比富豪更有钱的错觉)。

 

1. TomProbe vs 阿里Arthas

TomProbeWindows安装版程序,阿里ArthasDos程序,二者没有可比性,就像Windows操作系统和Dos操作系统没有可比性一样。

 

2. TomProbe vs Tomcat自带的Manager模块

Manager模块有虚拟机和app管理功能,TomProbe没这个功能。

Manager模块对Tomcat的监测只是显示了一些最基本最简单的数据,而TomProbeTomcat的监测要丰富很多。在诊断网站健康、发现网站是否稳定、查找原因、发现消耗CPU代码、了解用户访问和黑客攻击情况等方面,TomProbe很起作用,而Manager模块几乎不起作用。

TomProbeManager模块是互补关系,而不是竞争和替代关系。

 

3. TomProbe vs Psi-probe

Psi-probeTomcat自带的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%以上,响应迟钝,用户流失,得增加服务器了)

是否显示总的上/下行流量?

是否显示显示上/下行流量历史曲线(以大致了解哪些时间用户活跃)

是否显示显示各个HostConextConnector的上/下行流量历史曲线(对用户访问情况了解得更详细)

是否显示总的请求次数?

是否显示显示请求次数历史曲线(以大致了解哪些时间用户活跃)

否(但对各个Context统计了总请求次数)

是否显示显示各个HostConextConnector的请求次数历史曲线(对用户访问情况了解得更详细)

是否显示总的连接数?

是否显示显示连接数历史曲线(以大致了解哪些时间用户活跃)

是否显示显示各个HostConextConnector的连接数历史曲线(对用户访问情况了解得更详细)

是否显示自启动的运行天数(挺了好长时间,我骄傲)

是否显示“正常/.不正常(内存泄漏,将用光内存而宕掉)/不正常(CPU平时过高,网站响应迟钝)”等状态(欺负我业主不懂技术,搞个演示版来要老子掏钱)

是否显示Session数历史曲线(与某些业务的用户访问数有关,也与内存消耗、稳定性、负载均衡有关)

否(但对各个Context显示了当前Session数)

能否查看各线程的当前CPU消耗?

能否定位解决“我的网站突然CPU变得很高,并且CPU一直保持很高”这个问题(与宕机几乎无异,问题随机出现,debug一次需要几个月,解决起来需要几年,真的使人抓狂)

能(很容易)

能(大致上定位)

能否查找网站平时是哪些代码消耗了CPU(负载这么低,有些代码需要优化,大大提高负载,节省硬件服务器)?

能否查看Tomcat固有线程队列里的任务数的历史数据(与负载均衡、内存消耗、宕机有关)

能否查看异步Servlet的执行情况(已完成数量、在做数量)的历史数据(异步Servlet虽好,但可能也是陷阱,导致占用线程)

是否对Tomcatshutdown端口进行监控(Tomcat对这端口检查不是很严,黑客容易通过这个端口攻击)

能否对Tomcat的虚拟主机进行管理?

能否对Tomcatapp进行管理和部署?

是否显示了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-tomprobeTomcat完全开源,TomProbe客户端完全闭源)

完全开源

完全开源

完全开源

完全闭源

Tomcat的耦合程度

较紧

较紧

稍紧

松,无耦合

松,无耦合

国家安全性和自主可控

提高了国家安全和自主可控(采用我公司重新编译过for-tomprobe版本的Tomcat,出了安全问题,找我公司问责)

无影响

无影响

无影响

无影响

技术得分

100

(对Tomcat源代码很精通、超强的阅读代码能力、炉火纯青的Windows安装版程序编写技术、踏雪无痕的联网程序技术)

80

(对Tomcat源代码很精通、自己写的TomcatJavaScript熟练)

80

(对Tomcat源代码精通、阅读代码能力强、JavaScript熟练)

75

(对JavaClassLoader、注解和2个包类库熟练,无Windows客户端)

75

JavaScript用得很棒)

是否支持Spring Boot?

否?

部分支持?

能否对Tomcat以外的程序监测

只能监测Tomcat

只能监测(和管理)Tomcat

只能监测(和管理)Tomcat

对任何Java程序分析?

对任何联网程序监测?

多语言支持

同时支持英文和中文显示

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

只有英文显示

只有英文显示

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