第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么讀取千分尺測量值有時會返回 NaN?

為什么讀取千分尺測量值有時會返回 NaN?

HUH函數(shù) 2023-03-09 14:11:12
我正在嘗試以編程方式讀取儀表,如下所示:獲取注冊表:MeterRegistry registry = Metrics.globalRegistry.getRegistries().iterator().next();讀測量:    double systemCpuUsage = registry.get("system.cpu.usage").gauge().measure().iterator().next().getValue();問題是有時我會得到NaN.我在文檔中讀到了這一點:Why is my Gauge reporting NaN or disappearing?但我不確定我該怎么辦。此外,我正在閱讀 Spring Boot 執(zhí)行器的“內(nèi)置”儀表(由 公開management.metrics.enable.process.cpu.usage=true),因此我無法更改其結(jié)構(gòu)。
查看完整描述

3 回答

?
繁華開滿天機

TA貢獻1816條經(jīng)驗 獲得超4個贊

這是由于千分尺在儀表中使用了“弱參考”。由于儀表沒有對該對象的強引用,因此當(dāng)對象被垃圾回收時,該值變?yōu)?code>NaN.

如果您確實控制了儀表的創(chuàng)建,您會希望自己存儲一個參考,或者調(diào)用strongReference(true)儀表。

如果您遇到內(nèi)置的 Spring Boot 儀表,我相信您遇到了錯誤。這很奇怪,因為ProcessorMetrics創(chuàng)建該儀表的儀表綁定器擁有自己的引用(盡管它可以為空)。

當(dāng)您看到NaN?


查看完整回答
反對 回復(fù) 2023-03-09
?
波斯汪

TA貢獻1811條經(jīng)驗 獲得超4個贊

在這種情況下,由于您使用的是“內(nèi)置”指標,因此您可以重寫 io.micrometer.core.instrument.binder.MeterBinder#bindTo,system.cpu.usage使用自定義 MeterBinder 實現(xiàn)重新定義,并將 system.cpu.usage 定義為(以及您使用的其他指標)


Gauge.builder("system.cpu.usage", operatingSystemBean, x -> invoke(systemCpuUsage))

.strongReference(true)//Add strong reference

.tags(tags)

.description("The recent cpu usage for the whole system")

.register(registry);

請參考io.micrometer.core.instrument.binder.system.ProcessorMetrics目前定義它的示例。


ProcessorMetrics 上的 bean 在中定義org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration,您也需要在某處定義您的 bean。(或標記@Component)


如果您不想依賴一些預(yù)定義的千分尺指標,比如捕獲一些自定義列表大小,這就是您可以做的。


private static Map<String, Long> strongRefGauge = new ConcurrentHashMap<>();

要添加值,請執(zhí)行以下操作


registry.gauge("CustomListSizeGuage", getMyCustomGuageTagsFor("myListName"), strongRefGauge, g -> g.get("myListName")).put("myListName", list.size());

查看完整回答
反對 回復(fù) 2023-03-09
?
犯罪嫌疑人X

TA貢獻2080條經(jīng)驗 獲得超4個贊

只想提一下可能導(dǎo)致千分尺報告 NaN 的另一個原因。它實際上是一種默認行為,當(dāng)值函數(shù)本身拋出異常時: https://github.com/micrometer-metrics/micrometer/blob/1.8.x/micrometer-core/src/main/java/io/micrometer /核心/儀器/內(nèi)部/DefaultGauge.java#L57

此異常直接在儀表本身中捕獲,并且可能會記錄在 WARN 或可能只是 DEBUG lvl 中,不確定,由于某種原因在我們的應(yīng)用程序中無法正常工作。

所以還有一個值得檢查的可能原因:)


查看完整回答
反對 回復(fù) 2023-03-09
  • 3 回答
  • 0 關(guān)注
  • 253 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號