aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2014-10-24 23:58:57 +0200
committerIvan Topolnjak <ivantopo@gmail.com>2014-10-24 23:58:57 +0200
commit3e2c2b3ba39ad8cca4874e3be3004f8a182dab36 (patch)
treeebff9c94ac7441322a1b30e6c492e7e3f8b0f0ce
parent81ae33c18c7d875240db1b2bbf8fcb2d6e41ca47 (diff)
downloadKamon-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.xml12
-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.xml3
-rw-r--r--kamon-core/src/main/scala/kamon/trace/TraceRecorder.scala21
-rw-r--r--project/Projects.scala16
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))