scala - 关于 akka 流的聚合指标
问题描述
在我的应用程序中,我有一个源,我正在为客户端调用多路复用。
就像是:
val source: RunnableGraph[Source[...]] = ...
def foo() = source.run().log("sending user something").map(...)
如果我有 1000 个客户端调用 foo 并且每秒 foo 滴答声,那么将会有数百万条毫无意义的日志消息。因此,我想摆脱上面的单个日志并将其替换为一条聚合消息,例如:
“向 X 客户发送了一些东西”。
我看过Kamon和肉桂,所以我很欣赏这可能与这些有关,但理想情况下,这样的东西有更轻量级的东西吗?
解决方案
我认为如果您将在这样的小窗口中聚合数据是可能的https://softwaremill.com/windowing-data-in-akka-streams/ 或者您可以拥有 Map[ClientId, Monoid[YourCallMetrics]] 并结合它虽然是可运行图
推荐阅读
- javascript - react-router-dom(ReactJS) 嵌套组件
- javascript - 在图像上使用 model.predict
- swiftui - SwiftUI VStack 将子项对齐到顶部
- php - 如何只允许检查一个单选按钮,然后能够在 PHP 中处理它?
- html - 使用 hr 时 css 中的转换属性不起作用
- tableau-api - 无法让多个图表重叠
- apache - .htaccess 文件中的错误,试图覆盖 HTTP 标头设置
- javascript - 你可能需要一个合适的加载器来处理这个文件类型的打字稿
- javascript - 如何从 URL 中检索参数,然后将该检索到的参数插入到 Google Chrome 扩展程序中的 GET 请求中?
- servicestack - SS 5.10.4 的 App Studio 连接问题