diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2014-11-03 23:28:45 +0100 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2014-11-03 23:29:34 +0100 |
commit | 5042eebf9f52bfd59fb623a1d6ea6451dd524cf7 (patch) | |
tree | ee650afffbb8afda2850867adec0f2ca299228fb /kamon-play | |
parent | 59faf588080b137817444a6877170e2bd687427f (diff) | |
download | Kamon-5042eebf9f52bfd59fb623a1d6ea6451dd524cf7.tar.gz Kamon-5042eebf9f52bfd59fb623a1d6ea6451dd524cf7.tar.bz2 Kamon-5042eebf9f52bfd59fb623a1d6ea6451dd524cf7.zip |
Include missing files after the merge
Diffstat (limited to 'kamon-play')
-rw-r--r-- | kamon-play/src/main/scala/kamon/play/Play.scala | 2 | ||||
-rw-r--r-- | kamon-play/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala | 22 |
2 files changed, 10 insertions, 14 deletions
diff --git a/kamon-play/src/main/scala/kamon/play/Play.scala b/kamon-play/src/main/scala/kamon/play/Play.scala index 6e2de3c1..0f23baf5 100644 --- a/kamon-play/src/main/scala/kamon/play/Play.scala +++ b/kamon-play/src/main/scala/kamon/play/Play.scala @@ -21,7 +21,7 @@ import akka.event.Logging import kamon.Kamon import kamon.http.HttpServerMetrics import kamon.metric.Metrics -import play.api.libs.ws.WSRequest +import play.api.libs.ws.WS.WSRequest import play.api.mvc.RequestHeader object Play extends ExtensionId[PlayExtension] with ExtensionIdProvider { diff --git a/kamon-play/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala b/kamon-play/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala index 1ba871a7..ea188dbf 100644 --- a/kamon-play/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala +++ b/kamon-play/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala @@ -21,10 +21,12 @@ import kamon.trace.{ TraceContextAware, TraceRecorder } import org.aspectj.lang.ProceedingJoinPoint import org.aspectj.lang.annotation._ import play.api.mvc._ +import play.api.Routes import play.libs.Akka @Aspect class RequestInstrumentation { + import RequestInstrumentation.normaliseTraceName @DeclareMixin("play.api.mvc.RequestHeader+") def mixinContextAwareNewRequest: TraceContextAware = TraceContextAware.default @@ -53,7 +55,7 @@ class RequestInstrumentation { // TODO: Move to a Kamon-specific dispatcher. val executor = Kamon(Play)(Akka.system()).defaultDispatcher - def onResult(result: Result): Result = { + def onResult(result: SimpleResult): Result = { TraceRecorder.withTraceContextAndSystem { (ctx, system) ⇒ ctx.finish() @@ -75,20 +77,14 @@ class RequestInstrumentation { // Invoke the action next(requestHeader).map(onResult)(executor) } - pjp.proceed(Array(EssentialAction(essentialAction))) - } - private def recordHttpServerMetrics(result: Result, traceName: String, playExtension: PlayExtension): Unit = - playExtension.httpServerMetrics.recordResponse(traceName, result.header.status.toString, 1L) + pjp.proceed(Array(essentialAction)) + } - @Around("execution(* play.api.GlobalSettings+.onError(..)) && args(request, ex)") - def aroundOnError(pjp: ProceedingJoinPoint, request: TraceContextAware, ex: Throwable): Any = request.traceContext match { - case None ⇒ pjp.proceed() - case Some(ctx) ⇒ { - val actorSystem = ctx.system - Kamon(Play)(actorSystem).publishErrorMessage(actorSystem, ex.getMessage, ex) - pjp.proceed() - } + @Before("execution(* play.api.GlobalSettings+.onError(..)) && args(request, ex)") + def beforeOnError(request: TraceContextAware, ex: Throwable): Unit = TraceRecorder.withTraceContextAndSystem { (ctx, system) ⇒ + val playExtension = Kamon(Play)(system) + playExtension.httpServerMetrics.recordResponse(ctx.name, "505") } private def recordHttpServerMetrics(header: ResponseHeader, traceName: String, playExtension: PlayExtension): Unit = |