簡體   English   中英

如何與Webflux端點一起使用Micrometer計時器

[英]How to use Micrometer timer together with webflux endpoints

有沒有簡單的方法可以將千分尺計時器與Webflux控制器一起使用?

似乎@Timed僅適用於非反應性方法。 對於無功,它記錄的時間值非常低。

我發現了一個類似的問題: 如何使用千分尺計時器記錄異步方法的持續時間(返回Mono或Flux),但是對於這樣一個常見問題,答案太復雜了

有任何想法嗎?

如果您想測量Web-flux方法/調用的時間,則可以直接從Flux / Mono輕松使用指標(以及將項目配置為導出指標,例如石墨)

一個例子看起來像

Flux<String> dataStream = Flux.just("AA", "BB", "CC", "DD");
dataStream.name("my-test-name").tag("key1", "value1").metrics().subscribe(p ->
   {
      System.out.println("Hello " + p);
      try {
         Thread.sleep(1000);
      } catch (InterruptedException e) {
         e.printStackTrace();
   }
});

然后在我的情況下,石墨中的度量標准例如位於application-name.magdalena下。 反應器流量持續時間異常流量我的測試名稱狀態完成類型 p50 p50-是一半請求的延遲(或p98延遲為請求的98%等)。 感謝他們在這個示例中的人為延遲,您可以觀察到它們的值接近4000(處理1s x 4個元素)。

application.yml中的石墨配置:

management:
    metrics:
        export:
            graphite:
                enabled: true
                host: graphite-lhr10.something.com
                port: 2003
                protocol: plaintext

@Timed注釋對我也不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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