use*_*252 9 spring-boot feign micrometer spring-micrometer
OpenApi 文档说它支持微米。整合如何运作?除了这个小文档之外我找不到任何东西。
我在 Spring Boot 应用程序中有一个 FeignClient
@FeignClient(name = "SomeService", url = "xxx", configuration = FeignConfiguration.class)
public interface SomeService {
@GET
@Path("/something")
Something getSomething();
}
Run Code Online (Sandbox Code Playgroud)
与配置
public class FeignConfiguration {
@Bean
public Capability capability() {
return new MicrometerCapability();
}
}
Run Code Online (Sandbox Code Playgroud)
和微米积分作为依赖项
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-micrometer</artifactId>
<version>10.12</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
该代码进行了调用,但我无法通过actuator概述找到任何新指标,需要一些有关我的 HTTP 请求的一般信息。缺少什么部分?
我添加了对此的支持spring-cloud-openfeign。在下一个版本(2020.0.2)之后,如果设置了千分尺,您唯一需要做的就是将其放入feign-micrometer类路径中。
我不确定您是否这样做,但我建议spring-cloud-openfeign您使用哪些自动配置 Feign 组件。不幸的是,它似乎不会自动配置Capability(这就是您的解决方案不起作用的原因之一),因此您需要手动执行此操作,请参阅文档如何执行此操作。
我能够结合 OpenFeign 和 Spring Cloud OpenFeign 文档中的示例来完成这项工作:
@Import(FeignClientsConfiguration.class)
class FooController {
private final FooClient fooClient;
public FooController(Decoder decoder, Encoder encoder, Contract contract, MeterRegistry meterRegistry) {
this.fooClient = Feign.builder()
.encoder(encoder)
.decoder(decoder)
.contract(contract)
.addCapability(new MicrometerCapability(meterRegistry))
.target(FooClient.class, "https://PROD-SVC");
}
}
Run Code Online (Sandbox Code Playgroud)
我做了什么:
spring-cloud-openfeignfeign-micrometer(参见feign-bom)FeignClientsConfiguration传递MeterRegistry至关重要MicrometerCapability之后,我打电话给客户,得到了新的指标:
feign.Clientfeign.Feignfeign.codec.Decoderfeign.codec.Decoder.response_size| 归档时间: |
|
| 查看次数: |
10964 次 |
| 最近记录: |