如何修复在应用程序启动时未加载的micronaut千分尺Bean

时间:2019-04-12 12:27:21

标签: kotlin applicationcontext micronaut micrometer

A创建了一个简单的micronaut应用程序,该应用程序公开了千分尺。我想添加自定义标签,但是启动时不会加载执行该操作的bean。

我想念什么? 备注:使用intellj启动时,在本地PC上不是这样。但是当部署在k8上时,它确实可以工作。

Bean:

@Factory
open class MeterFilterFactory {

    @Bean
    @Singleton
    fun addCommonTags(): MeterFilter {
        return MeterFilter.commonTags(
            Arrays.asList(
                Tag.of("service", "my-super-service"),
                Tag.of("special", "tag comes here")
            )
        )
    }
}

应用程序配置

micronaut:
  metrics:
    enabled: true
    sensitive: true
    export:
      prometheus:
        enabled: true
        step: PT1M
        descriptions: true
  distribution:
    percentiles-histogram:
      http.server.requests: true
    sla:
      http.server.requests: 1ms,5ms
  binders:
    logback:
      enabled: false
    processor:
      enabled: false
    uptime:
      enabled: false

构建gradle

    compile "io.micronaut.configuration:micronaut-micrometer-registry-statsd"
    compile "io.micronaut:micronaut-management"
    compile "io.micronaut.configuration:micronaut-micrometer-registry-prometheus"

目前我回来了

{"name":"system.cpu.usage","measurements":[{"statistic":"VALUE","value":0.07751937984496124}]}

但是我想念我尝试添加的标签。

2 个答案:

答案 0 :(得分:0)

如果您用@Context标记bean,则在初始化上下文时将对bean进行初始化。参见https://docs.micronaut.io/1.0.5/api/io/micronaut/context/annotation/Context.html

我希望有帮助。

答案 1 :(得分:0)

IntelliJ缓存清除+重新启动解决了该问题。