簡體   English   中英

測量消息在“ Akka流”或“接收器”中到達的速率

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM