mirror of
https://github.com/digital-asset/daml.git
synced 2024-09-19 16:57:40 +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.Done
|
||||||
import akka.stream.scaladsl.{Keep, Source}
|
import akka.stream.scaladsl.{Keep, Source}
|
||||||
import com.codahale.metrics.Timer
|
import com.codahale.metrics.{Counter, Timer}
|
||||||
import com.daml.dec.DirectExecutionContext
|
import com.daml.dec.DirectExecutionContext
|
||||||
|
|
||||||
import scala.concurrent.Future
|
import scala.concurrent.Future
|
||||||
@ -32,6 +32,15 @@ object Timed {
|
|||||||
result
|
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] = {
|
def source[Out, Mat](timer: Timer, source: => Source[Out, Mat]): Source[Out, Mat] = {
|
||||||
val ctx = timer.time()
|
val ctx = timer.time()
|
||||||
source
|
source
|
||||||
|
Loading…
Reference in New Issue
Block a user