in http-server/src/main/scala/com/twitter/finatra/http/filters/StatsFilter.scala [224:253]
private def count(
duration: Duration,
request: Request,
tryResponse: Try[Response],
responseClass: ResponseClass
): Unit = {
val response = tryResponse match {
case Return(v) => v
case Throw(e) =>
logger.warn(
s"Uncaught exception: ${e.getClass.getName}. " +
s"Please ensure ${classOf[ExceptionMappingFilter[_]].getName} is installed. " +
s"For more details see: $url"
)
// Treat exceptions as empty 500 errors
SimpleResponse(Status.InternalServerError)
}
// Only increment global stats if the response is Successful or Failed, not Ignorable.
responseClass match {
case ResponseClass.Successful(_) =>
globalStats(response.statusCode).count(duration, response, responseClass)
case ResponseClass.Failed(_) =>
globalStats(response.statusCode).count(duration, response, responseClass)
case _ => // Do Nothing
}
RouteInfo(request).foreach { routeInfo =>
perRouteStats((routeInfo, request.method, response.statusCode))
.count(duration, response, responseClass)
}
}