@FeignClient(...)
public interface SomeClient {
@RequestMapping(value = "/someUrl", method = POST, consumes = "application/json")
ResponseEntity<String> createItem(...);
}
有没有办法找到createItem API调用的响应时间?我们使用了 Spring Boot ,执行器,普罗米修斯。
@FeignClient(...)
public interface SomeClient {
@RequestMapping(value = "/someUrl", method = POST, consumes = "application/json")
ResponseEntity<String> createItem(...);
}
有没有办法找到createItem API调用的响应时间?我们使用了 Spring Boot ,执行器,普罗米修斯。
4条答案
按热度按时间yyyllmsg1#
我们有直接的和定制的方法来记录伪客户机的请求和响应(包括响应时间),我们必须注入feign.logger.level bean,就是这样。
1.* * 默认/直接方式**
有BASIC、FULL、HEADERS、NONE(默认)日志记录级别可用于了解更多详细信息
上面的bean注入将为您提供以下格式的伪装请求和响应日志:
参考
其中
configkey
表示FeignClientClassName#FeignClientCallingMethodName
例如:ApiClient#apiMethod
.参考
elapsedTime
是API调用所花费的响应时间。feign.Slf4jLogger
类使用DEBUG
级别记录假请求和响应详细信息如果底层日志记录级别高于DEBUG,则可能需要为feign
日志记录包/指定显式日志记录器类,否则它将不工作。1.* * 自定义方式**如果您喜欢使用自定义格式记录日志,那么您可以扩展
feign.Logger
类并自定义您的日志。举一个典型的例子,如果我想将请求和响应的标题详细信息作为列表记录在一行中(默认情况下Logger.Level.HEADERS将标题打印在多行中):我们还必须注入customFeignLogger类bean
如果您自己构建FeignClient,那么您可以使用定制的日志记录器来构建它:
qmelpv7a2#
将以下注解添加到项目中。
然后用
@DebugTracking
注解您要在@FeignClient
中跟踪的方法。cld4siwp3#
我正在使用以下代码(与Spring和Lombok一起使用):
ih99xse14#
正确的方法是使用上面提到的自定义记录器。使用@Aspect是错误的。使用它可以在服务周围创建额外的 Package 器。Feign已经记录了这个指标。请从Feign获取该指标。