gpt4 book ai didi

istio - 方法调用的 Micronaut 和 OpenTracing

转载 作者:行者123 更新时间:2023-12-05 07:18:36 25 4
gpt4 key购买 nike

我们正在使用 Micronaut (v1.2.0) 构建一个网络应用程序,它将部署在 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 代理)生成的跟踪条目,而看不到方法调用本身的详细信息。

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

最佳答案

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

为此,Istio 使用 Envoy Proxy - Tracing功能。

您可以部署 Bookinfo Application看看如何 Trace context propagation有效。

关于istio - 方法调用的 Micronaut 和 OpenTracing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58249869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com