aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/trace/Sampler.scala
diff options
context:
space:
mode:
authorJoão Ferreira <jtjeferreira@gmail.com>2015-06-26 17:47:00 +0100
committerJoão Ferreira <jtjeferreira@gmail.com>2015-06-26 18:02:21 +0100
commit7e74030ea824a6b6a561880103f69f3e8e409bba (patch)
tree77eb6fd87599564d309d0abc02132fd2d46070ec /kamon-core/src/main/scala/kamon/trace/Sampler.scala
parentea0da37b4a9f769b498fde269dc28b6bad06ab64 (diff)
downloadKamon-7e74030ea824a6b6a561880103f69f3e8e409bba.tar.gz
Kamon-7e74030ea824a6b6a561880103f69f3e8e409bba.tar.bz2
Kamon-7e74030ea824a6b6a561880103f69f3e8e409bba.zip
+ core: kamon.trace.token-generator conf
Diffstat (limited to 'kamon-core/src/main/scala/kamon/trace/Sampler.scala')
-rw-r--r--kamon-core/src/main/scala/kamon/trace/Sampler.scala14
1 files changed, 14 insertions, 0 deletions
diff --git a/kamon-core/src/main/scala/kamon/trace/Sampler.scala b/kamon-core/src/main/scala/kamon/trace/Sampler.scala
index 5abba221..ac780d5e 100644
--- a/kamon-core/src/main/scala/kamon/trace/Sampler.scala
+++ b/kamon-core/src/main/scala/kamon/trace/Sampler.scala
@@ -16,9 +16,14 @@
package kamon.trace
+import java.net.InetAddress
+import java.util.concurrent.atomic.AtomicLong
+
import kamon.util.{ NanoInterval, Sequencer }
import scala.concurrent.forkjoin.ThreadLocalRandom
+import scala.util.Try
+
trait Sampler {
def shouldTrace: Boolean
def shouldReport(traceElapsedTime: NanoInterval): Boolean
@@ -71,3 +76,12 @@ class ThresholdSampler(thresholdInNanoseconds: Long) extends Sampler {
def shouldReport(traceElapsedTime: NanoInterval): Boolean = traceElapsedTime.nanos >= thresholdInNanoseconds
}
+class DefaultTokenGenerator extends Function0[String] {
+ private val _hostnamePrefix = Try(InetAddress.getLocalHost.getHostName).getOrElse("unknown-localhost")
+ private val _tokenCounter = new AtomicLong
+
+ def apply(): String = {
+ _hostnamePrefix + "-" + String.valueOf(_tokenCounter.incrementAndGet())
+ }
+}
+