我们正在使用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 (特使代理)生成的跟踪条目,但是我们看不到方法调用本身的细节。
对这里可能出了什么问题有什么想法吗?
发布于 2019-10-10 08:31:45
Istio有一个名为分布式跟踪的特性,它使用户能够跟踪分布在多个服务中的网格中的请求。这可以用于可视化请求延迟、序列化和并行性。
为此,Istio使用公使代理追踪特性。
您可以部署Bookinfo应用并查看跟踪上下文传播是如何工作的。
发布于 2019-10-16 13:14:47
如果您在这张票证中解释了相同的问题,您需要等待micronaut的下一个版本,或者使用micronaut人员提到的解决方法。
https://github.com/micronaut-projects/micronaut-core/issues/2209
https://stackoverflow.com/questions/58249869
复制相似问题