def failureClassifier()

in http-core/src/main/scala/com/twitter/finatra/http/response/EnrichedResponse.scala [700:737]


  def failureClassifier(
    classifier: => Boolean,
    request: Request,
    source: String,
    details: Seq[Any] = Seq(),
    message: String = ""
  ): EnrichedResponse = {
    if (classifier) {
      val detailStrings = details.map(_.toString)
      warn(s"Request Failure: $source/" + detailStrings.mkString("/") + " " + message)

      // generates stats in the form: service/failure/[source]/[details]
      val serviceFailureNamespace = Seq("service", "failure")
      val serviceFailureScoped = statsReceiver.scope(serviceFailureNamespace: _*)

      statsReceiver.counter(serviceFailureNamespace: _*).incr()

      serviceFailureScoped.counter(source).incr() // service/failure/AuthService
      serviceFailureScoped
        .scope(source)
        .counter(detailStrings: _*)
        .incr() // service/failure/AuthService/3040/Bad_signature
      RouteInfo(request) match {
        case Some(info) =>
          // route/hello/POST/failure/AuthService/3040/Bad_signature
          statsReceiver
            .scope("route", info.sanitizedPath, request.method.toString(), "failure")
            .scope(source)
            .counter(detailStrings: _*)
            .incr()
        case _ =>
        // No stored RouteInfo. Note: the com.twitter.finatra.http.exceptions.ExceptionManager
        // will always stat failure details for a request.
      }
    }

    this
  }