有跟踪java方法的工具吗?

时间:2017-01-07 08:03:43

标签: java zipkin

我有Spring MVC Web应用程序,它在端点中使用各种服务。例如,一个端点具有以下结构:

public void endpointA() {
    // ...
    // call methodA
    // ...
    // call methodB and methodC in parallel using RxJava
    // ...
    // call methodD
    // ...
}

方法可能会调用外部服务或数据库操作。我有一个想法,即在每个服务开始和结束时(例如在Chrome中的Dev Tools中)测量此类调用的时间,以便将整个端点调用的时间线与信息一起使用。每种跟踪方法都可以调用嵌套方法,也可以跟踪它。

我有Zipkin的经验,但它适用于分布式案例和跟踪整个端点调用(据我所知)。在这里,我有monolith应用程序,我希望能够跟踪我想要的任何方法。被跟踪的代码应该对其进行最小的更改。例如,我不想在跟踪类中创建一些成员或将任何参数传递给跟踪的方法。

通常,此工具可用于任何Java应用程序,以通过性能度量来跟踪其工作流程。我正在考虑在所需方法之前和之后使用System.currentTimeMillis()值的标准日志记录,然后分析日志文件,但决定它将带来许多相同的代码,并且它不会解决方法调用层次结构的跟踪:可以调用跟踪方法不是直接但使用非跟踪方法。

是否有用于此目的的工具?我不想发明一辆自行车。

1 个答案:

答案 0 :(得分:0)

我认为一般来说,您可能对更典型的代理/分析器方法感兴趣。

由于您提到了zipkin,请注意spring spring sleuth允许您make "local spans"并代表您使用包括RxJava在内的某些integrated libraries

希望这有帮助。