Skip to content

Instantly share code, notes, and snippets.

@pvillega
Created December 11, 2016 19:35
Show Gist options
  • Save pvillega/cd28bbea71577bb7bc098e562efdf56b to your computer and use it in GitHub Desktop.
Save pvillega/cd28bbea71577bb7bc098e562efdf56b to your computer and use it in GitHub Desktop.
Metrics not working :(
object MainServer extends TwitterServer {
override def failfastOnFlagsNotParsed: Boolean = true
// some flags received via config
val port: Flag[Int] = flag("port", 8081, "TCP port for HTTP server")
// logging formatter
override def defaultFormatter = new Formatter(
timezone = Some("UTC"),
prefix = "<yyyy-MM-dd HH:mm:ss.SSS> [%.3s] %s: "
)
// some stats
val echosProcessed: Counter = statsReceiver.counter("echos_processed")
val getEchosLatency: Stat = statsReceiver.stat("get_echos_latency")
// sample endpoint
val echo: Endpoint[String] = get("echo" :: string) { (phrase: String) =>
Stat.time(getEchosLatency) {
log.debug(s"Received a request for 'echo' at ${Time.now}")
echosProcessed.incr()
Ok(phrase)
}
}
// Public server API (for customers)
val api: Service[Request, Response] = echo.toService
def main(): Unit = {
log.info("Serving the Questionnaire application")
val server =
Http.server
.withStatsReceiver(statsReceiver)
.withLabel("questionnaire-server")
.withRequestTimeout(Duration.fromSeconds(30))
.serve(s":${port()}", api)
onExit { server.close() }
// launches admin server
Await.ready(adminHttpServer)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment