从主机发送trace到Jaeger all-in-one - operator实例的问题



根据Jaeger文档中的说明在Docker Desktop (windows) Kubernetes集群中安装Jaeger操作符一体化实例

使用端口转发,端口16686能够访问Jaeger UI。Jaeger-query服务(默认)是可见的。

在pom.xml中部署了一个简单的spring-boot(版本2.7.X)应用程序,其依赖关系如下。假设我有两个服务Service-1和Service-2,其中service1有端点/path1,它使用RestTemplate java客户机访问Service-2/path2并在控制台上显示响应。

<dependency>
<groupId>io.opentracing.contrib</groupId>
<artifactId>opentracing-spring-jaeger-cloud-starter</artifactId>
<version>3.1.2</version>
</dependency>

当服务在IntelliJ IDE中运行时,我希望跟踪以相应的服务名称(在这种情况下主要是spring引导应用程序名称)加载到Jaeger UI中,当Jaeger实例在Kubernetes集群中运行时,我在Jaeger UI中看不到跟踪。

当我对一体化映像使用docker run命令时,我可以看到服务和跟踪。

我不确定在Kubernetes集群中运行Jaeger操作符一体化实例的情况下缺少什么。我也端口转发了14268(收集器端口),仍然没有痕迹。

安装操作器后在以下配置中使用。

apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
name: simplest
  • kubectl服务列出collector、collector-headless、agent等运行成功。

我希望如果在集群中执行spring引导应用程序映像,那么跟踪将出现在Jaeger-ui中。

是否有任何原因,为什么运行在主机上的Spring引导应用程序(从IDE)不能发送trace到运行在Kubernetes集群中的Jaeger,端口转发为16686和14268 ?

从文档中,我没有得到Jaeger客户端如何从spring应用程序访问Jaeger收集器的清晰图像,等等。

我在上面的评论中是错误的,端口转发服务,特别是*-collector服务工作。

端口转发服务kubectl -n <namespace> simplest-collector 14268:14268

application.yaml

opentracing:
jaeger:
http-sender:
url: http://localhost:14268/api/traces

最新更新