diff options
author | Diego <diegolparra@gmail.com> | 2015-08-16 11:33:12 -0300 |
---|---|---|
committer | Diego <diegolparra@gmail.com> | 2015-08-16 11:33:12 -0300 |
commit | c223b5a334037c5ff3d5db026e6178a92706cdb4 (patch) | |
tree | 6da99e470bb572413d927c1833aa0f9086114c90 | |
parent | 863fe5d26cb81f92dd009ff87e7944462dadafd8 (diff) | |
download | Kamon-c223b5a334037c5ff3d5db026e6178a92706cdb4.tar.gz Kamon-c223b5a334037c5ff3d5db026e6178a92706cdb4.tar.bz2 Kamon-c223b5a334037c5ff3d5db026e6178a92706cdb4.zip |
! play: remove diagnostic context data
7 files changed, 8 insertions, 75 deletions
diff --git a/kamon-core/src/main/scala/kamon/trace/TraceLocal.scala b/kamon-core/src/main/scala/kamon/trace/TraceLocal.scala index a99fb776..460e4b22 100644 --- a/kamon-core/src/main/scala/kamon/trace/TraceLocal.scala +++ b/kamon-core/src/main/scala/kamon/trace/TraceLocal.scala @@ -35,10 +35,6 @@ object TraceLocal { def apply(mdcKey: String): AvailableToMdc = fromKey(mdcKey) } - case class HttpContext(agent: String, uri: String, xforwarded: String) - - object HttpContextKey extends TraceLocal.TraceLocalKey[HttpContext] - def store[T](key: TraceLocalKey[T])(value: Any): Unit = Tracer.currentContext match { case ctx: MetricsOnlyContext ⇒ ctx.traceLocalStorage.store(key)(value) case EmptyTraceContext ⇒ // Can't store in the empty context. diff --git a/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelicErrorLogger.scala b/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelicErrorLogger.scala index 2af94c22..c1601fa8 100644 --- a/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelicErrorLogger.scala +++ b/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelicErrorLogger.scala @@ -21,8 +21,7 @@ import java.util import akka.actor.{ Actor, ActorLogging } import akka.event.Logging.{ Error, InitializeLogger, LoggerInitialized } import com.newrelic.api.agent.{ NewRelic ⇒ NR } -import kamon.trace.TraceLocal.HttpContextKey -import kamon.trace.{ Tracer, TraceLocal, TraceContextAware } +import kamon.trace.{ Tracer, TraceContextAware } trait CustomParamsSupport { this: NewRelicErrorLogger ⇒ @@ -44,15 +43,7 @@ class NewRelicErrorLogger extends Actor with ActorLogging with CustomParamsSuppo if (error.isInstanceOf[TraceContextAware]) { val ctx = error.asInstanceOf[TraceContextAware].traceContext - val httpContext = TraceLocal.retrieve(HttpContextKey) - params put ("TraceToken", ctx.token) - - httpContext.map { httpCtx ⇒ - params put ("User-Agent", httpCtx.agent) - params put ("X-Forwarded-For", httpCtx.xforwarded) - params put ("Request-URI", httpCtx.uri) - } } customParams foreach { case (k, v) ⇒ params.put(k, v) } diff --git a/kamon-play-2.3.x/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala b/kamon-play-2.3.x/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala index 7dcb7913..c8a808ec 100644 --- a/kamon-play-2.3.x/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala +++ b/kamon-play-2.3.x/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala @@ -17,7 +17,6 @@ package kamon.play.instrumentation import kamon.Kamon import kamon.play.Play -import kamon.trace.TraceLocal.{ HttpContext, HttpContextKey } import kamon.trace._ import kamon.util.SameThreadExecutionContext import org.aspectj.lang.ProceedingJoinPoint @@ -28,8 +27,6 @@ import play.api.mvc._ @Aspect class RequestInstrumentation { - import RequestInstrumentation._ - @DeclareMixin("play.api.mvc.RequestHeader+") def mixinContextAwareNewRequest: TraceContextAware = TraceContextAware.default @@ -63,16 +60,11 @@ class RequestInstrumentation { } getOrElse result } - //store in TraceLocal useful data to diagnose errors - storeDiagnosticData(requestHeader) - //override the current trace name Tracer.currentContext.rename(playExtension.generateTraceName(requestHeader)) - // Invoke the action next(requestHeader).map(onResult)(SameThreadExecutionContext) } - pjp.proceed(Array(EssentialAction(essentialAction))) } @@ -85,17 +77,4 @@ class RequestInstrumentation { def recordHttpServerMetrics(header: ResponseHeader, traceName: String): Unit = Kamon(Play).httpServerMetrics.recordResponse(traceName, header.status.toString) - - def storeDiagnosticData(request: RequestHeader): Unit = { - val agent = request.headers.get(UserAgent).getOrElse(Unknown) - val forwarded = request.headers.get(XForwardedFor).getOrElse(Unknown) - - TraceLocal.store(HttpContextKey)(HttpContext(agent, request.uri, forwarded)) - } -} - -object RequestInstrumentation { - val UserAgent = "User-Agent" - val XForwardedFor = "X-Forwarded-For" - val Unknown = "unknown" } diff --git a/kamon-play-2.3.x/src/test/resources/META-INF/aop.xml b/kamon-play-2.3.x/src/test/resources/META-INF/aop.xml index 2888a31a..dd2481aa 100644 --- a/kamon-play-2.3.x/src/test/resources/META-INF/aop.xml +++ b/kamon-play-2.3.x/src/test/resources/META-INF/aop.xml @@ -5,7 +5,7 @@ <aspect name="kamon.play.instrumentation.FakeRequestIntrumentation"/> </aspects> - <weaver> - <include within="play.api..*"/> - </weaver> + <weaver options="-warn:none"> + <include within="play.api..*"/> + </weaver> </aspectj> diff --git a/kamon-play-2.3.x/src/test/scala/kamon/play/RequestInstrumentationSpec.scala b/kamon-play-2.3.x/src/test/scala/kamon/play/RequestInstrumentationSpec.scala index 2796cfa5..7efb05d9 100644 --- a/kamon-play-2.3.x/src/test/scala/kamon/play/RequestInstrumentationSpec.scala +++ b/kamon-play-2.3.x/src/test/scala/kamon/play/RequestInstrumentationSpec.scala @@ -18,7 +18,6 @@ package kamon.play import kamon.Kamon import kamon.metric.instrument.CollectionContext import kamon.play.action.TraceName -import kamon.trace.TraceLocal.HttpContextKey import kamon.trace.{ Tracer, TraceLocal } import org.scalatestplus.play._ import play.api.DefaultGlobal @@ -40,7 +39,7 @@ class RequestInstrumentationSpec extends PlaySpec with OneServerPerSuite { Kamon.start() - override lazy val port: Port = 19002 + override lazy val port: Port = 19001 val executor = scala.concurrent.ExecutionContext.Implicits.global implicit override lazy val app = FakeApplication(withGlobal = Some(MockGlobalTest), withRoutes = { @@ -142,16 +141,6 @@ class RequestInstrumentationSpec extends PlaySpec with OneServerPerSuite { Kamon.metrics.find("show.some.id.get", "trace") must not be empty } - "include HttpContext information for help to diagnose possible errors" in { - Await.result(WS.url(s"http://localhost:$port/getRouted").get(), 10 seconds) - route(FakeRequest(GET, "/default").withHeaders("User-Agent" -> "Fake-Agent")) - - val httpCtx = TraceLocal.retrieve(HttpContextKey).get - httpCtx.agent must be("Fake-Agent") - httpCtx.uri must be("/default") - httpCtx.xforwarded must be("unknown") - } - "record http server metrics for all processed requests" in { val collectionContext = CollectionContext(100) Kamon.metrics.find("play-server", "http-server").get.collect(collectionContext) diff --git a/kamon-play-2.4.x/src/test/resources/META-INF/aop.xml b/kamon-play-2.4.x/src/test/resources/META-INF/aop.xml index 2888a31a..f4c4bc6e 100644 --- a/kamon-play-2.4.x/src/test/resources/META-INF/aop.xml +++ b/kamon-play-2.4.x/src/test/resources/META-INF/aop.xml @@ -5,7 +5,7 @@ <aspect name="kamon.play.instrumentation.FakeRequestIntrumentation"/> </aspects> - <weaver> - <include within="play.api..*"/> - </weaver> + <weaver options="-warn:none"> + <include within="play.api..*"/> + </weaver> </aspectj> diff --git a/kamon-spray/src/main/scala/kamon/spray/instrumentation/ServerRequestInstrumentation.scala b/kamon-spray/src/main/scala/kamon/spray/instrumentation/ServerRequestInstrumentation.scala index d76b9f58..d773ecd8 100644 --- a/kamon-spray/src/main/scala/kamon/spray/instrumentation/ServerRequestInstrumentation.scala +++ b/kamon-spray/src/main/scala/kamon/spray/instrumentation/ServerRequestInstrumentation.scala @@ -15,10 +15,8 @@ * ========================================================== */ package spray.can.server.instrumentation -import kamon.trace.TraceLocal.{ HttpContext, HttpContextKey } import org.aspectj.lang.annotation._ import kamon.trace._ -import spray.can.server.OpenRequest import spray.http.{ HttpResponse, HttpMessagePartWrapper, HttpRequest } import kamon.Kamon import kamon.spray.{ SprayExtension, Spray } @@ -28,8 +26,6 @@ import spray.http.HttpHeaders.RawHeader @Aspect class ServerRequestInstrumentation { - import ServerRequestInstrumentation._ - @DeclareMixin("spray.can.server.OpenRequestComponent.DefaultOpenRequest") def mixinContextAwareToOpenRequest: TraceContextAware = TraceContextAware.default @@ -87,9 +83,6 @@ class ServerRequestInstrumentation { recordHttpServerMetrics(response, incomingContext.name, sprayExtension) - //store in TraceLocal useful data to diagnose errors - storeDiagnosticData(openRequest) - proceedResult } } @@ -116,19 +109,4 @@ class ServerRequestInstrumentation { case response: HttpResponse ⇒ response.withHeaders(response.headers ::: RawHeader(traceTokenHeaderName, token) :: Nil) case other ⇒ other } - - def storeDiagnosticData(currentContext: TraceContextAware): Unit = { - val request = currentContext.asInstanceOf[OpenRequest].request - val headers = request.headers.map(header ⇒ header.name -> header.value).toMap - val agent = headers.getOrElse(UserAgent, Unknown) - val forwarded = headers.getOrElse(XForwardedFor, Unknown) - - TraceLocal.store(HttpContextKey)(HttpContext(agent, request.uri.toRelative.toString(), forwarded)) - } -} - -object ServerRequestInstrumentation { - val UserAgent = "User-Agent" - val XForwardedFor = "X-Forwarded-For" - val Unknown = "unknown" } |