Metrics

org.http4s.client.middleware.Metrics$
object Metrics

Client middleware to record metrics for the http4s client.

This middleware will record:

  • Number of active requests
  • Time duration to receive the response headers
  • Time duration to process the whole response body
  • Time duration of errors, timeouts 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], classifierF: Request[F] => Option[String])(client: Client[F])(implicit F: Clock[F], C: Concurrent[F]): Client[F]

Wraps a Client with a middleware capable of recording metrics

Wraps a Client with a middleware capable of recording metrics

Attributes

classifierF

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

client

the Client to gather metrics from

ops

a algebra describing the metrics operations

Returns:

the metrics middleware wrapping the Client

Source:
Metrics.scala
def effect[F[_]](ops: MetricsOps[F], classifierF: Request[F] => F[Option[String]])(client: Client[F])(implicit F: Clock[F], C: Concurrent[F]): Client[F]

Wraps a Client with a middleware capable of recording metrics

Wraps a Client with a middleware capable of recording metrics

Same as apply, but can classify requests effectually, e.g. performing side-effects or examining the body. 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

client

the Client to gather metrics from

ops

a algebra describing the metrics operations

Returns:

the metrics middleware wrapping the Client

Note:

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

Source:
Metrics.scala