我想要监控已登录的用户,我正在调用API获取已登录用户的信息,以下是我使用的代码:
public class MonitorService {
private InfoCollectionService infoService;
public MonitorService(InfoCollectionService infoService) {
this.infoService = infoService
}
@Scheduled(fixedDelay = 5000)
public void currentLoggedInUserMonitor() {
infoService.getLoggedInUser("channel").forEach(channel -> {
Metrics.gauge("LoggedInUsers.Inchannel_" + channel.getchannelName(), channel.getgetLoggedInUser());
});
}
}
我看到了Prometheus里的值,但问题是过几秒钟后,这些值变成NaN。我读到Micrometer的仪表会在obj输入上使用WeakReference(因此会被垃圾回收)。我不知道该怎么解决这个问题。如果有人知道如何解决这个问题,那将是非常好的。