任何 java 异步跟踪框架?

Any java async tracing framework?

我想使用一些关键检查点来跟踪我的异步应用程序。 有没有我可以使用的流行框架?

例如,我可能会选择使用 vert.x 或任何其他 java 异步框架。对于每个 request/response 周期,我都会创建一些检查点来记录一些东西,而这些点可能发生在不同的线程中。

我想查看 1 个请求的聚合视图,以了解发生了什么。支持分布式情况会更好,但单个 JVM 也不错。

您要找的是OpenTracing。它是一个 API,允许您以与供应商无关的方式拥有分布式跟踪功能。

对于您的特定情况,您必须自己处理上下文传播,因为对于异步情况,在 OpenTracing 上没有其他(可靠的)方法可以做到这一点。对于其他情况(同步 JAX-RS、Servlet、Spring Boot,...),使用本机框架集成 and/or Java 代理规则是安全的。

对于 Vert.x,您稍后需要 inject the span context into Vert.x' message, and extract 此上下文。

有一个 OpenTracing + Vert.x on the Hawkular APM example directory 的示例,可能会帮助您入门。但是请注意,如果您决定继续前进,您可能想要使用另一个后端,因为我们(Hawkular APM 团队)决定与 Jaeger 联手开发 OpenTracing 后端。