在Spring Boot 2.0.2中,可以为所有控制器使用一个meterRegistry bean,同时为每个控制器提供一组自己的commonTag。例如,在我的Application.java
中,我定义了以下内容。
@Bean
public MeterRegistryCustomizer<PrometheusMeterRegistry> metrics() {
return registry -> registry.config().commonTags("messageType", "x");
}
然后,当我向registry
注册任何米时,他们将拥有此messageType = x
。是否可以在此bean中定义当在Controller的范围内执行任何函数时commonTags
将注册什么?
如果是这样怎么样?这需要在控制器本身内完成吗?
答案 0 :(得分:0)
在特定上下文中注册的仪表并没有真正的方法可以自动获取标签。 简答:您必须自己手动添加标记。
您可以使用MeterFilter
检查注册时的Meter
,并根据仪表名称添加标签。
请注意,标记最适合用于表示测量的子集:
db.request.total{queryType=userLookup}
db.request.total{queryType=groupLookup}
db.request.total{queryType=userUpdate}
这是使用标记的推荐方法,因为这样您就可以确定正在进行的请求的数量,以及可能需要针对速度进行优化的路径。
db.request.total{caller=controller}
db.request.total{caller=notAController}
在这种情况下,通过调用者分解度量标准将无用。