簡體   English   中英

如何根據執行器指標的指標名稱配置附加標簽

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM