如何在Micronaut中更改端点的路径?

lena_punkt

我已使用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,然后再代理到该路径,但这确实很丑陋,而不是我想解决的方式。

lena_punkt

多亏了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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章