![](/img/trans.png)
[英]How to filter out Web Client metrics by client name in SpringBoot actuator?
[英]How to configure additional tags depending on metric name for actuator metrics
无论如何我可以配置哪些标签添加到@Timed 指标? 我知道重写 MebMvcTagsProvider 或 WebMvcTagsContributor 类将返回所有 mvc 指标通用的标准标签集。 但是有什么方法可以排除或包含某些指标的动态值的标签? 就像在这种情况下:
WebMvcTagsProvider object -> provides a set of tags whose values like status etc. are set here -> tag1, val1; tag2, val2
然后我们有一个 rest api 像这样:
@Timed("metric.1")
public String api1() {}
和另一个 api 像这样:
@Timed("metric.2")
public String api2() {}
因此,在调用这两个 api 之后,我们将获得这些指标,它们都具有相同的标签集
metric-1(tag1="val1", tag2="val2", 状态=201)
metric-2(tag1="val1", tag2="val2", 状态=200)
但是我们能否为这两个指标返回不同的标签集,如下所示:
metric-1(tag1="val1", status=201)
metric-2(tag2="val2", status=200)
我找到了一个 WebMvcMetricsFilter class ,这是生成计时器的所有指标,有什么方法可以利用它来配置基于指标名称返回的标签吗?
有人可以帮我解决这个问题吗?
一种选择(因为它是 spring 并且可能有很多方法可以做到这一点)是声明一个千分尺MeterFilter
并根据名称更新标签。
@Bean
public MeterFilter meterFilter() {
return new MeterFilter() {
@Override
public Meter.Id map(Meter.Id id) {
if(id.getName().equals("metric-1")) {
return id.withTags(Tags.of("foo", "bar"));
}
// more conditions here
return id;
}
};
}
从 micrometer 查看本文档(第 6.2 节),了解如何转换指标。 您可以通过这种方式添加、更新或删除标签。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.