
com.twitter.server.handler.SummaryHandler.scala Maven / Gradle / Ivy
package com.twitter.server.handler
import com.twitter.finagle.Service
import com.twitter.finagle.http.{Request, Response}
import com.twitter.io.Buf
import com.twitter.server.util.HttpUtils.{expectsHtml, newOk, newResponse}
import com.twitter.util.Future
private object SummaryHandler {
val TextResponse = "Visit twitter-server's admin pages via browser for a richer experience."
def render(
finagleVersion: String,
procInfo: Seq[String]
): String =
s"""
${
(for (key <- procInfo) yield {
s"""-
${key}:
...
·
"""
}).mkString("\n")
}
- Finagle Ver: ${finagleVersion}
"""
}
class SummaryHandler extends Service[Request, Response] {
import SummaryHandler._
override def apply(req: Request): Future[Response] =
if (!expectsHtml(req)) newOk(TextResponse) else {
val finagleVersion = com.twitter.finagle.Init.finagleVersion
val procInfo = Seq("jvm/uptime", "jvm/thread/count",
"jvm/mem/current/used", "jvm/gc/msec")
val html = render(finagleVersion, procInfo)
newResponse(
contentType = "text/html;charset=UTF-8",
content = Buf.Utf8(html)
)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy