in server/src/main/scala/com/twitter/server/handler/ThreadsHandler.scala [40:57]
def apply(req: Request): Future[Response] =
if (expectsHtml(req) && !expectsJson(req)) htmlResponse(req) else jsonResponse(req)
private def jsonResponse(req: Request): Future[Response] = {
val stacks = Thread.getAllStackTraces.asScala.map {
case (thread, stack) =>
thread.getId.toString ->
Map[String, Any](
"thread" -> thread.getName,
"daemon" -> thread.isDaemon,
"state" -> thread.getState,
"priority" -> thread.getPriority,
"stack" -> stack.toSeq.map(_.toString)
)
}
val msg = Map("threads" -> stacks)
newOk(AdminJsonConverter.writeToString(msg), "application/json;charset=UTF-8")
}