作者:从了良后 | 来源:互联网 | 2022-12-01 19:41
我有api端点:/ user / {tenant} / create
我正在使用带有测微计的Spring Boot 2进行度量。
默认情况下,Spring Boot 2端点的@Timer注释包含以下标记:exception,method,uri,status
我想将api参数“ tenant”的传递值添加为端点的额外标记
如何使用弹簧靴2和千分尺进行操作
1> František Ha..:
使用custom WebMvcTagsProvider
,例如:
@Bean
public WebMvcTagsProvider webMvcTagsProvider() {
return new WebMvcTagsProvider() {
@Override
public Iterable getTags(HttpServletRequest request, HttpServletResponse response, Object handler, Throwable exception) {
return ((Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE))
.entrySet()
.stream()
.map(entry -> new ImmutableTag(entry.getKey(), entry.getValue()))
.collect(Collectors.toList());
}
@Override
public Iterable getLongRequestTags(HttpServletRequest request, Object handler) {
return new ArrayList<>();
}
};
}