[英]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.