我在Azure Kubernetes Cluster中在监视名称空间中设置了Jaeger,并在监视域中部署了装有jaeger客户端库的容器。该服务已启动并正在运行,当我在浏览器中指定:/ actuator时,就可以使用执行器查看跟踪。但是Jaeger UI的服务下拉列表中没有填充相同的微服务。
下面是我正在使用的文件。
DemoOpentracingApplication.java
@SpringBootApplication
public class DemoOpentracingApplication {
@Bean
public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder) {
return restTemplateBuilder.build();
}
@Bean
public io.opentracing.Tracer jaegerTracer() {
return new Configuration("spribng-boot", new Configuration.SamplerConfiguration(ProbabilisticSampler.TYPE, 1),
new Configuration.ReporterConfiguration()).getTracer();
}
public static void main(String[] args) {
SpringApplication.run(DemoOpentracingApplication.class, args);
}
}
HelloController.java
@RestController
public class HelloController {
@Autowired
private RestTemplate restTemplate;
//private final Counter totalRequests= Counter.build().name("requests_total").help("Total Number of Requests").register();
@Timed(
value= "prometheus.hello.request",
histogram=true,
percentiles= {0.95,0.99},
extraTags= {"version","1.0"}
)
@RequestMapping("/hello")
public String hello() {
return ("Hello From OPenTracing Controller");
}
@Timed(
value= "prometheus.chain.request",
histogram=true,
percentiles= {0.95,0.99},
extraTags= {"version","1.0"}
)
@RequestMapping("/chaining")
public String chaining() {
ResponseEntity<String> response = restTemplate.getForEntity("http://localhost:8080/hello",String.class);
return "Chaining+" + response.getBody();
}
}
POM.xml
.....
<dependency>
<groupId>io.opentracing.contrib</groupId>
<artifactId>opentracing-spring-web-autoconfigure</artifactId>
<version>0.0.4</version>
</dependency>
....
为什么在Kubernetes的Jaeger UI中没有填充检测服务?
答案 0 :(得分:0)
您可以通过将选项<testsuite>
设置为true来打开客户端中的调试功能(或使用JAEGER_REPORTER_LOG_SPANS
中的相关选项,因为这似乎是您的使用方式)。
一旦确认正在生成跟踪并将其发送到代理,请将代理中的日志级别设置为ReporterConfiguration
:
debug
如果在日志中没有看到任何指示代理已收到跨度(或跨度批处理)的信息,则可能需要使用代理地址(
docker run -p... jaegertracing/jaeger-agent:1.8 --log-level=debug
和{{1} }或JAEGER_AGENT_HOST
对象中的相关选项)。
您提到要在Azure AKS中进行部署,因此,我想该代理在JAEGER_AGENT_PORT
(客户端发送跨度的默认位置)不可用。通常,在这种情况下,该代理将作为辅助工具部署: