aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/instrumentation
diff options
context:
space:
mode:
authorIvan Topolnak <ivantopo@gmail.com>2013-11-05 18:38:39 -0300
committerIvan Topolnak <ivantopo@gmail.com>2013-11-05 18:38:39 -0300
commit26003feac484c971abf7639dc3adb628c5f118c3 (patch)
treec22effcf90aea23af6ce23beff4735c7de59131a /kamon-core/src/main/scala/kamon/instrumentation
parent84711adba09c64b75369f8b801819a90198238c6 (diff)
downloadKamon-26003feac484c971abf7639dc3adb628c5f118c3.tar.gz
Kamon-26003feac484c971abf7639dc3adb628c5f118c3.tar.bz2
Kamon-26003feac484c971abf7639dc3adb628c5f118c3.zip
basic separation of concerns between sub-projects
Diffstat (limited to 'kamon-core/src/main/scala/kamon/instrumentation')
-rw-r--r--kamon-core/src/main/scala/kamon/instrumentation/ActorInstrumentation.scala42
-rw-r--r--kamon-core/src/main/scala/kamon/instrumentation/ActorLoggingInstrumentation.scala32
-rw-r--r--kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala50
-rw-r--r--kamon-core/src/main/scala/kamon/instrumentation/ExecutorServiceMetrics.scala6
4 files changed, 3 insertions, 127 deletions
diff --git a/kamon-core/src/main/scala/kamon/instrumentation/ActorInstrumentation.scala b/kamon-core/src/main/scala/kamon/instrumentation/ActorInstrumentation.scala
deleted file mode 100644
index 4e078201..00000000
--- a/kamon-core/src/main/scala/kamon/instrumentation/ActorInstrumentation.scala
+++ /dev/null
@@ -1,42 +0,0 @@
-package kamon.instrumentation
-
-import akka.actor.{Props, ActorSystem, ActorRef}
-import akka.dispatch.{MessageDispatcher, Envelope}
-import kamon.{Tracer}
-import kamon.instrumentation.SimpleContextPassingInstrumentation.SimpleTraceMessage
-import kamon.trace.TraceContext
-
-trait ActorInstrumentationConfiguration {
- def sendMessageTransformation(from: ActorRef, to: ActorRef, message: Any): Any
- def receiveInvokeInstrumentation(system: ActorSystem, self: ActorRef, props: Props, dispatcher: MessageDispatcher, parent: ActorRef): ActorReceiveInvokeInstrumentation
-}
-
-
-trait ActorReceiveInvokeInstrumentation {
- def preReceive(envelope: Envelope): (Envelope, Option[TraceContext])
-}
-
-object ActorReceiveInvokeInstrumentation {
- val noopPreReceive = new ActorReceiveInvokeInstrumentation{
- def preReceive(envelope: Envelope): (Envelope, Option[TraceContext]) = (envelope, None)
- }
-}
-
-class SimpleContextPassingInstrumentation extends ActorInstrumentationConfiguration {
- def sendMessageTransformation(from: ActorRef, to: ActorRef, message: Any): Any = SimpleTraceMessage(message, Tracer.context)
-
- def receiveInvokeInstrumentation(system: ActorSystem, self: ActorRef, props: Props, dispatcher: MessageDispatcher, parent: ActorRef): ActorReceiveInvokeInstrumentation = {
- new ActorReceiveInvokeInstrumentation {
- def preReceive(envelope: Envelope): (Envelope, Option[TraceContext]) = envelope match {
- case env @ Envelope(SimpleTraceMessage(msg, ctx), _) => (env.copy(message = msg), ctx)
- case anyOther => (anyOther, None)
- }
- }
- }
-}
-
-object SimpleContextPassingInstrumentation {
- case class SimpleTraceMessage(message: Any, context: Option[TraceContext])
-}
-
-
diff --git a/kamon-core/src/main/scala/kamon/instrumentation/ActorLoggingInstrumentation.scala b/kamon-core/src/main/scala/kamon/instrumentation/ActorLoggingInstrumentation.scala
deleted file mode 100644
index 9b53bd5d..00000000
--- a/kamon-core/src/main/scala/kamon/instrumentation/ActorLoggingInstrumentation.scala
+++ /dev/null
@@ -1,32 +0,0 @@
-package kamon.instrumentation
-
-import org.aspectj.lang.annotation.{Around, Pointcut, DeclareMixin, Aspect}
-import kamon.{Tracer}
-import org.aspectj.lang.ProceedingJoinPoint
-import org.slf4j.MDC
-import kamon.trace.TraceContext
-
-@Aspect
-class ActorLoggingInstrumentation {
-
-
- @DeclareMixin("akka.event.Logging.LogEvent+")
- def traceContextMixin: ContextAware = new ContextAware {
- def traceContext: Option[TraceContext] = Tracer.context()
- }
-
- @Pointcut("execution(* akka.event.slf4j.Slf4jLogger.withMdc(..)) && args(logSource, logEvent, logStatement)")
- def withMdcInvocation(logSource: String, logEvent: ContextAware, logStatement: () => _): Unit = {}
-
- @Around("withMdcInvocation(logSource, logEvent, logStatement)")
- def putTraceContextInMDC(pjp: ProceedingJoinPoint, logSource: String, logEvent: ContextAware, logStatement: () => _): Unit = {
- logEvent.traceContext match {
- case Some(ctx) =>
- MDC.put("uow", ctx.uow)
- pjp.proceed()
- MDC.remove("uow")
-
- case None => pjp.proceed()
- }
- }
-}
diff --git a/kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala b/kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala
deleted file mode 100644
index 9b5ce0a4..00000000
--- a/kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala
+++ /dev/null
@@ -1,50 +0,0 @@
-package kamon.instrumentation
-
-import org.aspectj.lang.annotation._
-import org.aspectj.lang.ProceedingJoinPoint
-import akka.actor.{Props, ActorSystem, ActorRef}
-import kamon.{Tracer}
-import akka.dispatch.{Envelope, MessageDispatcher}
-import com.codahale.metrics.Timer
-import scala.Some
-import kamon.trace.context.TracingAwareContext
-import kamon.trace.TraceContext
-
-case class TraceableMessage(traceContext: Option[TraceContext], message: Any, timer: Timer.Context)
-case class DefaultTracingAwareEnvelopeContext(traceContext: Option[TraceContext] = Tracer.traceContext.value, timestamp: Long = System.nanoTime) extends TracingAwareContext
-
-@Aspect
-class ActorCellInvokeInstrumentation {
-
- @Pointcut("execution(akka.actor.ActorCell.new(..)) && args(system, ref, props, dispatcher, parent)")
- def actorCellCreation(system: ActorSystem, ref: ActorRef, props: Props, dispatcher: MessageDispatcher, parent: ActorRef): Unit = {}
-
- @Pointcut("(execution(* akka.actor.ActorCell.invoke(*)) || execution(* akka.routing.RoutedActorCell.sendMessage(*))) && args(envelope)")
- def invokingActorBehaviourAtActorCell(envelope: Envelope) = {}
-
- @Around("invokingActorBehaviourAtActorCell(envelope)")
- def around(pjp: ProceedingJoinPoint, envelope: Envelope): Unit = {
- //safe cast
- val msgContext = envelope.asInstanceOf[TracingAwareContext].traceContext
-
- Tracer.traceContext.withValue(msgContext) {
- pjp.proceed()
- }
- }
-}
-
-@Aspect
-class EnvelopeTracingContext {
-
- @DeclareMixin("akka.dispatch.Envelope")
- def mixin: TracingAwareContext = DefaultTracingAwareEnvelopeContext()
-
- @Pointcut("execution(akka.dispatch.Envelope.new(..)) && this(ctx)")
- def requestRecordInit(ctx: TracingAwareContext): Unit = {}
-
- @After("requestRecordInit(ctx)")
- def whenCreatedRequestRecord(ctx: TracingAwareContext): Unit = {
- // Necessary to force the initialization of TracingAwareRequestContext at the moment of creation.
- ctx.traceContext
- }
-}
diff --git a/kamon-core/src/main/scala/kamon/instrumentation/ExecutorServiceMetrics.scala b/kamon-core/src/main/scala/kamon/instrumentation/ExecutorServiceMetrics.scala
index b4f8a475..3a091775 100644
--- a/kamon-core/src/main/scala/kamon/instrumentation/ExecutorServiceMetrics.scala
+++ b/kamon-core/src/main/scala/kamon/instrumentation/ExecutorServiceMetrics.scala
@@ -21,7 +21,7 @@ class ActorSystemInstrumentation {
@After("actorSystemInstantiation(name, applicationConfig, classLoader)")
def registerActorSystem(name: String, applicationConfig: Config, classLoader: ClassLoader): Unit = {
- Kamon.Metric.registerActorSystem(name)
+ //Kamon.Metric.registerActorSystem(name)
}
}
@@ -35,7 +35,7 @@ class ForkJoinPoolInstrumentation {
@After("forkJoinPoolInstantiation(parallelism, threadFactory, exceptionHandler)")
def initializeMetrics(parallelism: Int, threadFactory: ForkJoinPool.ForkJoinWorkerThreadFactory, exceptionHandler: Thread.UncaughtExceptionHandler): Unit = {
- val (actorSystemName, dispatcherName) = threadFactory match {
+ /*val (actorSystemName, dispatcherName) = threadFactory match {
case mtf: MonitorableThreadFactory => splitName(mtf.name, Kamon.Metric.actorSystemNames)
case _ => ("Unknown", "Unknown")
}
@@ -45,7 +45,7 @@ class ForkJoinPoolInstrumentation {
activeThreadsHistogram = m.activeThreadCount
poolSizeHistogram = m.poolSize
println(s"Registered $dispatcherName for actor system $actorSystemName")
- }
+ }*/
}
def splitName(threadFactoryName: String, knownActorSystems: List[String]): (String, String) = {