diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2017-04-24 14:10:46 +0200 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2017-04-24 14:17:10 +0200 |
commit | bbd52dcca66caa3cbd78478a1d075ff54da4f65a (patch) | |
tree | d121b293a21a14e5d4d19946b44e6008257f8db3 /kamon-core/src/main/scala/kamon/metric/instrument/DynamicRange.scala | |
parent | 4d828e1a3195e55365c865aa3a78af9668742643 (diff) | |
download | Kamon-bbd52dcca66caa3cbd78478a1d075ff54da4f65a.tar.gz Kamon-bbd52dcca66caa3cbd78478a1d075ff54da4f65a.tar.bz2 Kamon-bbd52dcca66caa3cbd78478a1d075ff54da4f65a.zip |
bring the new skeleton into place
Diffstat (limited to 'kamon-core/src/main/scala/kamon/metric/instrument/DynamicRange.scala')
-rw-r--r-- | kamon-core/src/main/scala/kamon/metric/instrument/DynamicRange.scala | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/kamon-core/src/main/scala/kamon/metric/instrument/DynamicRange.scala b/kamon-core/src/main/scala/kamon/metric/instrument/DynamicRange.scala new file mode 100644 index 00000000..628439c2 --- /dev/null +++ b/kamon-core/src/main/scala/kamon/metric/instrument/DynamicRange.scala @@ -0,0 +1,33 @@ +package kamon.metric.instrument + +import java.util.concurrent.TimeUnit + +case class DynamicRange(lowestDiscernibleValue: Long, highestTrackableValue: Long, significantValueDigits: Int) { + def upTo(highestTrackableValue: Long): DynamicRange = + copy(highestTrackableValue = highestTrackableValue) + + def startingFrom(lowestDiscernibleValue: Long): DynamicRange = + copy(lowestDiscernibleValue = lowestDiscernibleValue) +} + +object DynamicRange { + private val oneHourInNanoseconds = TimeUnit.HOURS.toNanos(1) + + /** + * Provides a range from 0 to 3.6e+12 (one hour in nanoseconds) with a value precision of 1 significant digit (10%) + * across that range. + */ + val Loose = DynamicRange(0L, oneHourInNanoseconds, 1) + + /** + * Provides a range from 0 to 3.6e+12 (one hour in nanoseconds) with a value precision of 2 significant digit (1%) + * across that range. + */ + val Default = DynamicRange(0L, oneHourInNanoseconds, 2) + + /** + * Provides a range from 0 to 3.6e+12 (one hour in nanoseconds) with a value precision of 3 significant digit (0.1%) + * across that range. + */ + val Fine = DynamicRange(0L, oneHourInNanoseconds, 3) +} |