【问题标题】:Spring Integration Channel Statistics MetricsSpring 集成通道统计指标
【发布时间】:2017-06-22 12:21:41
【问题描述】:

不知何故,我没有捕捉到 Spring-Integration Metrics 内容。我想要的是统计输出,每秒有多少消息通过消息通道,最小和最大吞吐量是多少。如果我使用newTicketChannel.getSendRate(),那么我会变成以下输出:

我清楚的是N(消息数)。对我来说意味着每秒处理的消息数量(?)。但我完全不清楚minmax 的值。我需要类似 min=200, max=380 => 表示 200 是最后一分钟的最低费率,最大 380 最后一分钟,或类似的东西。

好的实用方法是怎样的?提前致谢。 :-)

【问题讨论】:

    标签: statistics spring-integration metrics channel


    【解决方案1】:

    minmax 是自上一个 reset() 起;如果您不重置,它们代表自应用启动以来的最小值/最大值。

    平均值是随着时间和消息数量的指数移动平均值。

    Documentation here.

    您必须定期reset() MessageChannelMetrics 才能获得新的最小值/最大值。

    【讨论】:

    • 感谢您快速重播。当您说minmax 从启动应用程序开始时保持不变时,为什么这些值有时会有所不同。我还有一个问题,max mean 怎么可能?我已经找到的文档,但不知怎的,它没有在那里回答我的问题。
    • 我现在做了一个调度程序,它经常重置统计信息,这对我有用。谢谢你 。 :-) 测试
    • 但是 getSendRate().getMin()getSendRate().getMax() 输出我真的不明白,如果意思是例如300,例如最大 0.02 怎么可能?我也通过重置获得了这些值。到目前为止,我的答案中描述的计算只得到了有意义的值
    • 我只是看了一下代码;我同意,这有点令人困惑,但是 min 和 max 不是速率,它们是发送之间的持续时间。所以[N=100, min=0.100000, max=0.127000, mean=9.696723, sigma=0.010866] 表示发送之间的最短时间为 100 毫秒,最长为 127 毫秒,平均(移动)速率为每秒 9.7 条消息。所以最大速率是1 / min duration,最小速率是1 / max duration
    • 但是绝对最小/最大速率(或持续时间)不是很有趣;最小/最大移动平均速率可能更有用。随时打开new feature JIRA issuecontributions are welcome
    【解决方案2】:

    同时为了得到我想要的结果,我做了以下事情:

    通缉

    1. 消息/秒
    2. 最大消息/秒
    3. 最少消息/秒

    解决方案:

    1. 1/newTicketChannel.getSendDuration().getMean() * 1000
    2. 1/newTicketChannel.getSendDuration().getMin() * 1000
    3. 1/newTicketChannel.getSendDuration().getMax() * 1000

    如果 Spring 集成指标中有通用功能可以获得相同的结果,请不要犹豫告诉我。有人提供有关我在问题中发布的值的平均值的信息会很酷。

    感谢和欢呼:-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 2012-10-29
      • 1970-01-01
      • 2017-10-10
      • 1970-01-01
      • 2020-01-12
      • 1970-01-01
      相关资源
      最近更新 更多