MetricsOps

org.http4s.metrics.MetricsOps
See theMetricsOps companion trait
object MetricsOps

Attributes

Companion
trait
Source
MetricsOps.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
MetricsOps.type

Members list

Value members

Concrete methods

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.

Value parameters

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

Attributes

Returns

Request[F] => Option[String]

Source
MetricsOps.scala