我正在尝试在 spring 应用程序的纯 Java 类中添加一个 merics,就像解释的一样 here
static final Histogram requestLatency = Histogram.build()
.name("my_custom_service_method_latency_seconds")
.help("Request latency in seconds for my_custom_service
.").register();
...然后在方法中:
Histogram.Timer requestTimer = requestLatency.startTimer();
try{
....
}finally{
requestTimer.observeDuration();
}
但在 prometheus 仪表板上我看不到这样的指标。
我在这里遗漏了什么吗?
编辑:在 application.properties 中,我有:
management.endpoint.prometheus.enabled=true
management.metrics.export.prometheus.enabled=true
management.endpoint.health.show-details=always
答案 0 :(得分:0)
我的问题是使用默认的 .register()
方法,该方法使用了 defaultRegisty
:
public C register() {
return register(CollectorRegistry.defaultRegistry);
}
这是对我有用的代码(在注入 CollectorReqistry
之后):
Histogram.build()
.name("requests_latency")
.help("Request latency in seconds.")
.buckets(0.05, 0.1, 0.15, 0.2, 0.25, 0.3)
.labelNames("my label")
.register(collectorRegistry);