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_bytes
、system_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
如何使标签适用于所有测微-普罗米修斯指标?
1条答案
按热度按时间xqkwcwgp1#
通过添加两个不同的
MeterRegistryConfigurer
解决:第一个