aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kamon-core/src/main/scala/kamon/trace/TraceLocal.scala4
-rw-r--r--kamon-newrelic/src/main/scala/kamon/newrelic/NewRelicErrorLogger.scala11
-rw-r--r--kamon-play-2.3.x/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala21
-rw-r--r--kamon-play-2.3.x/src/test/resources/META-INF/aop.xml6
-rw-r--r--kamon-play-2.3.x/src/test/scala/kamon/play/RequestInstrumentationSpec.scala13
-rw-r--r--kamon-play-2.4.x/src/test/resources/META-INF/aop.xml6
-rw-r--r--kamon-spray/src/main/scala/kamon/spray/instrumentation/ServerRequestInstrumentation.scala22
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"
}