diff options
10 files changed, 16 insertions, 28 deletions
diff --git a/kamon-core/src/main/scala/kamon/metrics/Subscriptions.scala b/kamon-core/src/main/scala/kamon/metrics/Subscriptions.scala index e398ebe0..c9990229 100644 --- a/kamon-core/src/main/scala/kamon/metrics/Subscriptions.scala +++ b/kamon-core/src/main/scala/kamon/metrics/Subscriptions.scala @@ -28,7 +28,7 @@ class Subscriptions extends Actor { import context.system val config = context.system.settings.config - val tickInterval = Duration(config.getNanoseconds("kamon.metrics.tick-interval"), TimeUnit.NANOSECONDS) + val tickInterval = Duration(config.getDuration("kamon.metrics.tick-interval", TimeUnit.NANOSECONDS), TimeUnit.NANOSECONDS) val flushMetricsSchedule = context.system.scheduler.schedule(tickInterval, tickInterval, self, FlushMetrics)(context.dispatcher) var lastTick: Long = System.currentTimeMillis() diff --git a/kamon-core/src/test/scala/kamon/trace/instrumentation/ActorMessagePassingTracingSpec.scala b/kamon-core/src/test/scala/kamon/trace/instrumentation/ActorMessagePassingTracingSpec.scala index acc939fb..4e62c9f7 100644 --- a/kamon-core/src/test/scala/kamon/trace/instrumentation/ActorMessagePassingTracingSpec.scala +++ b/kamon-core/src/test/scala/kamon/trace/instrumentation/ActorMessagePassingTracingSpec.scala @@ -23,7 +23,7 @@ import kamon.trace.TraceRecorder import akka.pattern.{ pipe, ask } import akka.util.Timeout import scala.concurrent.duration._ -import akka.routing.RoundRobinRouter +import akka.routing.{ RoundRobinPool } class ActorMessagePassingTracingSpec extends TestKit(ActorSystem("actor-message-passing-tracing-spec")) with WordSpecLike with ImplicitSender { implicit val executionContext = system.dispatcher @@ -73,7 +73,7 @@ class ActorMessagePassingTracingSpec extends TestKit(ActorSystem("actor-message- } trait RoutedEchoActorFixture extends EchoActorFixture { - override val ctxEchoActor = system.actorOf(Props[TraceContextEcho].withRouter(RoundRobinRouter(nrOfInstances = 1))) + override val ctxEchoActor = system.actorOf(Props[TraceContextEcho].withRouter(RoundRobinPool(nrOfInstances = 1))) } } diff --git a/kamon-newrelic/src/main/scala/kamon/newrelic/Agent.scala b/kamon-newrelic/src/main/scala/kamon/newrelic/Agent.scala index 299773e4..9c4075eb 100644 --- a/kamon-newrelic/src/main/scala/kamon/newrelic/Agent.scala +++ b/kamon-newrelic/src/main/scala/kamon/newrelic/Agent.scala @@ -79,7 +79,7 @@ class Agent extends Actor with RequestBuilding with ResponseTransformation with val compressedPipeline: HttpRequest ⇒ Future[HttpResponse] = encode(Deflate) ~> sendReceive val compressedToJsonPipeline: HttpRequest ⇒ Future[JsValue] = compressedPipeline ~> toJson - def toJson(response: HttpResponse): JsValue = response.entity.asString.asJson + def toJson(response: HttpResponse): JsValue = response.entity.asString.parseJson def selectCollector: Future[String] = { val query = ("method" -> "get_redirect_host") +: baseQuery diff --git a/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelic.scala b/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelic.scala index 63aa147b..c195ed12 100644 --- a/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelic.scala +++ b/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelic.scala @@ -21,12 +21,13 @@ import kamon.Kamon import kamon.metrics.{ CustomMetric, TickMetricSnapshotBuffer, TraceMetrics, Metrics } import kamon.metrics.Subscriptions.TickMetricSnapshot import akka.actor +import java.util.concurrent.TimeUnit.MILLISECONDS class NewRelicExtension(system: ExtendedActorSystem) extends Kamon.Extension { val config = system.settings.config.getConfig("kamon.newrelic") val metricsListener = system.actorOf(Props[NewRelicMetricsListener], "kamon-newrelic") - val apdexT: Double = config.getMilliseconds("apdexT") / 1E3 // scale to seconds. + val apdexT: Double = config.getDuration("apdexT", MILLISECONDS) / 1E3 // scale to seconds. Kamon(Metrics)(system).subscribe(TraceMetrics, "*", metricsListener, permanently = true) Kamon(Metrics)(system).subscribe(CustomMetric, "*", metricsListener, permanently = true) diff --git a/kamon-play/src/main/scala/kamon/play/action/KamonTraceActions.scala b/kamon-play/src/main/scala/kamon/play/action/KamonTraceActions.scala index 0e777fd5..36eabf8e 100644 --- a/kamon-play/src/main/scala/kamon/play/action/KamonTraceActions.scala +++ b/kamon-play/src/main/scala/kamon/play/action/KamonTraceActions.scala @@ -21,7 +21,7 @@ import play.api.mvc._ import scala.concurrent.Future case class TraceName[A](name: String)(action: Action[A]) extends Action[A] { - def apply(request: Request[A]): Future[SimpleResult] = { + def apply(request: Request[A]): Future[Result] = { TraceRecorder.rename(name) action(request) } diff --git a/kamon-play/src/main/scala/kamon/play/instrumentation/WSInstrumentation.scala b/kamon-play/src/main/scala/kamon/play/instrumentation/WSInstrumentation.scala index fce5ca13..8595c348 100644 --- a/kamon-play/src/main/scala/kamon/play/instrumentation/WSInstrumentation.scala +++ b/kamon-play/src/main/scala/kamon/play/instrumentation/WSInstrumentation.scala @@ -20,9 +20,9 @@ import org.aspectj.lang.annotation.{ Around, Pointcut, Aspect } import org.aspectj.lang.ProceedingJoinPoint import kamon.trace.TraceRecorder import kamon.metrics.TraceMetrics.HttpClientRequest -import play.api.libs.ws.WS.WSRequest +import play.api.libs.ws.WSRequest import scala.concurrent.Future -import play.api.libs.ws.Response +import play.api.libs.ws.WSResponse import scala.util.{ Failure, Success } import scala.concurrent.ExecutionContext.Implicits.global @@ -38,7 +38,7 @@ class WSInstrumentation { val completionHandle = TraceRecorder.startSegment(HttpClientRequest(request.url, UserTime), basicRequestAttributes(request)) - val response = pjp.proceed().asInstanceOf[Future[Response]] + val response = pjp.proceed().asInstanceOf[Future[WSResponse]] response.onComplete { case Failure(t) ⇒ completionHandle.map(_.finish(Map("completed-with-error" -> t.getMessage))) diff --git a/kamon-play/src/test/scala/kamon/play/RequestInstrumentationSpec.scala b/kamon-play/src/test/scala/kamon/play/RequestInstrumentationSpec.scala index 0c4ac57b..b14fe996 100644 --- a/kamon-play/src/test/scala/kamon/play/RequestInstrumentationSpec.scala +++ b/kamon-play/src/test/scala/kamon/play/RequestInstrumentationSpec.scala @@ -24,7 +24,6 @@ import scala.concurrent.ExecutionContext.Implicits.global import scala.concurrent.Future import org.junit.runner.RunWith import org.specs2.runner.JUnitRunner -import play.api.mvc.AsyncResult import play.api.test.FakeApplication import kamon.play.action.TraceName @@ -34,14 +33,6 @@ class RequestInstrumentationSpec extends PlaySpecification { System.setProperty("config.file", "./kamon-play/src/test/resources/conf/application.conf") val appWithRoutes = FakeApplication(withRoutes = { - case ("GET", "/asyncResult") ⇒ - Action { - AsyncResult { - scala.concurrent.Future { - Ok("AsyncResult") - } - } - } case ("GET", "/async") ⇒ Action.async { Future { @@ -76,11 +67,6 @@ class RequestInstrumentationSpec extends PlaySpecification { private val traceTokenHeader = traceTokenHeaderName -> traceTokenValue "the Request instrumentation" should { - "respond to the asyncResult action with X-Trace-Token" in new WithServer(appWithRoutes) { - val Some(result) = route(FakeRequest(GET, "/asyncResult").withHeaders(traceTokenHeader)) - header(traceTokenHeaderName, result) must equalTo(expectedToken) - } - "respond to the Async Action with X-Trace-Token" in new WithServer(appWithRoutes) { val Some(result) = route(FakeRequest(GET, "/async").withHeaders(traceTokenHeader)) header(traceTokenHeaderName, result) must equalTo(expectedToken) diff --git a/kamon-play/src/test/scala/kamon/play/WSInstrumentationSpec.scala b/kamon-play/src/test/scala/kamon/play/WSInstrumentationSpec.scala index b321d123..ee51d07d 100644 --- a/kamon-play/src/test/scala/kamon/play/WSInstrumentationSpec.scala +++ b/kamon-play/src/test/scala/kamon/play/WSInstrumentationSpec.scala @@ -25,6 +25,7 @@ import org.junit.runner.RunWith import org.specs2.runner.JUnitRunner import play.api.test.FakeApplication import play.api.libs.ws.WS +import play.api.Play.current import scala.util._ import scala.concurrent.Await import scala.concurrent.duration._ diff --git a/kamon-playground/src/main/scala/test/SimpleRequestProcessor.scala b/kamon-playground/src/main/scala/test/SimpleRequestProcessor.scala index 05859ee5..664bd4f9 100644 --- a/kamon-playground/src/main/scala/test/SimpleRequestProcessor.scala +++ b/kamon-playground/src/main/scala/test/SimpleRequestProcessor.scala @@ -23,13 +23,12 @@ import spray.httpx.RequestBuilding import scala.concurrent.{ Await, Future } import kamon.spray.KamonTraceDirectives import scala.util.Random -import akka.routing.RoundRobinRouter +import akka.routing.RoundRobinPool import kamon.trace.TraceRecorder import kamon.Kamon import kamon.metrics._ import spray.http.{ StatusCodes, Uri } import kamon.metrics.Subscriptions.TickMetricSnapshot -import kamon.newrelic.WebTransactionMetrics object SimpleRequestProcessor extends App with SimpleRoutingApp with RequestBuilding with KamonTraceDirectives { import scala.concurrent.duration._ @@ -53,7 +52,7 @@ object SimpleRequestProcessor extends App with SimpleRoutingApp with RequestBuil implicit val timeout = Timeout(30 seconds) val pipeline = sendReceive - val replier = system.actorOf(Props[Replier].withRouter(RoundRobinRouter(nrOfInstances = 2)), "replier") + val replier = system.actorOf(Props[Replier].withRouter(RoundRobinPool(nrOfInstances = 2)), "replier") val random = new Random() val requestCountRecorder = Kamon(Metrics).register(CustomMetric("GetCount"), CustomMetric.histogram(10, 3, Scale.Unit)) diff --git a/kamon-statsd/src/main/scala/kamon/statsd/StatsD.scala b/kamon-statsd/src/main/scala/kamon/statsd/StatsD.scala index 7676f97f..3dd25b74 100644 --- a/kamon-statsd/src/main/scala/kamon/statsd/StatsD.scala +++ b/kamon-statsd/src/main/scala/kamon/statsd/StatsD.scala @@ -25,6 +25,7 @@ import com.typesafe.config.Config import java.lang.management.ManagementFactory import akka.event.Logging import java.net.InetSocketAddress +import java.util.concurrent.TimeUnit.MILLISECONDS object StatsD extends ExtensionId[StatsDExtension] with ExtensionIdProvider { override def lookup(): ExtensionId[_ <: Extension] = StatsD @@ -42,9 +43,9 @@ class StatsDExtension(system: ExtendedActorSystem) extends Kamon.Extension { private val statsDConfig = system.settings.config.getConfig("kamon.statsd") val statsDHost = new InetSocketAddress(statsDConfig.getString("hostname"), statsDConfig.getInt("port")) - val flushInterval = statsDConfig.getMilliseconds("flush-interval") + val flushInterval = statsDConfig.getDuration("flush-interval", MILLISECONDS) val maxPacketSize = statsDConfig.getInt("max-packet-size") - val tickInterval = system.settings.config.getMilliseconds("kamon.metrics.tick-interval") + val tickInterval = system.settings.config.getDuration("kamon.metrics.tick-interval", MILLISECONDS) val statsDMetricsListener = buildMetricsListener(tickInterval, flushInterval) |