Packages

object MetricsOps

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

Value Members

  1. def classifierFMethodWithOptionallyExcludedPath[F[_]](exclude: (String) ⇒ Boolean, excludedValue: String = "*", pathSeparator: String = "_"): (Request[F]) ⇒ Option[String]

    Given an exclude function, return a 'classifier' function, i.e.

    Given an exclude function, return a 'classifier' function, i.e. for application in org.http4s.server/client.middleware.Metrics#apply.

    Let's say you want a classifier that excludes integers since your paths consist of: * GET /users/{integer} = GET_users_* * POST /users = POST_users * PUT /users/{integer} = PUT_users_* * DELETE /users/{integer} = DELETE_users_*

    In such a case, we could use:

    classifierFMethodWithOptionallyExcludedPath( exclude = { str: String => scala.util.Try(str.toInt).isSuccess }, excludedValue = "*", intercalateValue = "_" )

    Chris Davenport notes the following on performance considerations of exclude's function value:

    > It's worth noting that this runs on every segment of a path. So note that if an intermediate Throwables with > Stack traces is known and discarded, there may be a performance penalty, such as the above example with Try(str.toInt). > I benchmarked some approaches and regex matches should generally be preferred over Throwable's > in this position.

    exclude

    For a given String, namely a path value, determine whether the value gets excluded.

    excludedValue

    Indicates the String value to be supplied for an excluded path's field.

    pathSeparator

    Value to use for separating the metrics fields' values

    returns

    Request[F] => Option[String]