我们正在使用Micronaut(v1.2.0)构建一个Web应用程序,该应用程序将部署在Kubernetes集群中(我们将Istio用作服务网格)。
我们希望对关键方法调用进行检测,以便它们可以在HTTP请求跨度上下文中生成自己的跨度。为此,我们使用了Micronaut OpenTracing支持和Jaeger集成。
pom.xml
中包含以下依赖项>
... <dependency> <groupId>io.micronaut</groupId> <artifactId>micronaut-tracing</artifactId> <scope>compile</scope> </dependency> <dependency> <groupId>io.jaegertracing</groupId> <artifactId>jaeger-thrift</artifactId> <scope>runtime</scope> </dependency> ...
如下所示,已使用
@ContinueSpan
实现了Filter方法(也尝试了与@NewSpan
相同的方法]
@Filter("/**") public class TraceTestFilter implements HttpServerFilter { @Override public Publisher<MutableHttpResponse<?>> doFilter( HttpRequest<?> request, ServerFilterChain chain) { return testMethodTracing(request, chain); } @ContinueSpan public Publisher<MutableHttpResponse<?>> testMethodTracing( HttpRequest<?> request, ServerFilterChain chain) { // Details ommitted here } }
application-k8s.yml
中保留了以下内容(application.yml
的设置相同)
--- tracing: jaeger: enabled: true sampler: probability: 1 sender: agentHost: jaeger-agent.istio-system agentPort: 5775
但是,我们仅看到由Istio(Envoy代理)生成的跟踪条目,但没有看到方法调用本身的详细信息。
关于这里可能出什么问题的任何想法?
我们正在使用Micronaut(v1.2.0)构建一个Web应用程序,该应用程序将部署在Kubernetes集群中(我们将Istio用作服务网格)。我们想对关键方法的调用进行检测,因此...
Istio具有称为Distributed Tracing的功能,该功能使用户能够跟踪分布在多个服务中的网格中的请求。这可以用于可视化请求延迟,序列化和并行性。