aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/util
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2017-12-12 15:00:59 +0100
committerIvan Topolnjak <ivantopo@gmail.com>2017-12-13 00:48:38 +0100
commit686040cb569283667b967494be4a7088ef35964c (patch)
tree95873e59bad8c859a14f55a1cc42758c87901d26 /kamon-core/src/main/scala/kamon/util
parent66cf166772712267aac922c51ded90c7dec3bdd5 (diff)
downloadKamon-686040cb569283667b967494be4a7088ef35964c.tar.gz
Kamon-686040cb569283667b967494be4a7088ef35964c.tar.bz2
Kamon-686040cb569283667b967494be4a7088ef35964c.zip
use a specialized java.time.Clock exposed through the Kamon companion object
Diffstat (limited to 'kamon-core/src/main/scala/kamon/util')
-rw-r--r--kamon-core/src/main/scala/kamon/util/Clock.scala36
1 files changed, 25 insertions, 11 deletions
diff --git a/kamon-core/src/main/scala/kamon/util/Clock.scala b/kamon-core/src/main/scala/kamon/util/Clock.scala
index 8765ec69..4f4561b5 100644
--- a/kamon-core/src/main/scala/kamon/util/Clock.scala
+++ b/kamon-core/src/main/scala/kamon/util/Clock.scala
@@ -15,20 +15,34 @@
package kamon.util
+import java.time.{Instant, ZoneId, Clock => JavaClock}
+
+abstract class Clock extends JavaClock {
+ def micros(): Long
+ def relativeNanos(): Long
+}
+
object Clock {
- private val startTimeMillis = System.currentTimeMillis()
- private val startNanoTime = System.nanoTime()
- private val startMicroTime = startTimeMillis * 1000L
- def microTimestamp(): Long =
- startMicroTime + ((System.nanoTime() - startNanoTime) / 1000L)
+ class Default extends Clock {
+ private val systemClock = JavaClock.systemUTC()
+ private val startTimeMillis = System.currentTimeMillis()
+ private val startNanoTime = System.nanoTime()
+ private val startMicroTime = startTimeMillis * 1000L
+
+ override def micros(): Long =
+ startMicroTime + ((System.nanoTime() - startNanoTime) / 1000L)
+
+ override def relativeNanos(): Long =
+ System.nanoTime()
- def milliTimestamp(): Long =
- System.currentTimeMillis()
+ override def instant(): Instant =
+ systemClock.instant()
- def relativeNanoTimestamp(): Long =
- System.nanoTime()
+ override def withZone(zone: ZoneId): JavaClock =
+ systemClock.withZone(zone)
- def toMicroTimestamp(nanoTime: Long): Long =
- startMicroTime + (startNanoTime - nanoTime / 1000L)
+ override def getZone: ZoneId =
+ systemClock.getZone()
+ }
} \ No newline at end of file