方法调用的 Micronaut 和 OpenTrace



我们正在使用 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实现了过滤器方法(也尝试了与@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 代理(生成的跟踪条目,但我们看不到方法调用本身的详细信息。

关于这里可能出现什么问题的任何想法?

Istio 具有称为分布式跟踪的功能,它使用户能够在分布在多个服务的网格中跟踪请求。这可用于可视化请求延迟、序列化和并行性。

为此,Istio 使用 Envoy 代理 - 跟踪功能。

您可以部署 Bookinfo 应用程序并查看跟踪上下文传播的工作原理。

如果您在此票证中解释相同的问题,则需要等待micronaut的下一个版本或使用micronaut人员在那里提到的解决方法。

https://github.com/micronaut-projects/micronaut-core/issues/2209

相关内容

  • 没有找到相关文章

最新更新