aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego <diegolparra@gmail.com>2014-08-29 02:44:47 -0300
committerDiego <diegolparra@gmail.com>2014-08-29 02:44:47 -0300
commit83dc815df9d760dd03f76e5d8dfe2d5d5274a296 (patch)
tree60f000fbdcec5b4d3e7f84e940c90989b30e0d89
parentdc5c3fb65085af225464768e0e672075713135d6 (diff)
downloadKamon-83dc815df9d760dd03f76e5d8dfe2d5d5274a296.tar.gz
Kamon-83dc815df9d760dd03f76e5d8dfe2d5d5274a296.tar.bz2
Kamon-83dc815df9d760dd03f76e5d8dfe2d5d5274a296.zip
= core: fix errors in last commit
-rw-r--r--kamon-core/src/main/scala/kamon/instrumentation/akka/RoutedActorCellInstrumentation.scala143
-rw-r--r--kamon-core/src/main/scala/kamon/metric/RouterMetrics.scala11
-rw-r--r--kamon-playground/src/main/resources/application.conf5
-rw-r--r--kamon-playground/src/main/scala/test/SimpleRequestProcessor.scala64
4 files changed, 16 insertions, 207 deletions
diff --git a/kamon-core/src/main/scala/kamon/instrumentation/akka/RoutedActorCellInstrumentation.scala b/kamon-core/src/main/scala/kamon/instrumentation/akka/RoutedActorCellInstrumentation.scala
deleted file mode 100644
index f75080db..00000000
--- a/kamon-core/src/main/scala/kamon/instrumentation/akka/RoutedActorCellInstrumentation.scala
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * =========================================================================================
- * Copyright © 2013-2014 the kamon project <http://kamon.io/>
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the
- * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
- * either express or implied. See the License for the specific language governing permissions
- * and limitations under the License.
- * =========================================================================================
- */
-
-package akka.instrumentation
-
-import akka.actor.{ActorRef, ActorSystem, Props}
-import akka.dispatch.MessageDispatcher
-import akka.routing.RoutedActorCell
-import kamon.metric.RouterMetrics
-import kamon.metric.RouterMetrics.RouterMetricsRecorder
-import org.aspectj.lang.annotation._
-
-@Aspect
-class RoutedActorCellInstrumentation {
-
- @Pointcut("execution(akka.routing.RoutedActorCell.new(..)) && this(cell) && args(system, ref, routerProps, routerDispatcher, supervisor)")
- def actorCellCreation(cell: RoutedActorCell, system: ActorSystem, ref: ActorRef, routerProps: Props, routerDispatcher: MessageDispatcher, supervisor: ActorRef ): Unit = {}
-
-// @After("actorCellCreation(cell, system, ref, routerProps, routerDispatcher, supervisor)")
- @After("execution(akka.routing.RoutedActorCell.new(..)) && this(cell) && args(*, ref, *, *, *, *)")
-// def afterCreation(cell: RoutedActorCell, system: ActorSystem, ref: ActorRef, routerProps: Props, routerDispatcher: MessageDispatcher, supervisor: ActorRef): Unit = {
- def a(cell: RoutedActorCell, ref: ActorRef) = {
-
- print("adf;kjaskadjlfaj"+ ref)
-// cell.router.routees
-// val metricsExtension = Kamon(Metrics)(system)
-// val metricIdentity = RouterMetrics(ref.path.elements.mkString("/"))
-// val cellWithMetrics = cell.asInstanceOf[RoutedActorCellMetrics]
-//
-// cellWithMetrics.metricIdentity = metricIdentity
-// cellWithMetrics.routerMetricsRecorder = metricsExtension.register(metricIdentity, RouterMetrics.Factory)
- }
-}
-
-trait RoutedActorCellMetrics {
- var metricIdentity: RouterMetrics = _
- var routerMetricsRecorder: Option[RouterMetricsRecorder] = _
-}
-
-@Aspect
-class RoutedActorCellMetricsIntoRoutedActorCellMixin {
-
- @DeclareMixin("akka.routing.RoutedActorCell")
- def mixinRoutedActorCellMetricsToRoutedActorCell: RoutedActorCellMetrics = new RoutedActorCellMetrics {}
-}
-
-// @Pointcut("(execution(* akka.actor.ActorCell.invoke(*)) || execution(* akka.routing.RoutedActorCell.sendMessage(*))) && this(cell) && args(envelope)")
-// def invokingActorBehaviourAtActorCell(cell: ActorCell, envelope: Envelope) = {}
-//
-// @Around("invokingActorBehaviourAtActorCell(cell, envelope)")
-// def aroundBehaviourInvoke(pjp: ProceedingJoinPoint, cell: ActorCell, envelope: Envelope): Any = {
-// val timestampBeforeProcessing = System.nanoTime()
-// val contextAndTimestamp = envelope.asInstanceOf[TraceContextAware]
-// val cellWithMetrics = cell.asInstanceOf[ActorCellMetrics]
-//
-// try {
-// TraceRecorder.withInlineTraceContextReplacement(contextAndTimestamp.traceContext) {
-// pjp.proceed()
-// }
-// } finally {
-// cellWithMetrics.actorMetricsRecorder.map {
-// am ⇒
-// am.processingTime.record(System.nanoTime() - timestampBeforeProcessing)
-// am.timeInMailbox.record(timestampBeforeProcessing - contextAndTimestamp.captureNanoTime)
-// am.mailboxSize.decrement()
-// }
-// }
-// }
-//
-// @Pointcut("execution(* akka.actor.ActorCell.sendMessage(*)) && this(cell)")
-// def sendingMessageToActorCell(cell: ActorCell): Unit = {}
-//
-// @After("sendingMessageToActorCell(cell)")
-// def afterSendMessageToActorCell(cell: ActorCell): Unit = {
-// val cellWithMetrics = cell.asInstanceOf[ActorCellMetrics]
-// cellWithMetrics.actorMetricsRecorder.map(am ⇒ am.mailboxSize.increment())
-// }
-//
-// @Pointcut("execution(* akka.actor.ActorCell.stop()) && this(cell)")
-// def actorStop(cell: ActorCell): Unit = {}
-//
-// @After("actorStop(cell)")
-// def afterStop(cell: ActorCell): Unit = {
-// val cellWithMetrics = cell.asInstanceOf[ActorCellMetrics]
-//
-// cellWithMetrics.actorMetricsRecorder.map { p ⇒
-// Kamon(Metrics)(cell.system).unregister(cellWithMetrics.metricIdentity)
-// }
-// }
-//
-// @Pointcut("execution(* akka.actor.ActorCell.handleInvokeFailure(..)) && this(cell)")
-// def actorInvokeFailure(cell: ActorCell): Unit = {}
-//
-// @Before("actorInvokeFailure(cell)")
-// def beforeInvokeFailure(cell: ActorCell): Unit = {
-// val cellWithMetrics = cell.asInstanceOf[ActorCellMetrics]
-//
-// cellWithMetrics.actorMetricsRecorder.map {
-// am ⇒ am.errors.increment()
-// }
-// }
-//}
-//
-//trait ActorCellMetrics {
-// var metricIdentity: ActorMetrics = _
-// var actorMetricsRecorder: Option[ActorMetricsRecorder] = _
-//}
-//
-//@Aspect
-//class ActorCellMetricsIntoActorCellMixin {
-//
-// @DeclareMixin("akka.actor.ActorCell")
-// def mixinActorCellMetricsToActorCell: ActorCellMetrics = new ActorCellMetrics {}
-//}
-//
-//@Aspect
-//class TraceContextIntoEnvelopeMixin {
-//
-// @DeclareMixin("akka.dispatch.Envelope")
-// def mixinTraceContextAwareToEnvelope: TraceContextAware = TraceContextAware.default
-//
-// @Pointcut("execution(akka.dispatch.Envelope.new(..)) && this(ctx)")
-// def envelopeCreation(ctx: TraceContextAware): Unit = {}
-//
-// @After("envelopeCreation(ctx)")
-// def afterEnvelopeCreation(ctx: TraceContextAware): Unit = {
-// // Necessary to force the initialization of ContextAware at the moment of creation.
-// ctx.traceContext
-// }
-//} \ No newline at end of file
diff --git a/kamon-core/src/main/scala/kamon/metric/RouterMetrics.scala b/kamon-core/src/main/scala/kamon/metric/RouterMetrics.scala
index adb2a18b..9660b6ff 100644
--- a/kamon-core/src/main/scala/kamon/metric/RouterMetrics.scala
+++ b/kamon-core/src/main/scala/kamon/metric/RouterMetrics.scala
@@ -17,11 +17,7 @@ package kamon.metric
import akka.actor.ActorSystem
import com.typesafe.config.Config
-<<<<<<< Updated upstream
import kamon.metric.instrument.{ Counter, Histogram }
-=======
-import kamon.metric.instrument.{Counter, Histogram}
->>>>>>> Stashed changes
case class RouterMetrics(name: String) extends MetricGroupIdentity {
val category = RouterMetrics
@@ -46,12 +42,7 @@ object RouterMetrics extends MetricGroupCategory {
}
}
- case class RouterMetricSnapshot(processingTime: Histogram.Snapshot, timeInMailbox: Histogram.Snapshot,
-<<<<<<< Updated upstream
- errors: Counter.Snapshot) extends MetricGroupSnapshot {
-=======
- errors: Counter.Snapshot) extends MetricGroupSnapshot {
->>>>>>> Stashed changes
+ case class RouterMetricSnapshot(processingTime: Histogram.Snapshot, timeInMailbox: Histogram.Snapshot, errors: Counter.Snapshot) extends MetricGroupSnapshot {
type GroupSnapshotType = RouterMetricSnapshot
diff --git a/kamon-playground/src/main/resources/application.conf b/kamon-playground/src/main/resources/application.conf
index a870dc6b..1bcf6708 100644
--- a/kamon-playground/src/main/resources/application.conf
+++ b/kamon-playground/src/main/resources/application.conf
@@ -1,11 +1,6 @@
akka {
loglevel = INFO
-<<<<<<< Updated upstream
-=======
- extensions = ["kamon.logreporter.LogReporter"]
-
->>>>>>> Stashed changes
actor {
debug {
unhandled = on
diff --git a/kamon-playground/src/main/scala/test/SimpleRequestProcessor.scala b/kamon-playground/src/main/scala/test/SimpleRequestProcessor.scala
index 58a1478c..1db2db67 100644
--- a/kamon-playground/src/main/scala/test/SimpleRequestProcessor.scala
+++ b/kamon-playground/src/main/scala/test/SimpleRequestProcessor.scala
@@ -17,30 +17,28 @@
package test
import akka.actor._
-import spray.routing.SimpleRoutingApp
+import akka.routing.RoundRobinPool
import akka.util.Timeout
-import spray.httpx.RequestBuilding
-import scala.concurrent.{ Await, Future }
-import kamon.spray.KamonTraceDirectives
-import scala.util.Random
-<<<<<<< Updated upstream
-import akka.routing.{ RoundRobinRoutingLogic, Router, ActorRefRoutee, RoundRobinPool }
-=======
-import akka.routing.{RoundRobinRoutingLogic, Router, ActorRefRoutee, RoundRobinPool}
->>>>>>> Stashed changes
-import kamon.trace.TraceRecorder
import kamon.Kamon
+import kamon.metric.Subscriptions.TickMetricSnapshot
import kamon.metric._
+import kamon.spray.KamonTraceDirectives
+import kamon.trace.TraceRecorder
import spray.http.{ StatusCodes, Uri }
-import kamon.metric.Subscriptions.TickMetricSnapshot
+import spray.httpx.RequestBuilding
+import spray.routing.SimpleRoutingApp
+
+import scala.concurrent.{ Await, Future }
+import scala.util.Random
object SimpleRequestProcessor extends App with SimpleRoutingApp with RequestBuilding with KamonTraceDirectives {
- import scala.concurrent.duration._
- import spray.client.pipelining._
import akka.pattern.ask
+ import spray.client.pipelining._
+
+ import scala.concurrent.duration._
implicit val system = ActorSystem("test")
- import system.dispatcher
+ import test.SimpleRequestProcessor.system.dispatcher
val printer = system.actorOf(Props[PrintWhatever])
@@ -69,15 +67,8 @@ object SimpleRequestProcessor extends App with SimpleRoutingApp with RequestBuil
//Kamon(UserMetrics).registerGauge("test-gauge")(() => 10L)
val pipeline = sendReceive
-<<<<<<< Updated upstream
val replier = system.actorOf(Props[Replier].withRouter(RoundRobinPool(nrOfInstances = 4)), "replier")
- val master = system.actorOf(Props[Replier].withRouter(RoundRobinPool(nrOfInstances = 7)), "master")
-=======
- val replier = system.actorOf(Props[Replier].withRouter(RoundRobinPool(nrOfInstances = 2)), "replier")
- val master = system.actorOf(Props[Master], "Master")
- master ! Work()
->>>>>>> Stashed changes
val random = new Random()
startServer(interface = "localhost", port = 9090) {
@@ -110,12 +101,7 @@ object SimpleRequestProcessor extends App with SimpleRoutingApp with RequestBuil
path("ok") {
traceName("OK") {
complete {
-<<<<<<< Updated upstream
- (master ? "Ok").mapTo[String]
-=======
- master ! Work()
"ok"
->>>>>>> Stashed changes
}
}
} ~
@@ -144,27 +130,6 @@ object SimpleRequestProcessor extends App with SimpleRoutingApp with RequestBuil
}
-case class Work()
-class Master extends Actor {
- var router = {
- val routees = Vector.fill(5) {
- val r = context.actorOf(Props[PrintWhatever])
- context.watch(r)
- ActorRefRoutee(r)
- }
- Router(RoundRobinRoutingLogic(), routees)
- }
- def receive = {
- case w: Work =>
- router.route(w, sender())
- case Terminated(a) =>
- router = router.removeRoutee(a)
- val r = context.actorOf(Props[PrintWhatever])
- context watch r
- router = router.addRoutee(r)
- }
-}
-
class PrintWhatever extends Actor {
def receive = {
case TickMetricSnapshot(from, to, metrics) ⇒
@@ -176,9 +141,10 @@ class PrintWhatever extends Actor {
object Verifier extends App {
def go: Unit = {
- import scala.concurrent.duration._
import spray.client.pipelining._
+ import scala.concurrent.duration._
+
implicit val system = ActorSystem("test")
import system.dispatcher