【问题标题】:Javamelody Collector Server Counting Error: Number of hits increase exponentiallyJavamelody 收集器服务器计数错误:点击数呈指数增长
【发布时间】:2020-12-21 18:16:03
【问题描述】:

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

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

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

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

此外,请求的数量似乎呈指数级增长(每次 Javamelody 调用应用程序以获取信息时大约增加一倍),因此我在短时间内收到了数万亿个请求,并且数量的请求甚至溢出。

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

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

如果你能在这里帮助我,我会很高兴。

亲切的问候, 贾尼斯

Overflow of http hits

Behavior of hits(1)

Behavior of hits(2)

Behavior of hits(3)

Configurations

【问题讨论】:

    标签: monitoring java-melody


    【解决方案1】:

    在可选收集服务器中使用受监控应用程序的聚合时,javamelody 出现问题。

    我认为它现在已由 https://github.com/javamelody/javamelody/commit/f77e5d6 修复 您可以在 http://javamelody.org/downloads/javamelody-collector-server-1.87.0-SNAPSHOT.war 下载收集服务器的快照版本,包括修复程序

    让我们知道它是否适合您。

    【讨论】:

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