我已使用cli设置了micronaut,并希望添加一个提供普罗米修斯度量的端点。按照指南(和Micronaut:如何以Prometheus格式获取指标?),我application.yml
通过以下方式添加了一些内容:
micronaut:
application:
name: foo-service
metrics:
enabled: true
export:
prometheus:
enabled: true
step: PT1M
descriptions: true
endpoints:
metrics:
enabled: true
prometheus:
enabled: true
sensitive: false
现在,我有两个端点,一个在/metrics
,一个在/prometheus
。但是,我想/metrics
返回普罗米修斯指标。知道我该如何实现吗?
我知道我可以将所有端点放在一个子路径下,例如/endpoints
使用endpoints.all.path
,然后再代理到该路径,但这确实很丑陋,而不是我想解决的方式。
多亏了james-kleeth,尽管这基本上是重新实现,但我走上了正确的道路。我禁用了prometheus端点并添加了一个控制器。但是,当端点被禁用时,我无法再注入它。它的实现是“琐碎的”(只是引用了普罗米修斯注册表)。这是我的解决方案:
package my.company.service
import io.micrometer.prometheus.PrometheusMeterRegistry
import io.micronaut.configuration.metrics.annotation.RequiresMetrics
import io.micronaut.http.annotation.Controller
import io.micronaut.http.annotation.Get
import io.micronaut.http.annotation.Produces
import io.swagger.v3.oas.annotations.Operation
import javax.inject.Inject
@RequiresMetrics
@Controller("/metrics")
class MetricsController @Inject constructor(val prometheusMeterRegistry: PrometheusMeterRegistry) {
@Operation(summary = "Provide metrics in Prometheus format")
@Get
@Produces("text/plain; version=0.0.4")
fun metrics(): String = prometheusMeterRegistry.scrape()
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句