我在Spring Boot 2应用程序中使用MicroMeter仪表来跟踪对象的状态。当状态改变时,将调用
以下是当前的实现:
这个方法运作得很好,但问题在于当调用该方法时,所有的仪表值都会被更新。我希望只有给定
statusArrived()
方法。此函数应更新与该对象相关联的仪表。以下是当前的实现:
public class PrometheusStatusLogger {
private int currentStatus;
public void statusArrived(String id, int value) {
currentStatus = value;
Tags tags = Tags.of("product_id", id);
Gauge.builder("product_status",this::returnStatus)
.tags(tags)
.strongReference(true)
.register(Metrics.globalRegistry);
}
private int returnStatus(){
return currentStatus;
}
}
这个方法运作得很好,但问题在于当调用该方法时,所有的仪表值都会被更新。我希望只有给定
product_id
的仪表被更新。
输入:
statusArrived(1, 2);
statusArrived(2, 3);
当前的输出:
product_status{product_id=1} 3
product_status{product_id=2} 3
所有指针都已更新
期望输出结果:
product_status{product_id=1} 2
product_status{product_id=2} 3
只有带有给定 product_id 标签的表盘才会更新。
我该如何实现这个?