Skip to content

Instantly share code, notes, and snippets.

@AkhilJ876
Created June 13, 2016 21:22
Show Gist options
  • Save AkhilJ876/3e38757c28d43924f296dd2d147c0bd9 to your computer and use it in GitHub Desktop.
Save AkhilJ876/3e38757c28d43924f296dd2d147c0bd9 to your computer and use it in GitHub Desktop.
import com.twitter.bijection.twitter_util.UtilBijections._
import com.twitter.finagle.http.{Request, Response, Status, Version}
import com.twitter.finagle.{Http, Service}
import com.twitter.finagle.stats.NullStatsReceiver
import com.twitter.finagle.tracing.Trace
import com.twitter.finagle.param.Label
import com.twitter.finagle.zipkin.thrift.ZipkinTracer
import com.twitter.util.Await
import scala.concurrent.{Future => SFuture}
import scala.concurrent.ExecutionContext.Implicits.global
object ZipkinTestServer extends App {
val tracer = ZipkinTracer.mk(host = "192.168.99.100", port = 9410, statsReceiver = new NullStatsReceiver, sampleRate = 1.0F)
val myService = new UserResponse
val server = Http.server.withTracer(tracer).configured(Label("ZipkinTestServer")).serve(":8081", myService)
Await.ready(server)
}
class UserResponse extends Service[Request, Response] {
def apply(request: Request) = {
val response = Response(Version.Http11, Status.Ok)
val responseString = futureFunc1(request)
println(responseString)
twitter2ScalaFuture[Response].invert(responseString map {
case a =>
println("Inside Success" + a)
response.setContentString(a)
response
})
}
def futureFunc1(req: Request): SFuture[String] = Trace.traceService("Function1","Test"){
// Call to lower Function/Service
val func2String = futureFunc2()
func2String
}
def futureFunc2(): SFuture[String] = {
SFuture {
val str = "Hello World"
str
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment