diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2014-10-24 23:58:57 +0200 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2014-10-24 23:58:57 +0200 |
commit | 3e2c2b3ba39ad8cca4874e3be3004f8a182dab36 (patch) | |
tree | ebff9c94ac7441322a1b30e6c492e7e3f8b0f0ce | |
parent | 81ae33c18c7d875240db1b2bbf8fcb2d6e41ca47 (diff) | |
download | Kamon-3e2c2b3ba39ad8cca4874e3be3004f8a182dab36.tar.gz Kamon-3e2c2b3ba39ad8cca4874e3be3004f8a182dab36.tar.bz2 Kamon-3e2c2b3ba39ad8cca4874e3be3004f8a182dab36.zip |
+ akka-remote: create a new kamon-akka-remote module, closes #99
-rw-r--r-- | kamon-akka-remote/src/main/java/akka/remote/instrumentation/TraceContextAwareWireFormats.java (renamed from kamon-core/src/main/java/akka/remote/instrumentation/TraceContextAwareWireFormats.java) | 0 | ||||
-rw-r--r-- | kamon-akka-remote/src/main/resources/META-INF/aop.xml | 12 | ||||
-rw-r--r-- | kamon-akka-remote/src/main/scala/kamon/instrumentation/akka/RemotingInstrumentation.scala (renamed from kamon-core/src/main/scala/kamon/instrumentation/akka/RemotingInstrumentation.scala) | 9 | ||||
-rw-r--r-- | kamon-akka-remote/src/test/scala/kamon/instrumentation/akka/RemotingInstrumentationSpec.scala (renamed from kamon-core/src/test/scala/kamon/instrumentation/akka/RemotingInstrumentationSpec.scala) | 3 | ||||
-rw-r--r-- | kamon-core/src/main/resources/META-INF/aop.xml | 3 | ||||
-rw-r--r-- | kamon-core/src/main/scala/kamon/trace/TraceRecorder.scala | 21 | ||||
-rw-r--r-- | project/Projects.scala | 16 |
7 files changed, 40 insertions, 24 deletions
diff --git a/kamon-core/src/main/java/akka/remote/instrumentation/TraceContextAwareWireFormats.java b/kamon-akka-remote/src/main/java/akka/remote/instrumentation/TraceContextAwareWireFormats.java index 1190cb10..1190cb10 100644 --- a/kamon-core/src/main/java/akka/remote/instrumentation/TraceContextAwareWireFormats.java +++ b/kamon-akka-remote/src/main/java/akka/remote/instrumentation/TraceContextAwareWireFormats.java diff --git a/kamon-akka-remote/src/main/resources/META-INF/aop.xml b/kamon-akka-remote/src/main/resources/META-INF/aop.xml new file mode 100644 index 00000000..ba1c8e79 --- /dev/null +++ b/kamon-akka-remote/src/main/resources/META-INF/aop.xml @@ -0,0 +1,12 @@ +<!DOCTYPE aspectj PUBLIC "-//AspectJ//DTD//EN" "http://www.eclipse.org/aspectj/dtd/aspectj.dtd"> + +<aspectj> + <aspects> + <!-- Remoting and Cluster --> + <aspect name="akka.remote.instrumentation.RemotingInstrumentation"/> + </aspects> + + <weaver> + <include within="akka..*"/> + </weaver> +</aspectj>
\ No newline at end of file diff --git a/kamon-core/src/main/scala/kamon/instrumentation/akka/RemotingInstrumentation.scala b/kamon-akka-remote/src/main/scala/kamon/instrumentation/akka/RemotingInstrumentation.scala index 00747935..3278ec67 100644 --- a/kamon-core/src/main/scala/kamon/instrumentation/akka/RemotingInstrumentation.scala +++ b/kamon-akka-remote/src/main/scala/kamon/instrumentation/akka/RemotingInstrumentation.scala @@ -79,9 +79,14 @@ class RemotingInstrumentation { val ackAndEnvelope = AckAndTraceContextAwareEnvelopeContainer.parseFrom(bs.toArray) if (ackAndEnvelope.hasEnvelope && ackAndEnvelope.getEnvelope.hasTraceContext) { - val traceContext = ackAndEnvelope.getEnvelope.getTraceContext + val remoteTraceContext = ackAndEnvelope.getEnvelope.getTraceContext val system = provider.guardian.underlying.system - val tc = TraceRecorder.joinRemoteTraceContext(traceContext, system) + val tc = TraceRecorder.joinRemoteTraceContext( + remoteTraceContext.getTraceName(), + remoteTraceContext.getTraceToken(), + remoteTraceContext.getStartMilliTime(), + remoteTraceContext.getIsOpen(), + system) TraceRecorder.setContext(Some(tc)) } diff --git a/kamon-core/src/test/scala/kamon/instrumentation/akka/RemotingInstrumentationSpec.scala b/kamon-akka-remote/src/test/scala/kamon/instrumentation/akka/RemotingInstrumentationSpec.scala index 5ce90047..29276dd0 100644 --- a/kamon-core/src/test/scala/kamon/instrumentation/akka/RemotingInstrumentationSpec.scala +++ b/kamon-akka-remote/src/test/scala/kamon/instrumentation/akka/RemotingInstrumentationSpec.scala @@ -2,6 +2,7 @@ package kamon.instrumentation.akka import akka.actor.SupervisorStrategy.Resume import akka.actor._ +import akka.pattern.{ ask, pipe } import akka.remote.RemoteScope import akka.routing.RoundRobinGroup import akka.testkit.{ ImplicitSender, TestKitBase } @@ -9,7 +10,7 @@ import akka.util.Timeout import com.typesafe.config.ConfigFactory import kamon.trace.TraceRecorder import org.scalatest.{ Matchers, WordSpecLike } -import akka.pattern.{ ask, pipe } + import scala.concurrent.duration._ import scala.util.control.NonFatal diff --git a/kamon-core/src/main/resources/META-INF/aop.xml b/kamon-core/src/main/resources/META-INF/aop.xml index ee2af95a..3a029ace 100644 --- a/kamon-core/src/main/resources/META-INF/aop.xml +++ b/kamon-core/src/main/resources/META-INF/aop.xml @@ -14,9 +14,6 @@ <aspect name="akka.instrumentation.ActorCellInstrumentation"/> <aspect name="akka.instrumentation.ActorLoggingInstrumentation"/> - <!-- Remoting and Cluster --> - <aspect name="akka.remote.instrumentation.RemotingInstrumentation"/> - <!-- Dispatchers --> <aspect name="akka.instrumentation.DispatcherInstrumentation"/> <aspect name="akka.instrumentation.DispatcherMetricCollectionInfoIntoDispatcherMixin"/> diff --git a/kamon-core/src/main/scala/kamon/trace/TraceRecorder.scala b/kamon-core/src/main/scala/kamon/trace/TraceRecorder.scala index bc7a0db2..778edc42 100644 --- a/kamon-core/src/main/scala/kamon/trace/TraceRecorder.scala +++ b/kamon-core/src/main/scala/kamon/trace/TraceRecorder.scala @@ -16,8 +16,6 @@ package kamon.trace -import akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext - import scala.language.experimental.macros import java.util.concurrent.atomic.AtomicLong import kamon.macros.InlineTraceContextMacro @@ -45,24 +43,15 @@ object TraceRecorder { new SimpleMetricCollectionContext(name, finalToken, metadata, TraceContextOrigin.Local, system) } - def joinRemoteTraceContext(remoteTraceContext: RemoteTraceContext, system: ActorSystem): TraceContext = { + def joinRemoteTraceContext(traceName: String, traceToken: String, startMilliTime: Long, isOpen: Boolean, system: ActorSystem): TraceContext = { new SimpleMetricCollectionContext( - remoteTraceContext.getTraceName(), - remoteTraceContext.getTraceToken(), + traceName, + traceToken, Map.empty, TraceContextOrigin.Remote, system, - remoteTraceContext.getStartMilliTime(), - remoteTraceContext.getIsOpen()) - } - - def forkTraceContext(context: TraceContext, newName: String): TraceContext = { - new SimpleMetricCollectionContext( - newName, - context.token, - Map.empty, - TraceContextOrigin.Local, - context.system) + startMilliTime, + isOpen) } def setContext(context: Option[TraceContext]): Unit = traceContextStorage.set(context) diff --git a/project/Projects.scala b/project/Projects.scala index e3321887..6ab6ae71 100644 --- a/project/Projects.scala +++ b/project/Projects.scala @@ -8,7 +8,7 @@ object Projects extends Build { lazy val root = Project("root", file(".")) .aggregate(kamonCore, kamonSpray, kamonNewrelic, kamonPlayground, kamonDashboard, kamonTestkit, kamonPlay, kamonStatsD, - kamonDatadog, kamonSystemMetrics, kamonLogReporter) + kamonDatadog, kamonSystemMetrics, kamonLogReporter, kamonAkkaRemote) .settings(basicSettings: _*) .settings(formatSettings: _*) .settings(noPublishing: _*) @@ -24,10 +24,21 @@ object Projects extends Build { mappings in (Compile, packageSrc) ++= mappings.in(kamonMacros, Compile, packageSrc).value, libraryDependencies ++= compile(akkaActor, aspectJ, hdrHistogram) ++ - optional(akkaRemote, akkaCluster, logback, scalazConcurrent) ++ + optional(logback, scalazConcurrent) ++ test(scalatest, akkaTestKit, sprayTestkit, akkaSlf4j, logback)) + lazy val kamonAkkaRemote = Project("kamon-akka-remote", file("kamon-akka-remote")) + .dependsOn(kamonCore) + .settings(basicSettings: _* ) + .settings(formatSettings: _*) + .settings(aspectJSettings: _*) + .settings( + libraryDependencies ++= + compile(akkaRemote, akkaCluster) ++ + test(scalatest, akkaTestKit)) + + lazy val kamonSpray = Project("kamon-spray", file("kamon-spray")) .dependsOn(kamonMacros % "compile-internal, test-internal") .settings(basicSettings: _*) @@ -58,6 +69,7 @@ object Projects extends Build { .settings(basicSettings: _*) .settings(formatSettings: _*) .settings(noPublishing: _*) + .settings(aspectJSettings: _*) .settings( libraryDependencies ++= compile(akkaActor, akkaSlf4j, sprayCan, sprayClient, sprayRouting, logback)) |