我正在寻找支持每个请求分析统计信息的探查器,最好是沿着程序流(而不是通常的线程调用堆栈).因此,基本上每个事件的探查器调用堆栈顺序调用视图都是这样的:
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很难解决的问题.
剖析统计信息沿着程序流呈现调用也是如此,因为很容易确定问题在请求中的位置,例如:一个方法执行十个数据库查询,您将每个调用视为一个调用,而不仅仅是十个聚合调用.
理想情况下,在运行时配置和启用/禁用测量点.
解决方法:
您可以尝试btrace进行选择性测量.它有点类似于dtrace,如果您在受支持的平台(Solaris,BSD和OS X)上,也可以使用dtrace.