From 622c8d12735c1a8de3716984686e52bc33368004 Mon Sep 17 00:00:00 2001 From: Ivan Topolnjak Date: Wed, 13 Dec 2017 23:32:30 +0100 Subject: use java.time.Instant with nanoseconds precision in the Tracer --- kamon-core/src/main/scala/kamon/trace/Tracer.scala | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'kamon-core/src/main/scala/kamon/trace/Tracer.scala') diff --git a/kamon-core/src/main/scala/kamon/trace/Tracer.scala b/kamon-core/src/main/scala/kamon/trace/Tracer.scala index 4950a700..3e857f00 100644 --- a/kamon-core/src/main/scala/kamon/trace/Tracer.scala +++ b/kamon-core/src/main/scala/kamon/trace/Tracer.scala @@ -15,6 +15,8 @@ package kamon.trace +import java.time.Instant + import com.typesafe.config.Config import kamon.ReporterRegistry.SpanSink import kamon.Kamon @@ -92,7 +94,7 @@ object Tracer { final class SpanBuilder(operationName: String, tracer: Tracer.Default, spanSink: SpanSink, clock: Clock) { private var parentSpan: Span = _ private var initialOperationName: String = operationName - private var startTimestamp = 0L + private var from: Instant = Instant.EPOCH private var initialSpanTags = Map.empty[String, Span.TagValue] private var initialMetricTags = Map.empty[String, String] private var useParentFromContext = true @@ -125,8 +127,8 @@ object Tracer { this } - def withStartTimestamp(microseconds: Long): SpanBuilder = { - this.startTimestamp = microseconds + def withFrom(from: Instant): SpanBuilder = { + this.from = from this } @@ -158,7 +160,7 @@ object Tracer { def start(): Span = { - val startTimestampMicros = if(startTimestamp != 0L) startTimestamp else clock.micros() + val spanFrom = if(from == Instant.EPOCH) clock.instant() else from val parentSpan: Option[Span] = Option(this.parentSpan) .orElse(if(useParentFromContext) Some(Kamon.currentContext().get(Span.ContextKey)) else None) @@ -183,7 +185,7 @@ object Tracer { initialOperationName, initialSpanTags, initialMetricTags, - startTimestampMicros, + spanFrom, spanSink, trackMetrics, tracer.scopeSpanMetrics, -- cgit v1.2.3