aboutsummaryrefslogtreecommitdiff
path: root/kamon-spray/src/main/scala/kamon/spray/instrumentation/ClientRequestInstrumentation.scala
diff options
context:
space:
mode:
Diffstat (limited to 'kamon-spray/src/main/scala/kamon/spray/instrumentation/ClientRequestInstrumentation.scala')
-rw-r--r--kamon-spray/src/main/scala/kamon/spray/instrumentation/ClientRequestInstrumentation.scala8
1 files changed, 4 insertions, 4 deletions
diff --git a/kamon-spray/src/main/scala/kamon/spray/instrumentation/ClientRequestInstrumentation.scala b/kamon-spray/src/main/scala/kamon/spray/instrumentation/ClientRequestInstrumentation.scala
index 4c408567..1950787d 100644
--- a/kamon-spray/src/main/scala/kamon/spray/instrumentation/ClientRequestInstrumentation.scala
+++ b/kamon-spray/src/main/scala/kamon/spray/instrumentation/ClientRequestInstrumentation.scala
@@ -24,7 +24,7 @@ import spray.http._
import spray.http.HttpHeaders.RawHeader
import kamon.trace._
import kamon.spray.{ ClientInstrumentationLevel, Spray }
-import akka.actor.ActorRef
+import akka.actor.{ ActorRef, Status }
import scala.concurrent.{ Future, ExecutionContext }
import akka.util.Timeout
@@ -87,7 +87,7 @@ class ClientRequestInstrumentation {
def aroundDispatchToCommander(pjp: ProceedingJoinPoint, requestContext: TraceContextAware, message: Any): Any = {
if (requestContext.traceContext.nonEmpty) {
Tracer.withContext(requestContext.traceContext) {
- if (message.isInstanceOf[HttpMessageEnd])
+ if (message.isInstanceOf[HttpMessageEnd] || message.isInstanceOf[Status.Failure])
requestContext.asInstanceOf[SegmentAware].segment.finish()
pjp.proceed()
@@ -124,7 +124,7 @@ class ClientRequestInstrumentation {
request.asInstanceOf[SegmentAware].segment = segment
val responseFuture = originalSendReceive.apply(request)
- responseFuture.map(result ⇒ segment.finish())(SameThreadExecutionContext)
+ responseFuture.onComplete(_ ⇒ segment.finish())(SameThreadExecutionContext)
responseFuture
} getOrElse originalSendReceive.apply(request)
@@ -148,4 +148,4 @@ class ClientRequestInstrumentation {
pjp.proceed(Array[AnyRef](request, modifiedHeaders))
}
-} \ No newline at end of file
+}