我正在寻找支持每个请求分析统计信息的分析器,最好是沿着程序流(不是通常的线程调用堆栈)。所以基本上每个请求都有一个分析器调用堆栈+顺序调用视图,如下所示:
doGet 100ms
+ doFilter 95ms
+ doFilter2 90ms
+ validateValues 20ms
+ calculateX 40ms
+ calc1 10ms
+ calc2 30ms
+ renderResponse 30ms
分析哪些类/方法以某种方式配置,对于处理每个方法调用的跟踪分析器,这当然是不可用的。
我知道并使用过 dynaTrace,它的“PurePath”功能(http://www.dynatrace.com/en/architecture-tame-complexity-with-purepath.aspx)支持这一点,但我正在寻找适合的工具可用于较小的项目,并且需要较少的初始投资和设置。
是否有任何“经典”分析器(YourKit 等)支持此功能而我忽略了该功能?
附录:提供一些背景知识:主要目标是为生产系统的监控和分析提供统计数据。首先也是最重要的想法是获取请求需要多长时间的实时统计数据,以防响应时间上升以获得某些(类型)请求的数据(想想 JETM + x)。
每个请求的分析统计允许详细分析为什么只有一些请求很慢,例如,如果 10% 的请求花费的时间是平均请求的十倍。使用汇总统计数据,这是 AFAIK 很难解决的问题。
沿着程序流呈现调用的分析统计数据也是如此,因为很容易识别问题在请求中的位置,例如,一个方法执行十个数据库查询,您将每个调用视为一个调用,而不仅仅是十个聚合调用。
理想情况下,测量点在运行时进行配置和启用/禁用。