Web容器可观测最佳实践
1. 传统的Web容器观测方案
如果遇到Tomcat的问题,传统的解决方案是,对于简单一点的问题,我们会去看日志。稍微进阶一点的问题,我们会利用白屏的方案,比如用Tomcat manager的工具对Tomcat进行运行式的监控,然后从监控图表中,看到Tomcat当前的请求数量以及RT的情况。
但传统方案有两个比较明显的缺点:
∙ 体系不完善。
∙ 单点监控,无集群解决方案。一般我们的应用在线上可能会部署很多个实例,但当有多个实例的时候,传统的解决方案基本上就没办法用了。
∙ 没有历史数据。我们在做监控的时候,数据采集、计算、存储、展示缺一不可。而我们的解决方案是一个比较临时的方案,它没有数据的存储,数据的整个展示也比较简陋,它不是一个体系的解决方案。
∙ 功能比较单一。
∙ 无法多维分析。
∙ 无法进行根因定位。
∙ 无法创建报警。
基于以上问题,就有了基于可观测技术的Web容器观测方案。
2. 基于可观测技术的Web容器观测方案
我们都知道,可观测性主要分为三个部分,分别是Trace、Metrics、Log,这里我多放了一个Profiling,因为在最近几年,它对整个可观测领域是一个巨大的增强,可以帮助我们做很多以前无法定位的问题。
Trace技术可以帮助我们对单次调用的瓶颈进行分析,我们把每次调用的耗时分布通过柱状图的方式展示出来,定位到有问题调用的位置。
Metrics是一个一批Span的统计结果,它可以帮助我们从宏观上更快的发现问题。
Log在这里就不多介绍了,大家平常应该用的比较多。
Profiling一般是通过火焰图的形式来呈现,通过把当前进程的栈聚合起来形成一张火焰图,帮助我们做性能的分析,发现一些当前进程的性能的瓶颈。
带你读《Apache Tomcat的云原生演进》——Web容器可观测最佳实践(2)https://developer.aliyun.com/article/1377522