【发布时间】:2021-11-26 12:41:31
【问题描述】:
所以我尝试在 Spring Boot 2.X 上使用 Micrometer 将指标记录到 Prometheus。我将依赖项添加到 gradle 中:
implementation 'io.micrometer:micrometer-registry-prometheus:latest.release'
然后我尝试添加任何指标,例如:
CompositeMeterRegistry compositeRegistry = new CompositeMeterRegistry();
PrometheusMeterRegistry prometheusMeterRegistry =
new PrometheusMeterRegistry(PrometheusConfig.DEFAULT);
compositeRegistry.add(prometheusMeterRegistry);
long start = System.currentTimeMillis();
doSomething();
long duration = System.currentTimeMillis() - start;
Timer timer =
Timer.builder("test.times")
.publishPercentiles(0.5, 0.75, 0.95)
.maximumExpectedValue(Duration.ofSeconds(15))
.minimumExpectedValue(Duration.ofSeconds(15))
.register(compositeRegistry);
timer.record(duration, TimeUnit.MILLISECONDS);
compositeRegistry.timer("test.times.new").record(duration, TimeUnit.MILLISECONDS);
AtomicInteger test = compositeRegistry.gauge("custom.gauge", new AtomicInteger(8));
test.set(30);
Counter counter = compositeRegistry.counter("custom.counter");
counter.increment();
当我转到 localhost:port/actuator/prometheus 时,我可以看到一些指标,例如:
# HELP jvm_gc_pause_seconds Time spent in GC pause
# TYPE jvm_gc_pause_seconds summary
jvm_gc_pause_seconds_count{action="end of minor GC",cause="Metadata GC Threshold",} 1.0
jvm_gc_pause_seconds_sum{action="end of minor GC",cause="Metadata GC Threshold",} 0.045
jvm_gc_pause_seconds_count{action="end of minor GC",cause="G1 Evacuation Pause",} 2.0
jvm_gc_pause_seconds_sum{action="end of minor GC",cause="G1 Evacuation Pause",} 0.036
但是我添加的计时器、仪表或计数器一无所有。我通过代码调试了自己,我可以看到它已执行,当我查看compositeRegistry-Object 时,即使我在值中看不到任何度量的任何结果,我也可以看到一些可用的东西:
我是否缺少需要配置的内容?或者有什么实现问题?
【问题讨论】:
标签: spring-boot prometheus micrometer spring-micrometer