Spring Boot Micronaut测微计Prometheus通用标签配置不适用于所有指标

ktca8awb  于 2022-11-05  发布在  Spring
关注(0)|答案(1)|浏览(150)

Sping Boot 允许以声明方式配置通用标记:
Commons标记应用于所有量表,并且可以进行配置,如以下示例所示:

management.metrics.tags.region=us-east-1

因此,在Sping Boot 中,如果management.metrics.tags.application=myapp就位,则所有指标都包括该标记,例如:

jvm_memory_max_bytes{application="myapp",area="heap",id="G1 Survivor Space"} -1.0
system_cpu_count{application="myapp"} 16.0

我想在Micronaut应用程序中实现同样的功能。似乎没有一种声明性的方式来实现它,相反,我们需要使用MeterRegistryConfigurer通过编程来定制它。
我创建了以下内容:

@Singleton
@RequiresMetrics
class PrometheusMeterRegistryConfigurer: MeterRegistryConfigurer<MeterRegistry> {

    override fun configure(meterRegistry: MeterRegistry) {
        meterRegistry.config().commonTags("application", "myapp")
    }

    override fun getType(): Class<MeterRegistry> {
        return MeterRegistry::class.java
    }
}

问题是它并没有将其应用于所有指标,一些指标被标记(http_server_requests_seconds_max),而其他指标没有被标记(jvm_memory_max_bytessystem_cpu_count等):

http_server_requests_seconds_max{application="myapp",exception="none",method="GET",status="200",uri="/actuator/prometheus",} 0.131942121
jvm_memory_max_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'",} 1.22023936E8
system_cpu_count 16.0

如何使标签适用于所有测微-普罗米修斯指标?

xqkwcwgp

xqkwcwgp1#

通过添加两个不同的MeterRegistryConfigurer解决:
第一个

相关问题