在这种情况下,由于您使用的是“内置”指标,因此您可以 使用自定义 MeterBinder 实现覆盖io.micrometer.core.instrument.binder.MeterBinder#bindTo
、重新定义,并将 system.cpu.usage 定义为(以及您使用的其他指标)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)
如果您不想依赖于千分尺的某些预定义度量,例如捕获一些自定义列表大小,这就是您可以做的。
private static Map<String, Long> strongRefGauge = new ConcurrentHashMap<>();
要添加值,请执行以下操作
registry.gauge("CustomListSizeGuage", getMyCustomGuageTagsFor("myListName"), strongRefGauge, g -> g.get("myListName")).put("myListName", list.size());