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

Source
Metrics.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Metrics
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def apply[F[_]](ops: MetricsOps[F], emptyResponseHandler: Option[Status] = Status.NotFound.some, errorResponseHandler: (Throwable) ⇒ Option[Status] = ..., classifierF: (Request[F]) ⇒ Option[String] = (_: Request[F]) =>
    None
    )
    (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

    ops

    a algebra describing the metrics operations

    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

    classifierF

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

    returns

    the metrics middleware

  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  7. def effect[F[_]](ops: MetricsOps[F], emptyResponseHandler: Option[Status] = Status.NotFound.some, 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.

    ops

    a algebra describing the metrics operations

    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

    classifierF

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

    returns

    the metrics middleware

    Note

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

  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  17. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  18. def toString(): String
    Definition Classes
    AnyRef → Any
  19. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from AnyRef

Inherited from Any

Ungrouped