![](/img/trans.png)
[英]Akka: - why is it that messages are not guaranteed to arrive (after being send)? What is the failure rate for messages?
[英]Measure the rate at which messages arrive in a Akka Streams Flow or a Sink
我已經編寫了一個Akka Streams應用程序,並且可以正常工作。
我要做的是將JMX控制台附加到運行Akka Streams應用程序的JVM實例上,然后研究流入我的Sink和Flows的消息量。
這可能嗎? 我用谷歌搜索,但沒有找到具體的方法。
我的應用程序的最后階段是Cassandra數據庫的接收器。 我想知道每秒發送到接收器的郵件速率。
我還想在圖形中選擇一個隨機流,然后知道每秒流經該流的消息數。
有沒有開箱即用的東西? 還是我應該在每個流程中編寫諸如dropwizard之類的代碼來測量速率。
目前,您沒有什么可以“開箱即用”來監控Akka Stream中的費率。
但是,這是一個非常簡單的工具,您可以提取一個監視Flow
,將其放置在適合您需要的任何位置。
以下示例基於Kamon ,但是您可以看到它可以很容易地移植到Dropwizard:
def meter[T](name: String): Flow[T, T, NotUsed] = {
val msgCounter = Kamon.metrics.counter(name)
Flow[T].map { x =>
msgCounter.increment()
x
}
}
mySource
.via(meter("source"))
.via(myFlow)
.via(meter("sink"))
.runWith(mySink)
上面是在此存儲庫中可以找到的演示的一部分。 這樣的臨時解決方案的優勢是可以為您的應用程序量身定制,同時保持簡單性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.