diff options
10 files changed, 42 insertions, 64 deletions
diff --git a/kamon-core/src/main/scala/kamon/metric/instrument/InstrumentSettings.scala b/kamon-core/src/main/scala/kamon/metric/instrument/InstrumentSettings.scala index 29f8f46b..4423964a 100644 --- a/kamon-core/src/main/scala/kamon/metric/instrument/InstrumentSettings.scala +++ b/kamon-core/src/main/scala/kamon/metric/instrument/InstrumentSettings.scala @@ -4,7 +4,6 @@ import java.util.concurrent.TimeUnit import com.typesafe.config.Config import kamon.metric.instrument.Histogram.DynamicRange -import kamon.util.ConfigTools.Syntax import scala.concurrent.duration.FiniteDuration @@ -21,6 +20,7 @@ case class InstrumentCustomSettings(lowestDiscernibleValue: Option[Long], highes } object InstrumentCustomSettings { + import kamon.util.ConfigTools.Syntax def fromConfig(config: Config): InstrumentCustomSettings = InstrumentCustomSettings( @@ -54,6 +54,8 @@ case class DefaultInstrumentSettings(histogram: InstrumentSettings, minMaxCounte object DefaultInstrumentSettings { def fromConfig(config: Config): DefaultInstrumentSettings = { + import kamon.util.ConfigTools.Syntax + val histogramSettings = InstrumentSettings(InstrumentSettings.readDynamicRange(config.getConfig("histogram")), None) val minMaxCounterSettings = InstrumentSettings(InstrumentSettings.readDynamicRange(config.getConfig("min-max-counter")), Some(config.getFiniteDuration("min-max-counter.refresh-interval"))) diff --git a/kamon-core/src/main/scala/kamon/trace/Incubator.scala b/kamon-core/src/main/scala/kamon/trace/Incubator.scala index 19ea4f39..5ee91a4b 100644 --- a/kamon-core/src/main/scala/kamon/trace/Incubator.scala +++ b/kamon-core/src/main/scala/kamon/trace/Incubator.scala @@ -16,14 +16,12 @@ package kamon.trace -import java.util.concurrent.TimeUnit - import akka.actor.{ ActorLogging, Props, Actor, ActorRef } import kamon.trace.Incubator.{ CheckForCompletedTraces, IncubatingTrace } import kamon.util.{ NanoInterval, RelativeNanoTimestamp } import scala.annotation.tailrec import scala.collection.immutable.Queue -import scala.concurrent.duration._ +import kamon.util.ConfigTools.Syntax class Incubator(subscriptions: ActorRef) extends Actor with ActorLogging { import kamon.util.ConfigTools.Syntax diff --git a/kamon-core/src/main/scala/kamon/trace/TracerExtensionSettings.scala b/kamon-core/src/main/scala/kamon/trace/TracerExtensionSettings.scala index 79f30f23..739bbefc 100644 --- a/kamon-core/src/main/scala/kamon/trace/TracerExtensionSettings.scala +++ b/kamon-core/src/main/scala/kamon/trace/TracerExtensionSettings.scala @@ -16,13 +16,12 @@ package kamon.trace +import kamon.util.ConfigTools.Syntax import com.typesafe.config.Config case class TraceSettings(levelOfDetail: LevelOfDetail, sampler: Sampler) object TraceSettings { - import kamon.util.ConfigTools.Syntax - def apply(config: Config): TraceSettings = { val tracerConfig = config.getConfig("kamon.trace") diff --git a/kamon-core/src/main/scala/kamon/util/ConfigTools.scala b/kamon-core/src/main/scala/kamon/util/ConfigTools.scala index 483278bf..bcec22c3 100644 --- a/kamon-core/src/main/scala/kamon/util/ConfigTools.scala +++ b/kamon-core/src/main/scala/kamon/util/ConfigTools.scala @@ -28,7 +28,7 @@ object ConfigTools { // versions of Akka using older typesafe-config versions. def getFiniteDuration(path: String): FiniteDuration = - FiniteDuration(config.getNanoseconds(path), TimeUnit.NANOSECONDS) + FiniteDuration(config.getDuration(path, TimeUnit.NANOSECONDS), TimeUnit.NANOSECONDS) def firstLevelKeys: Set[String] = { import scala.collection.JavaConverters._ diff --git a/kamon-datadog/src/main/scala/kamon/datadog/Datadog.scala b/kamon-datadog/src/main/scala/kamon/datadog/Datadog.scala index 152ba659..ab909055 100644 --- a/kamon-datadog/src/main/scala/kamon/datadog/Datadog.scala +++ b/kamon-datadog/src/main/scala/kamon/datadog/Datadog.scala @@ -17,7 +17,6 @@ package kamon.datadog import java.net.InetSocketAddress -import java.util.concurrent.TimeUnit.MILLISECONDS import akka.actor._ import akka.event.Logging diff --git a/kamon-jdbc/src/main/scala/kamon/jdbc/Jdbc.scala b/kamon-jdbc/src/main/scala/kamon/jdbc/Jdbc.scala index 12de598d..f66af7a6 100644 --- a/kamon-jdbc/src/main/scala/kamon/jdbc/Jdbc.scala +++ b/kamon-jdbc/src/main/scala/kamon/jdbc/Jdbc.scala @@ -15,9 +15,10 @@ package kamon.jdbc +import kamon.util.ConfigTools.Syntax + import akka.actor.{ ExtendedActorSystem, Extension, ExtensionId, ExtensionIdProvider } import kamon.Kamon -import kamon.util.ConfigTools.Syntax object Jdbc extends ExtensionId[JdbcExtension] with ExtensionIdProvider { override def lookup(): ExtensionId[_ <: Extension] = Jdbc diff --git a/kamon-newrelic/src/main/scala/kamon/newrelic/Agent.scala b/kamon-newrelic/src/main/scala/kamon/newrelic/Agent.scala index 5f6383f8..91ccd547 100644 --- a/kamon-newrelic/src/main/scala/kamon/newrelic/Agent.scala +++ b/kamon-newrelic/src/main/scala/kamon/newrelic/Agent.scala @@ -16,8 +16,6 @@ package kamon.newrelic -import java.util.concurrent.TimeUnit.{ MILLISECONDS ⇒ milliseconds } - import akka.actor.{ ActorLogging, Actor } import akka.io.IO import akka.util.Timeout @@ -28,11 +26,13 @@ import scala.concurrent.Future import spray.httpx.SprayJsonSupport import spray.json.lenses.JsonLenses._ import java.lang.management.ManagementFactory -import scala.concurrent.duration._ +import kamon.util.ConfigTools.Syntax import Agent._ import JsonProtocol._ import akka.pattern.pipe +import scala.concurrent.duration.FiniteDuration + class Agent extends Actor with SprayJsonSupport with ActorLogging { import context.dispatcher diff --git a/kamon-newrelic/src/main/scala/kamon/newrelic/MetricReporter.scala b/kamon-newrelic/src/main/scala/kamon/newrelic/MetricReporter.scala index 842fbdc6..7ee7d1e6 100644 --- a/kamon-newrelic/src/main/scala/kamon/newrelic/MetricReporter.scala +++ b/kamon-newrelic/src/main/scala/kamon/newrelic/MetricReporter.scala @@ -20,10 +20,10 @@ class MetricReporter(settings: AgentSettings) extends Actor with ActorLogging wi val metricsExtension = Kamon.metrics val collectionContext = metricsExtension.buildDefaultCollectionContext val metricsSubscriber = { - val tickInterval = Kamon.metrics.settings.tickInterval.toMillis + val tickInterval = Kamon.metrics.settings.tickInterval // Metrics are always sent to New Relic in 60 seconds intervals. - if (tickInterval == 60000) self + if (tickInterval == 60.seconds) self else context.actorOf(TickMetricSnapshotBuffer.props(1 minute, self), "metric-buffer") } diff --git a/project/Projects.scala b/project/Projects.scala index 392e7c62..fd628e1d 100644 --- a/project/Projects.scala +++ b/project/Projects.scala @@ -30,14 +30,11 @@ object Projects extends Build { lazy val kamonCore: Project = Project("kamon-core", file("kamon-core")) - .dependsOn(kamonMacros % "compile-internal, test-internal") .settings(basicSettings: _*) .settings(formatSettings: _*) .settings(aspectJSettings: _*) .settings( - javacOptions in Compile ++= Seq("-XDignore.symbol.file"), - mappings in (Compile, packageBin) ++= mappings.in(kamonMacros, Compile, packageBin).value, - mappings in (Compile, packageSrc) ++= mappings.in(kamonMacros, Compile, packageSrc).value, + javacOptions in Compile ++= Seq("-XDignore.symbol.file"), libraryDependencies ++= compile(akkaActor, hdrHistogram) ++ provided(aspectJ) ++ @@ -47,7 +44,6 @@ object Projects extends Build { lazy val kamonAkka = Project("kamon-akka", file("kamon-akka")) .dependsOn(kamonCore % "compile->compile;test->test") - .dependsOn(kamonMacros % "compile-internal, test-internal") .dependsOn(kamonScala) .settings(basicSettings: _* ) .settings(formatSettings: _*) @@ -62,7 +58,6 @@ object Projects extends Build { lazy val kamonScala = Project("kamon-scala", file("kamon-scala")) .dependsOn(kamonCore % "compile->compile;test->test") - .dependsOn(kamonMacros % "compile-internal, test-internal") .settings(basicSettings: _* ) .settings(formatSettings: _*) .settings(aspectJSettings: _*) @@ -86,23 +81,18 @@ object Projects extends Build { lazy val kamonSpray = Project("kamon-spray", file("kamon-spray")) - .dependsOn(kamonMacros % "compile-internal, test-internal") + .dependsOn(kamonCore % "compile->compile;test->test", kamonAkka, kamonTestkit % "test") .settings(basicSettings: _*) .settings(formatSettings: _*) .settings(aspectJSettings: _*) .settings( - mappings in (Compile, packageBin) ++= mappings.in(kamonMacros, Compile, packageBin).value, - mappings in (Compile, packageSrc) ++= mappings.in(kamonMacros, Compile, packageSrc).value, libraryDependencies ++= compile(akkaActor, sprayCan, sprayClient, sprayRouting) ++ provided(aspectJ) ++ test(scalatest, akkaTestKit, sprayTestkit, akkaSlf4j, slf4Jul, slf4Log4j, logback)) - .dependsOn(kamonCore % "compile->compile;test->test") - .dependsOn(kamonAkka) - .dependsOn(kamonTestkit % "test") - lazy val kamonNewrelic = Project("kamon-newrelic", file("kamon-newrelic")) + .dependsOn(kamonCore % "compile->compile;test->test", kamonTestkit % "compile->compile;test->test") .settings(basicSettings: _*) .settings(formatSettings: _*) .settings(aspectJSettings: _*) @@ -111,11 +101,10 @@ object Projects extends Build { compile(sprayCan, sprayClient, sprayRouting, sprayJson, sprayJsonLenses, newrelic, akkaSlf4j) ++ provided(aspectJ) ++ test(scalatest, akkaTestKit, sprayTestkit, slf4Api, akkaSlf4j)) - .dependsOn(kamonCore % "compile->compile;test->test") - .dependsOn(kamonTestkit % "compile->compile;test->test") lazy val kamonPlayground = Project("kamon-playground", file("kamon-playground")) + .dependsOn(kamonSpray, kamonNewrelic, kamonStatsD, kamonDatadog, kamonLogReporter, kamonSystemMetrics) .settings(basicSettings: _*) .settings(formatSettings: _*) .settings(noPublishing: _*) @@ -123,19 +112,19 @@ object Projects extends Build { .settings( libraryDependencies ++= compile(akkaActor, akkaSlf4j, sprayCan, sprayClient, sprayRouting, logback)) - .dependsOn(kamonSpray, kamonNewrelic, kamonStatsD, kamonDatadog, kamonLogReporter, kamonSystemMetrics) lazy val kamonDashboard = Project("kamon-dashboard", file("kamon-dashboard")) + .dependsOn(kamonCore) .settings(basicSettings: _*) .settings(formatSettings: _*) .settings( libraryDependencies ++= compile(akkaActor, akkaSlf4j, sprayRouting, sprayCan, sprayJson)) - .dependsOn(kamonCore) lazy val kamonTestkit = Project("kamon-testkit", file("kamon-testkit")) + .dependsOn(kamonCore) .settings(basicSettings: _*) .settings(formatSettings: _*) .settings( @@ -143,9 +132,9 @@ object Projects extends Build { compile(akkaActor, akkaTestKit) ++ provided(aspectJ) ++ test(slf4Api, slf4nop)) - .dependsOn(kamonCore) lazy val kamonPlay = Project("kamon-play", file("kamon-play")) + .dependsOn(kamonCore % "compile->compile;test->test", kamonScala, kamonAkka) .settings(basicSettings: _*) .settings(formatSettings: _*) .settings(aspectJSettings: _*) @@ -154,64 +143,55 @@ object Projects extends Build { compile(play) ++ provided(aspectJ) ++ test(playTest, akkaTestKit, slf4Api)) - .dependsOn(kamonCore % "compile->compile;test->test") - .dependsOn(kamonScala) - .dependsOn(kamonAkka) lazy val kamonStatsD = Project("kamon-statsd", file("kamon-statsd")) + .dependsOn(kamonCore % "compile->compile;test->test") .settings(basicSettings: _*) .settings(formatSettings: _*) .settings( libraryDependencies ++= compile(akkaActor) ++ test(scalatest, akkaTestKit, slf4Api, slf4nop)) - .dependsOn(kamonCore % "compile->compile;test->test") - .dependsOn(kamonSystemMetrics % "provided") lazy val kamonDatadog = Project("kamon-datadog", file("kamon-datadog")) + .dependsOn(kamonCore % "compile->compile;test->test") .settings(basicSettings: _*) .settings(formatSettings: _*) .settings( libraryDependencies ++= compile(akkaActor) ++ test(scalatest, akkaTestKit, slf4Api, slf4nop)) - .dependsOn(kamonCore % "compile->compile;test->test") - .dependsOn(kamonSystemMetrics % "provided") + lazy val kamonLogReporter = Project("kamon-log-reporter", file("kamon-log-reporter")) + .dependsOn(kamonCore) .settings(basicSettings: _*) .settings(formatSettings: _*) .settings( libraryDependencies ++= compile(akkaActor) ++ test(scalatest, akkaTestKit, slf4Api, slf4nop)) - .dependsOn(kamonCore) - lazy val kamonMacros = Project("kamon-macros", file("kamon-macros")) + + lazy val kamonSystemMetrics = Project("kamon-system-metrics", file("kamon-system-metrics")) + .dependsOn(kamonCore % "compile->compile;test->test") .settings(basicSettings: _*) .settings(formatSettings: _*) - .settings(noPublishing: _*) - .settings(libraryDependencies ++= compile(scalaCompiler)) + .settings(fork in Test := true) + .settings( + libraryDependencies ++= + compile(sigarLoader) ++ + test(scalatest, akkaTestKit, slf4Api, slf4Jul, slf4Log4j, logback)) - lazy val kamonSystemMetrics = Project("kamon-system-metrics", file("kamon-system-metrics")) - .settings(basicSettings: _*) - .settings(formatSettings: _*) - .settings(fork in Test := true) - .settings( - libraryDependencies ++= - compile(sigarLoader) ++ - test(scalatest, akkaTestKit, slf4Api, slf4Jul, slf4Log4j, logback)) - .dependsOn(kamonCore % "compile->compile;test->test") - lazy val kamonJdbc = Project("kamon-jdbc", file("kamon-jdbc")) - .settings(basicSettings: _*) - .settings(formatSettings: _*) - .settings(aspectJSettings: _*) - .settings( - libraryDependencies ++= - test(h2,scalatest, akkaTestKit, slf4Api) ++ - provided(aspectJ)) - .dependsOn(kamonCore % "compile->compile;test->test") + .dependsOn(kamonCore % "compile->compile;test->test") + .settings(basicSettings: _*) + .settings(formatSettings: _*) + .settings(aspectJSettings: _*) + .settings( + libraryDependencies ++= + test(h2,scalatest, akkaTestKit, slf4Api) ++ + provided(aspectJ)) val noPublishing = Seq(publish := (), publishLocal := (), publishArtifact := false) } diff --git a/project/Settings.scala b/project/Settings.scala index 12f51dc1..7b9743db 100644 --- a/project/Settings.scala +++ b/project/Settings.scala @@ -26,14 +26,13 @@ import net.virtualvoid.sbt.graph.Plugin.graphSettings object Settings { val JavaVersion = "1.6" - val ScalaVersion = "2.10.4" lazy val basicSettings = Seq( scalaVersion := ScalaVersion, resolvers ++= Dependencies.resolutionRepos, fork in run := true, - testGrouping in Test := singleTests((definedTests in Test).value, (javaOptions in Test).value), + testGrouping in Test := singleTestPerJvm((definedTests in Test).value, (javaOptions in Test).value), moduleName := moduleName.value + "_akka-2.2", javacOptions in compile := Seq( "-Xlint:-options", @@ -58,7 +57,7 @@ object Settings { )) ++ publishSettings ++ releaseSettings ++ graphSettings - def singleTests(tests: Seq[TestDefinition], jvmSettings: Seq[String]): Seq[Group] = + def singleTestPerJvm(tests: Seq[TestDefinition], jvmSettings: Seq[String]): Seq[Group] = tests map { test => new Group( name = test.name, |