我想使用一些关键检查点来跟踪我的异步应用程序。
我可以使用任何流行的框架吗?
例如,我可以选择使用vert.x或任何其他Java异步框架。
对于每个请求/响应周期,我都会创建一些检查点来记录某些内容,而这些点可能会发生在不同的线程中。
我想查看1个请求的汇总视图,以了解发生了什么情况。
支持分布式大小写会更好,但是最好使用单个jvm。
提前致谢!
最佳答案
您正在寻找的是OpenTracing。它是一个API,可让您以与供应商无关的方式拥有分布式跟踪功能。
对于您的特定情况,您必须自己处理上下文传播,因为对于异步情况,还没有其他(可靠)的方法可以在OpenTracing上进行。对于其他情况(同步JAX-RS,Servlet,Spring Boot等),使用本机框架集成和/或Java代理规则将是安全的。
对于Vert.x,您需要将span上下文inject转换为Vert.x'消息,然后在此上下文中extract。
有一个OpenTracing + Vert.x on the Hawkular APM example directory的示例,可以帮助您入门。但是请注意,如果您决定继续前进,则可能要使用另一个后端,因为我们(Hawkular APM团队)决定与Jaeger联手开发OpenTracing后端。