mirror of
https://github.com/digital-asset/daml.git
synced 2024-09-19 00:37:23 +03:00
Add counting future metrics (#5743)
* Added counting metrics. * Code tidying. CHANGELOG_BEGIN CHANGELOG_END * Rename based on review suggestion.
This commit is contained in:
parent
ea50c329f2
commit
d6c5a2532d
@ -7,7 +7,7 @@ import java.util.concurrent.CompletionStage
|
||||
|
||||
import akka.Done
|
||||
import akka.stream.scaladsl.{Keep, Source}
|
||||
import com.codahale.metrics.Timer
|
||||
import com.codahale.metrics.{Counter, Timer}
|
||||
import com.daml.dec.DirectExecutionContext
|
||||
|
||||
import scala.concurrent.Future
|
||||
@ -32,6 +32,15 @@ object Timed {
|
||||
result
|
||||
}
|
||||
|
||||
def trackedFuture[T](counter: Counter, future: => Future[T]): Future[T] = {
|
||||
counter.inc()
|
||||
future.andThen { case _ => counter.dec() }(DirectExecutionContext)
|
||||
}
|
||||
|
||||
def timedAndTrackedFuture[T](timer: Timer, counter: Counter, future: => Future[T]): Future[T] = {
|
||||
Timed.future(timer, trackedFuture(counter, future))
|
||||
}
|
||||
|
||||
def source[Out, Mat](timer: Timer, source: => Source[Out, Mat]): Source[Out, Mat] = {
|
||||
val ctx = timer.time()
|
||||
source
|
||||
|
Loading…
Reference in New Issue
Block a user