diff --git a/core/src/main/scala/fr/davit/akka/http/metrics/core/scaladsl/HttpMetricsServerBuilder.scala b/core/src/main/scala/fr/davit/akka/http/metrics/core/scaladsl/HttpMetricsServerBuilder.scala index e976a7d8..a56df365 100644 --- a/core/src/main/scala/fr/davit/akka/http/metrics/core/scaladsl/HttpMetricsServerBuilder.scala +++ b/core/src/main/scala/fr/davit/akka/http/metrics/core/scaladsl/HttpMetricsServerBuilder.scala @@ -23,7 +23,7 @@ import akka.http.scaladsl._ import akka.http.scaladsl.model.{HttpRequest, HttpResponse} import akka.http.scaladsl.server.Route import akka.http.scaladsl.settings.ServerSettings -import akka.stream.scaladsl.Source +import akka.stream.scaladsl.{Source, Flow} import akka.stream.{Materializer, SystemMaterializer} import fr.davit.akka.http.metrics.core.{HttpMetrics, HttpMetricsHandler} @@ -80,6 +80,19 @@ final case class HttpMetricsServerBuilder( )(materializer) } + @nowarn("msg=deprecated") + def bindFlow(flow: Flow[HttpRequest, HttpResponse, _]): Future[ServerBinding] = { + val meteredFlow = HttpMetrics.meterFlow(metricsHandler).join(flow) + http.bindAndHandle( + meteredFlow, + interface, + port, + context, + settings, + log + )(materializer) + } + @nowarn("msg=deprecated") def bind(route: Route): Future[ServerBinding] = { val handler = HttpMetrics.metricsRouteToFunction(route)(system)