Monitoring Javamelody Collector服务器计数错误:点击数呈指数增长

Monitoring Javamelody Collector服务器计数错误:点击数呈指数增长,monitoring,java-melody,Monitoring,Java Melody,我的Javamelody收集器服务器有问题。我在本地启动了一个运行Javamelody收集器服务器的Tomcat服务器,并启动了三个应用程序,它们在启动时注册到收集器服务器。然后,我向应用程序发送一些请求(10个请求或类似的请求),以检查Javamelody是否正确识别它们 但是,当我添加一个聚合时,我将三个应用程序放在一起,问题开始出现: 首先,应用程序“all”的http请求计数通常不等于其他三个应用程序的http请求之和。相反,我观察到它是其中一个应用程序的http请求数的两倍或相等。有时

我的Javamelody收集器服务器有问题。我在本地启动了一个运行Javamelody收集器服务器的Tomcat服务器,并启动了三个应用程序,它们在启动时注册到收集器服务器。然后,我向应用程序发送一些请求(10个请求或类似的请求),以检查Javamelody是否正确识别它们

但是,当我添加一个聚合时,我将三个应用程序放在一起,问题开始出现:

首先,应用程序“all”的http请求计数通常不等于其他三个应用程序的http请求之和。相反,我观察到它是其中一个应用程序的http请求数的两倍或相等。有时,它也被分配了权利

但我的主要问题是在那之后。当我让Javamelody运行时,它会自动增加点击次数。它是在聚合“all”和一个应用程序中实现的(我可以通过开头描述的步骤重现)。至少有一次,它增加了三个应用程序中两个应用程序的点击次数,但我无法重现

此外,请求的数量似乎呈指数级增长(每次Javamelody调用应用程序获取信息时大约翻一番),因此在短时间内我最终会收到万亿次请求,甚至请求数量会溢出

我试图追查这起不良行为,但无法解决。我跟踪了addHits函数(在CounterRequest.java中),发现Javamelody在那里添加了大量请求。我无法通过调试跟踪错误,因为调用addHit方法的位置不同,所以我无法确定错误的位置

在此附件中,我添加了一些有关收集器服务器配置的图片,以及我可以观察到的行为

如果你能在这里帮助我,我将非常高兴

亲切问候,, 贾尼斯


在可选的collect服务器中使用受监控应用程序的聚合时,javamelody中出现了一个问题

我想现在已经由 您可以在下载collect服务器的快照构建,包括修复程序


如果已经为您修好了,请告诉我们。

非常感谢!!服务器现在工作得更好了!包括所有应用程序的聚合“all”的初始化现在是正确的。此外,如果让它运行一段时间,所有应用程序的命中率都会保持正确。然而,在总量的计算中仍然存在一个问题。它不再呈指数级增长,但收集器服务器仍然会将请求命中添加到聚合中,即使这三个应用程序中没有发出或记录任何请求。我多次尝试使用不同数量的请求发送到应用程序,并注意到一种模式:假设聚合“all”最初有n个请求命中。然后,每分钟将这个数字n添加到聚合“all”的命中计数中。例如,当我添加聚合“all”时,如果我的三个应用程序有11个、10个和20个命中,那么它将被初始化为41个命中。但是,在1、2、3和4分钟后,命中率分别为82、123、164和205次。我还注意到,当我停止收集器服务器并重新运行时,不良行为消失,整个收集器服务器工作正常。因此,我怀疑收集器服务器设置了一个变量来初始化聚合中的计数数,但之后无法用0覆盖它。停止服务器可能会删除此变量或将其设置为0,从而导致应用程序随后正确运行。另一种选择是,该变量仅用于初始化,但实际上在代码中的另一个位置使用不正确。还有一件事可能也值得注意:如果我在所有应用程序的http请求计数为零时定义聚合,则聚合将以零正确初始化。但是,当我对应用程序提出请求时(例如,每个应用程序一个请求)聚合得到http计数3,然后从那一刻起每分钟将其计数再加上3。请注意,未来:在可选的collect服务器中,来自其他应用程序的聚合的这一全新功能经过了战斗测试,这很好:-),但如果您最终不介意使用单独的图形、统计数据和数据对于每个应用程序的存储,在注册受监视的应用程序时,您只能使用相同的应用程序名称。这样,您就可以为所有(3)个已启动的应用程序聚合报告,而不必为它们添加聚合。数据存储将从3+1数据集缩减为单个聚合数据集。