diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2017-12-12 15:00:59 +0100 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2017-12-13 00:48:38 +0100 |
commit | 686040cb569283667b967494be4a7088ef35964c (patch) | |
tree | 95873e59bad8c859a14f55a1cc42758c87901d26 /kamon-core/src/main/scala/kamon/util/Clock.scala | |
parent | 66cf166772712267aac922c51ded90c7dec3bdd5 (diff) | |
download | Kamon-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/Clock.scala')
-rw-r--r-- | kamon-core/src/main/scala/kamon/util/Clock.scala | 36 |
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 |