in http-core/src/main/scala/com/twitter/finatra/http/exceptions/ExceptionManager.scala [97:125]
private def statException(
routeInfo: Option[RouteInfo],
request: Request,
throwable: Throwable,
response: Response
): Unit = {
val path: String = routeInfo match {
case Some(info) =>
info.sanitizedPath
case _ =>
RouteInfo.sanitize(request.path)
}
val methodName = request.method.toString
val statusCode = response.status.code.toString
statsReceiver
.hierarchicalScope("route").hierarchicalScope(path).hierarchicalScope(methodName)
.hierarchicalScope("status").hierarchicalScope(statusCode)
.hierarchicalScope("mapped").hierarchicalScope(exceptionDetails(throwable))
.dimensionalScope("srv").dimensionalScope("finatra")
.dimensionalScope("http").dimensionalScope("errors")
.label("route", routeInfo.fold("unknown")(_.path))
.label("method", methodName)
.label("status", statusCode)
.label("exception", Throwables.RootCause.nested(throwable).getClass.getName)
.counter()
.incr()
}