首页 > 解决方案 > 关于 akka 流的聚合指标

问题描述

在我的应用程序中,我有一个源,我正在为客户端调用多路复用。

就像是:

val source: RunnableGraph[Source[...]] = ...

def foo() = source.run().log("sending user something").map(...)

如果我有 1000 个客户端调用 foo 并且每秒 foo 滴答声,那么将会有数百万条毫无意义的日志消息。因此,我想摆脱上面的单个日志并将其替换为一条聚合消息,例如:

“向 X 客户发送了一些东西”。

我看过Kamon和肉桂,所以我很欣赏这可能与这些有关,但理想情况下,这样的东西有更轻量级的东西吗?

标签: scalastreamakkametrics

解决方案


我认为如果您将在这样的小窗口中聚合数据是可能的https://softwaremill.com/windowing-data-in-akka-streams/ 或者您可以拥有 Map[ClientId, Monoid[YourCallMetrics]] 并结合它虽然是可运行图


推荐阅读