Metrics

org.http4s.server.middleware.Metrics$
object Metrics

Server middleware to record metrics for the http4s server.

This middleware will record:

  • Number of active requests
  • Time duration to send the response headers
  • Time duration to send the whole response body
  • Time duration of errors and other abnormal terminations

This middleware can be extended to support any metrics ecosystem by implementing the org.http4s.metrics.MetricsOps type

Attributes

Source:
Metrics.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Metrics.type

Members list

Concise view

Value members

Concrete methods

def apply[F[_]](ops: MetricsOps[F], emptyResponseHandler: Option[Status], errorResponseHandler: Throwable => Option[Status], classifierF: Request[F] => Option[String])(routes: HttpRoutes[F])(implicit F: Clock[F], C: MonadCancel[F, Throwable]): HttpRoutes[F]

A server middleware capable of recording metrics

A server middleware capable of recording metrics

Attributes

classifierF

a function that allows to add a classifier that can be customized per request

emptyResponseHandler

an optional http status to be registered for requests that do not match

errorResponseHandler

a function that maps a java.lang.Throwable to an optional http status code to register

ops

a algebra describing the metrics operations

Returns:

the metrics middleware

Source:
Metrics.scala
def effect[F[_]](ops: MetricsOps[F], emptyResponseHandler: Option[Status], errorResponseHandler: Throwable => Option[Status], classifierF: Request[F] => F[Option[String]])(routes: HttpRoutes[F])(implicit F: Clock[F], C: MonadCancel[F, Throwable]): HttpRoutes[F]

A server middleware capable of recording metrics

A server middleware capable of recording metrics

Same as apply, but can classify requests effectually, e.g. performing side-effects. Failed attempt to classify the request (e.g. failing with F.raiseError) leads to not recording metrics for that request.

Attributes

classifierF

a function that allows to add a classifier that can be customized per request

emptyResponseHandler

an optional http status to be registered for requests that do not match

errorResponseHandler

a function that maps a java.lang.Throwable to an optional http status code to register

ops

a algebra describing the metrics operations

Returns:

the metrics middleware

Note:

Compiling the request body in classifierF is unsafe, unless you are using some caching middleware.

Source:
Metrics.scala