aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2014-05-18 22:15:27 -0300
committerIvan Topolnjak <ivantopo@gmail.com>2014-05-18 22:15:27 -0300
commit2f0bf70826cfde49e980d362179717314290b6f1 (patch)
tree90a745be5562add855f5506bb9a96fed3e31a75e
parentb18d05149881e9eb141f9f4878916f37c5b52247 (diff)
downloadKamon-2f0bf70826cfde49e980d362179717314290b6f1.tar.gz
Kamon-2f0bf70826cfde49e980d362179717314290b6f1.tar.bz2
Kamon-2f0bf70826cfde49e980d362179717314290b6f1.zip
+ core: allow dispatcher configuration to core components
-rw-r--r--kamon-core/src/main/resources/reference.conf18
-rw-r--r--kamon-core/src/main/scala/kamon/metrics/MetricsExtension.scala4
-rw-r--r--kamon-core/src/main/scala/kamon/util/Contexts.scala24
-rw-r--r--kamon-datadog/src/main/scala/kamon/datadog/DatadogMetricsSender.scala3
-rw-r--r--kamon-play/src/main/resources/reference.conf2
-rw-r--r--kamon-play/src/main/scala/kamon/play/Play.scala3
-rw-r--r--kamon-play/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala1
7 files changed, 17 insertions, 38 deletions
diff --git a/kamon-core/src/main/resources/reference.conf b/kamon-core/src/main/resources/reference.conf
index b1e5309d..9abfd26a 100644
--- a/kamon-core/src/main/resources/reference.conf
+++ b/kamon-core/src/main/resources/reference.conf
@@ -3,22 +3,26 @@
# ================================== #
kamon {
+
+ # Default dispatcher for all Kamon components, unless a more specific one is configured.
+ default-dispatcher = "akka.actor.default-dispatcher"
+
metrics {
- # Time interval at which Kamon will collect all metrics and send them to all subscribed actors.
+ # Time interval for collecting all metrics and send the snapshots to all subscribed actors.
tick-interval = 1 second
- # Time interval at which Kamon will record values for all registered gauges.
+ # Time interval for recording values on all registered gauges.
gauge-recording-interval = 100 milliseconds
+
dispatchers {
- # All Gauges record values periodically according to the `kamon.metrics.gauge-recording-interval` setting.
- # This dispatcher is the one to be used to execute the recording code.
- gauge-recordings = "akka.actor.default-dispatcher"
+ # Dispatcher for periodical gauge value recordings.
+ gauge-recordings = ${kamon.default-dispatcher}
- # Dispatcher for the actor managing all subscriptions and metrics collection.
- metric-subscriptions = "akka.actor.default-dispatcher"
+ # Dispatcher for subscriptions and metrics collection actors.
+ metric-subscriptions = ${kamon.default-dispatcher}
}
diff --git a/kamon-core/src/main/scala/kamon/metrics/MetricsExtension.scala b/kamon-core/src/main/scala/kamon/metrics/MetricsExtension.scala
index 78a82d96..c60babb2 100644
--- a/kamon-core/src/main/scala/kamon/metrics/MetricsExtension.scala
+++ b/kamon-core/src/main/scala/kamon/metrics/MetricsExtension.scala
@@ -19,7 +19,7 @@ package kamon.metrics
import scala.collection.concurrent.TrieMap
import akka.actor._
import com.typesafe.config.Config
-import kamon.util.{ Contexts, GlobPathFilter }
+import kamon.util.GlobPathFilter
import kamon.Kamon
import akka.actor
import kamon.metrics.Metrics.MetricGroupFilter
@@ -92,8 +92,6 @@ class MetricsExtension(system: ExtendedActorSystem) extends Kamon.Extension {
allFilters.toMap
}
-
- val defaultDispatcher = Contexts.lookupExecutionContext(Contexts.kamonDefaultDispatcher)(system)
}
object Metrics extends ExtensionId[MetricsExtension] with ExtensionIdProvider {
diff --git a/kamon-core/src/main/scala/kamon/util/Contexts.scala b/kamon-core/src/main/scala/kamon/util/Contexts.scala
deleted file mode 100644
index be0d367e..00000000
--- a/kamon-core/src/main/scala/kamon/util/Contexts.scala
+++ /dev/null
@@ -1,24 +0,0 @@
-package kamon.util
-
-import akka.actor.ActorSystem
-
-/*
- * =========================================================================================
- * 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.
- * =========================================================================================
- */
-object Contexts {
- val kamonDefaultDispatcher = "kamon.default-dispatcher"
-
- def lookupExecutionContext(id: String)(implicit system: ActorSystem) = system.dispatchers.lookup(id)
-}
diff --git a/kamon-datadog/src/main/scala/kamon/datadog/DatadogMetricsSender.scala b/kamon-datadog/src/main/scala/kamon/datadog/DatadogMetricsSender.scala
index 654ab978..df072552 100644
--- a/kamon-datadog/src/main/scala/kamon/datadog/DatadogMetricsSender.scala
+++ b/kamon-datadog/src/main/scala/kamon/datadog/DatadogMetricsSender.scala
@@ -67,7 +67,8 @@ class DatadogMetricsSender(remote: InetSocketAddress, maxPacketSizeInBytes: Long
def processTags(tags: Seq[String]): String = {
if (tags.isEmpty) "" else {
tags.foldLeft(new StringBuilder("|#")) {
- (sb, s) ⇒ if (sb.length > 2) sb ++= ","
+ (sb, s) ⇒
+ if (sb.length > 2) sb ++= ","
sb ++= s
}.toString()
}
diff --git a/kamon-play/src/main/resources/reference.conf b/kamon-play/src/main/resources/reference.conf
index 34e0f793..47a31ef4 100644
--- a/kamon-play/src/main/resources/reference.conf
+++ b/kamon-play/src/main/resources/reference.conf
@@ -6,5 +6,7 @@ kamon {
play {
include-trace-token-header = true
trace-token-header-name = "X-Trace-Token"
+
+ dispatcher = ${kamon.default-dispatcher}
}
} \ No newline at end of file
diff --git a/kamon-play/src/main/scala/kamon/play/Play.scala b/kamon-play/src/main/scala/kamon/play/Play.scala
index d29c5666..ca9c10e5 100644
--- a/kamon-play/src/main/scala/kamon/play/Play.scala
+++ b/kamon-play/src/main/scala/kamon/play/Play.scala
@@ -18,7 +18,6 @@ package kamon.play
import akka.actor.{ ExtendedActorSystem, Extension, ExtensionIdProvider, ExtensionId }
import kamon.Kamon
-import kamon.util.Contexts
object Play extends ExtensionId[PlayExtension] with ExtensionIdProvider {
override def lookup(): ExtensionId[_ <: Extension] = Play
@@ -30,7 +29,7 @@ class PlayExtension(private val system: ExtendedActorSystem) extends Kamon.Exten
private val config = system.settings.config.getConfig("kamon.play")
- val defaultDispatcher = Contexts.lookupExecutionContext(Contexts.kamonDefaultDispatcher)(system)
+ val defaultDispatcher = system.dispatchers.lookup(config.getString("dispatcher"))
val includeTraceToken: Boolean = config.getBoolean("include-trace-token-header")
val traceTokenHeaderName: String = config.getString("trace-token-header-name")
}
diff --git a/kamon-play/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala b/kamon-play/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala
index 3a84f741..af11a07a 100644
--- a/kamon-play/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala
+++ b/kamon-play/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala
@@ -25,7 +25,6 @@ import akka.actor.ActorSystem
import org.aspectj.lang.ProceedingJoinPoint
import org.aspectj.lang.annotation._
import scala.Some
-import kamon.util.Contexts
@Aspect
class RequestInstrumentation {